Еще один возможно прикол версии 6.4
Код
static class UART_CL{
....
uint8_t start_enable;
uint8_t ask_enable;
....
void start_ask(){
....
ask_enable = 1;
while(start_enable);
... }
....
void send_codram(){
....
if(ask_enable)
start_enable = 0;
....}
.....
}UART1;
долго бился с багом в этом коде и под отладкой заметил следующие...
переменные ask_enable, start_enable в методах send_codram() и start_ask() находятся там под разными адресами!!!!!
т.е. в методе send_codram() переменная start_enable находится по адресу 0х2000058С, а в start_ask() под адрессом 0х2000051С !!!
подобное поведение встречается и в других статических классах.
решается статическими переменными, но все равно такие фичи разочаровывают =(