В сях я не гуру, но задним местом чую что то со стеком.
#ifdef BT
#define GLCD_1_DrawLine BT_DrawLine
#endif
void BT_DrawLine(uint32 x1, uint32 y1, uint32 x2, uint32 y2, int32 Color){
uint8 buffer[] = {0,0,0,5, y1 & 0xFF, x1 & 0xFF, y2 & 0xFF, x2 & 0xFF};
UART_1_PutArray(buffer,
;
GLCD_1_DrawLine(x1, y1, x2, y2, Color);
}
В общем, вызываемая через BT_DrawLine GLCD_1_DrawLine отрабатывает несколько раз, после чего PC уходит в неизвестные дебри кода.
Компилятор ARM GCC 4.73, проц. Cortex M3(PSoC5).
Настроек стека в PSoC Creator'e не наблюдаю.
Без переопределения все работает ОК.
М.б. рекурсия?
Скорее всего да.
В GLCD_1_DrawLine лезть не могу это библиотека, а задача при включенном флажке BT, добавлять вывод в уарт перед выполнением GLCD_1_DrawLine.
Как бы это покрасивее сделать без замены GLCD_1_DrawLine на какую нить GLCD_1_DrawLineBT во всем коде?