Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Всякие буты...
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
TigerSHARC
Здравствуйте.
Помогите разобраться, что такое Bootsrtap и U-boot и какой загрузчик что инициализирует....

Возможно где-то написано про все эти буты?
Student Pupkin
Вот кратко про bootstrap.
andrewlekar
Это разного уровня бутлоадеры. Суть в том, что флэш и озу на армах часто ставят внешние и их надо запускать, а загружать прошивку хочется с разных устройств и даже из сети. Поэтому есть загрузчик самого нижнего уровня под названием Boot Rom. Этот загрузчик позволяет загружать программы размером не более встроенной озу, поэтому им загружают Bootstrap. Bootstrap инициализирует внешнюю память и грузит U-Boot. U-Boot это уже полноразмерный загрузчик, позволяющий загружать что угодно откуда угодно. Как правило U-Boot используется для всяких линуксов. Если линуксов не планируется, то можно остановится на Bootstrap.
Да, Bootstrap и U-Boot требуют перекомпиляции под свою периферию.
TigerSHARC
У меня плата от starterkit SK-MAT91SAM9260. Правильно ли я понял, что bootstrap инициализирует всю внешнюю память (включая sdram) и ещё последовательный порт и USB-порт?

Я удалил из DataFlash предустановленый Linux. Если разомкнуть перемычку соединяющую DataFlash с контроллером, то в терминале (через COM-порт) можно увидеть надпись

RomBOOT
>

что, по всей видимости означает, что загрузчик первого уровня (bootstrap) не нашёл ничего во внешних носителях для загрузки.

Вопрос: откуда грузиться bootstrap, если известно (или это всё таки не так?), что встренная ПЗУ у контроллера отсутствует, а перемычка, соединяющая DataFlash и контроллер разомкнута?
Student Pupkin
Цитата(TigerSHARC @ Sep 1 2010, 23:19) *
Вопрос: откуда грузиться bootstrap, если известно (или это всё таки не так?), что встренная ПЗУ у контроллера отсутствует?

Разве? smile.gif
Цитата(из мануала на AT91SAM9260)
• Additional Embedded Memories
One 32 KByte Internal ROM, Single-cycle Access At Maximum Matrix Speed
– Two 4 KByte Internal SRAM, Single-cycle Access At Maximum Matrix Speed

... это на первой странице мануала написано, обзор.

Еще почитайте раздел "8.1 Embedded Memories".
andrewlekar
Точнее из этой ROM грузится только RomBOOT, о чём и написано в терминале. Bootstrap вместе с U-Boot и линуксом был благополучно стёр со флэшки.
TigerSHARC
Спасибо.

Правильно ли я понял что RomBOOT инициализирует последовательный порт и USB? Почитать бы где какой загрузчик (bootstrap, u-boot, RomBOOT... и т.д.) и что инициализирует и загружает....
andrewlekar
Да, RomBOOT инициализирует последовательный порт и USB, посколько он именно через них заливает код в процессор. Однако гарантировать, что эти порты будут инициализированы при запуске уже зашитого софта я бы не рискнул.
По поводу того, какой из загрузчиков что инициализирует, ссылку уже давали выше. Кроме того, можно просто посмотреть исходники - там всё ясно и наглядно. В любом случае их придётся пересобирать под себя.
Student Pupkin
Цитата(TigerSHARC @ Sep 2 2010, 10:11) *
Правильно ли я понял что RomBOOT инициализирует последовательный порт и USB? Почитать бы где какой загрузчик (bootstrap, u-boot, RomBOOT... и т.д.) и что инициализирует и загружает....

Описание первичного загрузчика (RomBOOT) приводится в разделе "13. AT91SAM9260 Boot Program". Между прочим ради интереса почитайте еще раздел "Errata" - и в RomBoot-е баги имеются.
Ежели Вам лень прочитать... RomBOOT ищет пользовательскую программу (по определенным критериям - читайте) в такой последовательности - SPI DataFlash по CS0, SPI DataFlash по CS1, NAND Flash (читаем Errata!). Если пользовательская программа найдена, то копируются первые X байт во внутреннюю SRAM (как определяется число Х - читайте мануал). В этих Х байтах должна быть Ваша программа. Или, в частном случае, Ваш загрузчик. На момент запуска Вашего загрузчика в микроконтроллере нифига ничего не ининциализированно - ни SDRAM, ни USB, ни DBGU...
Вот если RomBOOT пользовательской программы не нашел - тогда он запускает USB, DBGU и, собсно, ждет коннекта с Самбой для записи ПО на носители, подключенные к микроконтроллеру.
TigerSHARC
Просто интересно:

на странице 75 мануала сказано, что начальный загрузчик сначала инициализирует последовательный порт и USB-порт.

Тогда выходит, что с этими портами можно работать сразу (не инициализируя их в приложении), отправляя/принимая данные?
DpInRock
Нельзя. Все приличные программы уходя гасят свет.
Даже если и это не так, то экономия примерно пяти сишных операторов для настройки DBGU - вещь более чем сомнительная.
TigerSHARC
Скажите, а какие действия выполняет U-Boot?
Dron_Gus
Любые.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.