Перейти к содержанию
    

Еще один возможно прикол версии 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С !!!

подобное поведение встречается и в других статических классах.

решается статическими переменными, но все равно такие фичи разочаровывают =(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

подобное поведение встречается и в других статических классах.
Что такое "статический класс"?

Намекаю дальше: в этих функциях адреса разные при вызове одной функции из одного файла, а другой функции из другого исходного файла?

 

но все равно такие фичи разочаровывают =(
Боюсь, в данном случае на зеркало пенять не стоит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что такое "статический класс"?

Намекаю дальше: в этих функциях адреса разные при вызове одной функции из одного файла, а другой функции из другого исходного файла?

намек понял... :05:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В версии 6.50.5 баг с оптимизацией вроде бы исправили.

Вроде-бы??? какой именно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И точно!!! Мой баг исправили, о котором я писал в: http://electronix.ru/forum/index.php?showtopic=105402

Теперь всё верно компилится.

УРА!!! :yeah:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...