189 похожих чатов

Доброго времени суток, коллеги! Тут проблема у меня возникла, может

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

6 ответов

16 просмотров

Если процессор имеет на борту MPU, можно попробовать поставить запрет на использование блоков памяти, куда попадает XMC. У ST-шников была подобная тема с QSPI.

Evgeny Alexeev
Если процессор имеет на борту MPU, можно попробова...

Заодно можно отловить попытку доступа к этой области.

Nikita- Автор вопроса
Evgeny Alexeev
Если процессор имеет на борту MPU, можно попробова...

не, процессора нет. Только лишь микроконтроллер. Да и странно, что на stm такое не происходит

Nikita
не, процессора нет. Только лишь микроконтроллер. Д...

Понятно, что контроллер. MPU - Memory Protection Unit. С большой вероятностью он есть. По крайней мере у ST-шников уже давно и почти везде.

Nikita- Автор вопроса
Evgeny Alexeev
Понятно, что контроллер. MPU - Memory Protection U...

понял о чем вы) да, у китайца есть MPU, только мне пока это кажется как из пушки по воробьям. Когда совсем отчаюсь - попробую)

Nikita
понял о чем вы) да, у китайца есть MPU, только мне...

Такие проблемы реально бывают, сам сталкивался, поэтому и посоветовал сразу. Там кусок кода в 20 строк, который, возможно, решит проблему.

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Карта сайта