Порядок работы

Предыдущая  Содержание  Следующая  V*D*V

Старт системы происходит следующим образом:

Сначала происходит поиск программы по начальному адресу и производится её запуск. Этой программой является Bootstrap. Если процессор не находит программу, он запускает встроенный загрузчик и в этом режиме производится программирование памяти через SAM-BA.

Bootstrap копирует кусок данных из указанного ему места из энергонезависимой памяти в ОЗУ и передаёт управление на этот адрес, считая, что он скопировал программу. Таким образом он запускает загрузчик второго уровня U-Boot. U-Boot не является обязательным шагом. При необходимости таким образом можно сразу стартовать операционную систему.

U-Boot копирует кусок данных из указанного ему места из энергонезависимой памяти в ОЗУ. Так как он считает, что это запакованный образ Linux, он его распаковывает и запускает.

Linux запускается, подключает периферию, ищет и подключает файловую систему.

Скрипт начальной загрузки выполняет старт приложений;

 

Запуск требует следующий шагов:

Подготовка скриптов SAM-BA;

Подготовка и запуск загрузчика первого уровня Bootstrap;

Подготовка и запуск загрузчика второго уровня U-Boot;

Подготовка и запуск операционной системы;

Подготовка и настройка файловой системы;

Обертка файловой системы для прошивки в память;

 

Для сборки ПО потребуются средства кросс-компиляции.

Загрузчики являются независимыми программами, поэтому сборка их может осуществляться любыми кросс-компиляторами.

Сборка файловой системы, операционной системы и в дальнейшем компиляция программ должна производится одним и тем же компилятором.

Ресурс Nandflash ограничен числом циклов перезаписи в одной ячейке, поэтому созданы специальные низкоуровневые файловые системы, имеющие специальные счетчики циклов перезаписи, позволяющие увеличить ресурс микросхемы памяти. Обычно используются JFFS2, YAFFS2, UBIFS.

 

Вообще говоря, так как на первых этапах требуются знания о последующих этапах, работу надо делать строго наоборот:

Сборка файловой системы и кросс-компилятора, другие кросс-компиляторы становятся не нужны;

Сборка ядра Linux;

Сборка U-Boot. Обёртка ядра с помощью mkimage;

Сборка Bootstrap;

 

 

Предыдущая  Содержание  Следующая