Отладочная плата HawkBoard на базе процессора OMAP-L138. Часть 3

№ 12’2010
PDF версия
В первых двух частях этого цикла статей [1, 2] были рассмотрены основные характеристики отладочной платы HawkBoard, вопросы загрузки готовых образов ядра и файловой системы, запуска операционной системы (ОС) Linux на отладочной плате, а также подробно освещен процесс создания инструментария для кросс-компиляции программного обеспечения (ПО). В третьей части статьи рассмотрены основные моменты создания загрузчика, образа ядра и файловой системы для платы HawkBoard.

Напомним, что все действия будут проводиться в ОС Ubuntu 10.04, которая установлена как гостевая операционная система. В качестве базовой ОС используется Windows XP, а виртуализация осуществляется программой VirtualBox.

Для того чтобы пересобрать ядро Linux для отладочных плат на базе процессора OMAP-L138, необходимо выполнить следующие шаги:

  1. Установить комплект ПО для процессоров OMAP-L138 (так называемый SDK) компании Texas Instruments (TI), а также инструменты кросс-компиляции CodeSourcery. Эти вопросы были рассмотрены в предыдущей части статьи [2].
  2. Создать загрузчик U-Boot. Это необходимо сделать в первую очередь, так как создание ядра Linux требует наличие утилиты mkimage, которая получается вместе с созданием U-Boot.
  3. Создать образ ядра и файловой системы uImage. Как только образ будет создан, можно скопировать его в отладочную плату по TFTP-протоколу. Как это сделать, описано в первой части статьи [1].

Рассмотрим второй и третий шаги более подробно и вначале создадим загрузчик U-Boot. Предполагается, что в гостевой ОС Linux установлены SDK и кросс-компилятор CodeSourcery, кроме того, в переменной окружения $PATH присутствуют все необходимые пути. Если были выполнены рекомендации предыдущей статьи, эти условия выполнены. Убедиться в наличии требуемых значений переменной $PATH (рис. 1, сноска 2) можно выполнив команду echo $PATH (рис. 1, сноска 1) в терминальной программе (консоли) гостевой ОС.

 

Рис. 1. Проверка переменной $PATH

Исходные файлы для создания U-Boot должны находиться в одной из папок каталога, куда был установлен пакет SDK. В рассматриваемом примере это папка OMAP-L138_arm_1_00_00_11/ DaVinci-PSP-SDK-03.20.00.11/src/u-boot/ в директории пользователя ubuntu. Необходимо запустить консоль и перейти в эту папку. Как это сделать, показано на рис. 2.

 

Рис. 2. Переход в папку с исходными файлами U-Boot

Выполнив команду ls -l (рис. 3, сноска 1), можно просмотреть содержимое каталога u-boot (рис. 3, сноска 2).

 

Рис. 3. Содержимое папки u-boot

Необходимо распаковать архив u-boot-03.20.00.11.tar.gz. Данная операция может быть выполнена командой tar, как это показано на рис. 4.

 

Рис. 4. Запуск распаковки архива с исходными файлами U-Boot

После запуска команды tar в терминале будет отображаться процесс распаковки архива (рис. 5, сноска 1). Когда процесс завершится, можно ввести команду ls -l (рис. 5, сноска 2) и убедиться, что появился новый каталог uboot-03.20.00.11 (рис. 5, сноска 3), где и расположены исходные файлы для создания U-Boot. Теперь требуется перейти в созданный каталог, используя команду cd (рис. 5, сноска 4). Его содержание также можно просмотреть командой ls -l (рис. 5, сноска 5).

 

Рис. 5. Архив с исходными файлами U-Boot

Для создания загрузчика U-Boot выполняются следующие команды:

make distclean CROSS_COMPILE=arm-none-linux-gnueabi-
make da850_omapl138_evm_config CROSS_COMPILE=arm-none-linux-gnueabi-
make all CROSS_COMPILE=arm-none-linux-gnueabi-

Первая команда очищает результаты предыдущих компиляций U-Boot (рис. 6, сноска 1), вторая — конфигурирует новый процесс создания U-Boot (рис. 6, сноска 2) и, наконец, третья — запускает процесс создания U-Boot (рис. 6, сноска 3).

 

Рис. 6. Создание U-Boot

Результатом является создание файла u-boot.bin, который будет размещен в каталоге uboot-03.20.00.11, то есть в том же каталоге, куда были распакованы исходные файлы для создания U-Boot. Убедиться в том, что файл загрузчика создан, можно выполнив команду ls -l. Результат ее работы показан на рис. 7.

 

