Считывание регистров неисправностей из BeagleBone Black

#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 не включена.