LPC11xx Cortex-M0 FreeRTOS Hardfault - PullRequest
       14

LPC11xx Cortex-M0 FreeRTOS Hardfault

2 голосов
/ 13 февраля 2012

Я работал с проектом на устройстве NXP LPC11XX и FreeRTOS.Проблема в том, что в демонстрационном проекте для этого используется некоторая интегрированная среда разработки на основе Eclipse, и у меня не будет ничего из этого.Я преобразовал его для компиляции в Linux, и я могу программировать без каких-либо проблем.Проблема, которую я вижу, заключается в том, что когда демонстрационный проект попадает в memset (), в процессоре возникает серьезная ошибка.Это не мой код, но у меня есть ощущение, что это связано с тем, что я сделал.Я использую компилятор codeourcery «gcc version 4.4.1 (Sourcery G ++ Lite 2010q1-188)» (который я использовал без проблем на устройствах Cortex-M3).Я вижу ошибку, сгенерированную на чертовой инструкции "lsls", которая ничего не затрагивает в памяти, я вижу этот массивный набор выводов GDB: http://pastebin.com/3pg0puSe (я не знаю, что такое обычная практика для больших блоков текста, подобных этой.)

Есть мысли?Спасибо за помощь!

1 Ответ

5 голосов
/ 14 февраля 2012

Трудно увидеть, но последняя инструкция была blx r3. Похоже, у R3 не был установлен последний бит (для режима Thumb), его значение равно 0x481c. Это приведет к возникновению исключения из незаконных инструкций. В этом случае ваш отладчик обманывает вас, поскольку значение, загруженное в ПК с помощью blx, вероятно, было недействительным.

Возможно, вы просто забыли опцию компоновщика, которая устанавливает режим инструкции / модель процессора (и набор библиотек для использования) - поэтому он связан с библиотекой режима ARM.

...