ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 июля
1299992
Adept (10.04.2023 01:27, просмотров: 3417)
может кто помочь и объяснить в чём дело?? - столкнулся с глюками в работе программы при отладке, в отладчике нашёл место, где неадекватно выделена память под переменные (см картинку). При перестановке переменных адреса и выделенная под них память не меняется (как-будто где-то запомнено) Смена имён так же ничего не даёт (неверные адреса остаются) Удалял все объектные и мап-файлы, 

генерил заново, всё такая же фигня :(( Появилось в какой-то момент (когда, - даже не понял) Главное неясно почему, и как этого избежать.

Ещё интересный эффект, если меняю имена переменных, то в тех местах, где они применяются в программе, ничего не ломается (компилятор не ругается, что переменная не определена :(( а вот если меняю имена везде, то при изменении имени в определениях, в исходниках при компиляции возникает ошибка типа "undefined variable". Всю башку сломал, почему так, причём в других местах всё корректно и адреса меняются при перестановке переменных, а вот в этом месте какая-то чертовщина :( нашёл в настройках пункт CleanProject (не помогает) кто знает что это такое??

обратите внимание, переменная S_UARTC0_RxBuffer резервирует 128 байт памяти с адреса 0x2062, но следующая переменная S_UARTC0_byteCounter идёт не через 128 байт, а предыдущим байтом :(( а переменная S_UARTC0_TxBuffer идёт вообще через 256 байт (это я переставил её с предыдущей переменной, и там должен был быб быть интервал 128, а не 256 байт.

Чертовщина какая-то, часов 5 с этим воевал сегодня. Нихера не понимаю :(

ах да, атмел микрочип - студия, седьмая, есличо))


поменял имена переменных (старые закомментил) компилятор не руганулся, что переменные не определены, и для новых статус "Unknown identifier", а для закомментированных пишет старые адреса :((

вообще ничего не понимаю :((

...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)