Форум РадиоКот https://radiokot.ru/forum/ |
|
Preoteus + AVR: некорректная эмуляция инкремента https://radiokot.ru/forum/viewtopic.php?f=57&t=189961 |
Страница 1 из 1 |
Автор: | quwy [ Сб сен 16, 2023 05:05:58 ] |
Заголовок сообщения: | Preoteus + AVR: некорректная эмуляция инкремента |
Всем привет! Столкнулся с проблемой некорректной эмуляции MCU в Proteus. Причем, не из каких-то закоулков даташита, типа записи в EEPROM при включенном делителе частоты PLL, а в самой базовой инструкции ST Z, Rr. Если коротко, то в относительно большом проекте то тут то там на разных стадиях отладки наблюдается странное поведение индексных переменных в циклах. Каким-то странным образом при обычном инкременте++ значение переменной после 0 становится, как и положено, 1, а при следующем инкременте -- сразу 0xFD. Это поведение появляется и исчезает в зависимости от кода в других местах проекта, от настроек оптимизации, даже от типа одной единственной переменной в противоположном углу проекта. Анализ показал, что ошибается не компилятор, а именно эмулятор. Выполняя банальную инструкцию ST Z, Rr он в один прекрасный момент почему-то побитово инвертирует значение, записываемое в [Z]. В итоге вместо числа 0x02, находящегося в регистре, в память пишется 0xFD. Никто не сталкивался? |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |