#assembly #arm #cpu-architecture #beagleboneblack #beagleboard
#сборка #arm #архитектура процессора #beagleboneblack #beagleboard
Вопрос:
Я пишу сборку ARM для запуска baremetal на BeagleBone Black. Я использую JTAG через отладочный зонд XDS110 и могу запускать базовые программы сборки на плате.
Мой главный вопрос касается попытки считывания различных регистров состояния, которые присутствуют в процессоре Beaglebone. Я имею в виду документацию arm и их использование команд MRC / MCR для чтения / записи из этих регистров. Смотрите ссылку ниже (https://developer.arm.com/documentation/ddi0198/e/programmer-s-model/register-descriptions/fault-status-registers-c5)
Однако, несмотря на следование документации, я не могу прочитать эти значения при выполнении команд на Beaglebone Black. В частности, когда я выполняю следующие команды:
MCR p15, #0, r7, c5, c0, #1 ; Write IFSR
MRC P15, #0, r12, c5, c0, #1 ; Read IFSR
Я получаю следующую ошибку, и вся программа перестает выполняться:
Break at address "0x20080" with no debug information available, or outside of program code.
Есть ли у кого-нибудь идеи о том, как считывать регистры состояния неисправностей через сборку baremetal ARM на Beaglebone Black? Любая помощь приветствуется.
Комментарии:
1. вы запускаете это в приложении на Linux? Я предполагаю, что у вас нет разрешения на этом уровне. Вы подтвердили это в документах arm?
2. Редактор запускается в Windows, но само приложение запускается на Beaglebone через JTAG; ie. Встроенная ОС Linux не включена.