Перейти к содержанию
    

Всякие буты...

Здравствуйте.

Помогите разобраться, что такое Bootsrtap и U-boot и какой загрузчик что инициализирует....

 

Возможно где-то написано про все эти буты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это разного уровня бутлоадеры. Суть в том, что флэш и озу на армах часто ставят внешние и их надо запускать, а загружать прошивку хочется с разных устройств и даже из сети. Поэтому есть загрузчик самого нижнего уровня под названием Boot Rom. Этот загрузчик позволяет загружать программы размером не более встроенной озу, поэтому им загружают Bootstrap. Bootstrap инициализирует внешнюю память и грузит U-Boot. U-Boot это уже полноразмерный загрузчик, позволяющий загружать что угодно откуда угодно. Как правило U-Boot используется для всяких линуксов. Если линуксов не планируется, то можно остановится на Bootstrap.

Да, Bootstrap и U-Boot требуют перекомпиляции под свою периферию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня плата от starterkit SK-MAT91SAM9260. Правильно ли я понял, что bootstrap инициализирует всю внешнюю память (включая sdram) и ещё последовательный порт и USB-порт?

 

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

 

RomBOOT

>

 

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

 

Вопрос: откуда грузиться bootstrap, если известно (или это всё таки не так?), что встренная ПЗУ у контроллера отсутствует, а перемычка, соединяющая DataFlash и контроллер разомкнута?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос: откуда грузиться bootstrap, если известно (или это всё таки не так?), что встренная ПЗУ у контроллера отсутствует?

Разве? :)

• 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".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Точнее из этой ROM грузится только RomBOOT, о чём и написано в терминале. Bootstrap вместе с U-Boot и линуксом был благополучно стёр со флэшки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо.

 

Правильно ли я понял что RomBOOT инициализирует последовательный порт и USB? Почитать бы где какой загрузчик (bootstrap, u-boot, RomBOOT... и т.д.) и что инициализирует и загружает....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, RomBOOT инициализирует последовательный порт и USB, посколько он именно через них заливает код в процессор. Однако гарантировать, что эти порты будут инициализированы при запуске уже зашитого софта я бы не рискнул.

По поводу того, какой из загрузчиков что инициализирует, ссылку уже давали выше. Кроме того, можно просто посмотреть исходники - там всё ясно и наглядно. В любом случае их придётся пересобирать под себя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правильно ли я понял что 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 и, собсно, ждет коннекта с Самбой для записи ПО на носители, подключенные к микроконтроллеру.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Просто интересно:

 

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

 

Тогда выходит, что с этими портами можно работать сразу (не инициализируя их в приложении), отправляя/принимая данные?

Изменено пользователем TigerSHARC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нельзя. Все приличные программы уходя гасят свет.

Даже если и это не так, то экономия примерно пяти сишных операторов для настройки DBGU - вещь более чем сомнительная.

 

Изменено пользователем DpInRock

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...