ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
1309089 Топик полностью
Nikolay_Po (12.05.2023 16:24, просмотров: 108) ответил my504 на Столкнулся со странным... Делаю проект на AT32F421 (Cortex M4). В проекте есть обмен по UART с идентичным другому серийному устройству (с таким же МК) протоколом. Обмен ведется пакетами по 64 байта. В пакете от ПО к МК имеется CRC8 в 59-м байте, который считается по таблице. В серийном изделии все работает превосходно. В текущем проекте просто скопировал весь обмен из серийного. Обмен идет отлично - пакет в отладчике я вижу идентичный посланному из ПО. Но CRC при
Ваша таблица констант может оказаться где-то на разделе между разными областями памяти, требующими разных команд. Попробуйте перемещать таблицу в ПЗУ. Ещё, объявите массив констант crc8Table как volatile. Так компилятор будет вынужден вычитывать значение из флеш принудительно и не сможет оптимизировать. Я так делаю, когда нужно иметь возможность менять константы прямо в прошивке. Иначе компилятор слишком умный - может не читать флешь, заранее зная результат.