Рис. 7. Результат создания файла загрузчика U-Boot

Выше был описан процесс создания загрузчика U-Boot с настройками по умолчанию. Можно изменить настройки в зависимости от конфигурации отладочной платы и требований ПО. Для этого необходимо скорректировать файл da850_evm.h, который расположен в папке include/configs/ директории uboot-03.20.00.11.

После компиляции утилита mkimage будет присутствовать в папке исходных файлов U-Boot. В рассматриваемом примере это папка /home/ubuntu/OMAP_L138_arm_1_00_00_11/DaVinci-PSP-SDK-03.20.00.11/src/u-boot/uboot-03.20.00.11/tools. Необходимо добавить путь к указанной папке в переменную $PATH, выполнив следующую команду:

export PATH=home/ubuntu/OMAP_L138_arm_1_00_00_11/DaVinci-PSP-SDK-03.20.00.11/src/u-boot/uboot-03.20.00.11/tools:$PATH

Лучше всего добавить эту строчку в файл ~/.bashrc (рис. 8, сноска 1) и сохранить его (рис. 8, сноска 2). Как это сделать, подробно рассказано в предыдущей части статьи [2].

 

Рис. 8. Модификация файла “~/.bashrc”

После этого можно задать настройки с помощью команды source ~/.bashrc (рис. 9, сноска 1) и убедиться в том, что путь в переменную $PATH добавлен, с помощью команды echo $PATH (рис. 9, сноска 2).

 

Рис. 9. Настройка и проверка переменной $PATH

Архив с исходными файлами для создания образа ядра и файловой системы uImage (в рассматриваемом примере это linux-03.20.00.11.tar.gz) располагаются в папке kernel каталога OMAP-L138_arm_1_00_00_11/DaVinci-PSP-SDK-03.20.00.11/src/ домашней директории пользователя ubuntu. Поэтому переходим в папку kernel, используя команду cd (рис. 10, сноска 1), затем убеждаемся в наличии требуемого архива командой ls -l (рис. 10, сноски 2, 3) и распаковываем его командой tar (рис. 10, сноска 4).

 

Рис. 10. Извлечение исходных файлов для построения образа uImage

После распаковки архива появится новая папка linux-03.20.00.11, где и располагаются исходные файлы. Необходимо перейти в эту папку, используя команду cd (рис. 10, сноска 5), и просмотреть ее содержание командой ls -l (рис. 10, сноски 6, 7).

В зависимости от чипа и используемой отладочной платы возможно изменение конфигурационных установок ядра и файловой системы. Большинство из этих установок включены в файл make, предоставляемый компанией TI, который может служить базовым для создания конфигураций образа uImage. Для начала можно использовать все настройки без изменений.

 

Рис. 11. Подготовка к созданию образа uImage

Дальнейшие команды создания образа uImage аналогичны командам, используемым при создании загрузчика U-Boot. Вначале необходимо удалить результаты предыдущих компиляций (рис. 11, сноска 1):

make distclean ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

Затем производится конфигурация нового процесса создания образа (рис. 11, сноска 2) в зависимости от выбранного типа процессора (в рассматриваемом примере это OMAP-L138):

make da850_omapl138_defconfig ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

Следующий шаг — запуск утилиты конфигурации ядра и файловой системы:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig

или

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- xconfig

При первоначальном знакомстве с процессом компиляции нового образа ядра и файловой системы можно все настройки оставить без изменения. Этим настройкам планируется посвятить отдельную статью, так как этот процесс предполагает установку достаточно большого количества различных опций. И потому сейчас этот шаг пропускается.

 

Рис. 12. Запуск процесса создания образа uImage

И последнее: запускается процесс создания образа ядра и файловой системы (рис. 12, сноска 1):

make uImage ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

Созданный образ uImage размещается в папке arch/arm/boot (рис. 12, сноска 2). Теперь необходимо скопировать образ в место, где его можно использовать для загрузки в отладочную плату по протоколу TFTP. Эти процедуры были описаны в первой части статьи [1].

На этом краткий обзор процесса создания загрузчика, образа ядра и файловой системы закончен. Получить более подробную информацию можно здесь [3].

Литература
  1. Гук И. Отладочная плата HawkBoard на базе процессора OMAP-L138. Часть1 // Компоненты и технологии. 2010. № 7.
  2. Гук И. Отладочная плата HawkBoard на базе процессора OMAP-L138. Часть 2 // Компоненты и технологии. 2010. № 10.
  3. http://processors.wiki.ti.com/index.php/GSG:_Building_Software_Components_for_OMAP-L1/AM1x

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *