Программирование на «голом металле» на BeagleBone Black

У меня есть черный бигльбон, и я хочу начать работу над проектом с нуля. Я настроил flyswatter2 для отладки и прошивки.

У меня может быть код запуска, который в идеале должен работать. но проблема в том что я не знаю с какого адреса памяти начинает загружаться begalebone black? и по какому адресу памяти я должен прошить свой код в памяти платы?

Если я знаю место, откуда я должен прошить свой код запуска, то оттуда я могу взять его с помощью отладчика и запрограммировать UART для выполнения моего кода. Но я застрял на самом первом шаге.

Обратите внимание, что я прочитал главу 26 технического справочного руководства для AM335x от ARM, и в нем говорится об общедоступных ОЗУ и ПЗУ по определенным адресам. Но я все еще не уверен, с чего начать.

Если бы кто-то мог просто сообщить мне, что прошивка моего кода по адресу 0xXXXXXXX будет выполнять мой код при запуске, тогда я могу взять его оттуда.

Заранее спасибо - Рави


person Ravi    schedule 05.06.2015    source источник


Ответы (1)


На самом деле черные платы Beaglebone настроены на загрузку либо с внешними SD-картами, либо с внутренней памятью eMMC, которая де-факто представляет собой карту MMC, впаянную в печатную плату.

Если вы посмотрите на документацию процессора в главе 26, там описан процесс загрузки. , из всего этого раздела документации вас будет интересовать BBB по главе 26.1.5.7.6. Самый простой способ — отформатировать MMC (или внутреннюю eMMC) в формате FAT и сразу после форматирования создать файл с именем «MLO». Очень важно, чтобы этот файл был самым первым в файловой системе FAT, поэтому обязательно скопируйте файл сразу после форматирования.

Этот файл представляет собой небольшой заголовок, за которым следует ваше приложение в двоичном формате. Заголовок имеет следующий формат (из главы 26.1.9.2 того же документа):

  • По смещению 0 4-байтовое слово с размером изображения.
  • По смещению 4 4-байтовое слово с адресом загрузки вашего изображения.

Тогда только ваш образ.

Внутри процессора Sitara есть код ПЗУ, который «понимает» этот файл и выполняет загрузку кода.

Не простая процедура для bare-metal, но....

Надеюсь, поможет.

person juansolsona    schedule 23.02.2016