кто-то еще сталкивался или подскажет куда копать? Портирую код с контроллера stm32f415 на китайский мк фирмы Artery at32f415. По задействованной в прошивке периферии все плюс-минус похоже, что не похоже - переписано. И столкнулся я с такой странностью - прошивка на китайце через разные промежутки времени (от 10 секунд до 3 минут) вываливается в обработчик прерывания XMC_Handler. XMC - это аналог FSMC у stm, только дело в том, что в моей прошивке эта периферия вообще не используется и никак не настраивается. Торчит контроллер в вечном лупе пока обработчик в стартап файле описан как weak. Стоит мне его написать в другом файле программы - прошивка вываливается уже в прерывание оконного таймера, который тоже никак не используется. Поступаю с этим обработчиком как с предыдущим - вываливается уже в UsageFault. Затем в обработчик USART. Предположу, что такое будет, пока обработчики не закончатся. Ощущение, что что-то в прошивке то ли инициализирует периферию, то ли лезет в адрес обработчика - сказать сложно. Курение errata и интернета ничего не дало. Может кто подскажет куда копать? Заранее спасибо))
Если процессор имеет на борту MPU, можно попробовать поставить запрет на использование блоков памяти, куда попадает XMC. У ST-шников была подобная тема с QSPI.
Заодно можно отловить попытку доступа к этой области.
не, процессора нет. Только лишь микроконтроллер. Да и странно, что на stm такое не происходит
Понятно, что контроллер. MPU - Memory Protection Unit. С большой вероятностью он есть. По крайней мере у ST-шников уже давно и почти везде.
понял о чем вы) да, у китайца есть MPU, только мне пока это кажется как из пушки по воробьям. Когда совсем отчаюсь - попробую)
Такие проблемы реально бывают, сам сталкивался, поэтому и посоветовал сразу. Там кусок кода в 20 строк, который, возможно, решит проблему.
Обсуждают сегодня