Отладочная плата HawkBoard
на базе процессора OMAP-L138. Часть 2
Игорь гук
В первой части статьи [1] были рассмотрены основные характеристики отладочной платы HawkBoard [2]. кроме того, было показано, как загрузить в память HawkBoard готовые образы ядра и файловой системы, а затем запустить операционную систему (ОС) Linux на отладочной плате. Во второй части статьи рассматривается создание инструментария, требуемого для самостоятельного компилирования основных программных компонентов (загрузчика, ядра и файловой системы).
Зто более сложный этап, так как все действия необходимо выполнять на базовом ПК с установленной операционной системой Linux. При работе с операционной системой Windows, что наиболее часто встречается при разработке софта для цифровых сигнальных процессоров компании Texas Instruments, можно рекомендовать использовать виртуальную машину. При написании статьи использовалась виртуальная машина VirtualBox [3], куда была установлена операционная система Ubuntu 10.4 [4].
Описания инсталляции программы виртуализации VirtualBox и создания гостевой ОС выходит за рамки статьи. Всю необходимую информацию можно найти в Интернете, например здесь [5].
В процессе формирования требуемого инструментария для создания ядра и файловой системы Linux требуется выполнить два этапа:
1. Установить необходимый набор программных средств от компании Texas Instruments (TI) [6], так называемый SDK.
2. Установить кросс-компилятор для ARM-ядра компании Code Sourcery [9].
На первом этапе прежде всего нужно загрузить следующие файлы SDK [7]:
• OMAP-L138_setuplinux_#_#_#_#.bm,
• bios_setuplinux_#_#_#.bin,
• xdctools_setuplinux_#_#_#_#.bm,
• ti_cgt_c6000_#.#.#_setup_linux_x86.bm,
• cs1omapl138_#_#_#_setup_lmux.bm.
На рис. 1 представлена страница загрузки необходимых компонентов [7] (после загрузки страницы необходимо прокрутить ее вниз).
Перед скачиванием файлов требуется зарегистрироваться на сайте TI, так как при загрузке запрашиваются логин и пароль (рис. 2).
Пакет SDK включает такие компоненты, как Codec Engines, DSP/BIOS Link, xDAIS, а также заголовочные файлы xDM, Framework Com-ponents и т. д. Инсталляторы различных компонентов имеют по умолчанию различ-
Рис. 1. Страница загрузки компонентов SDK
Рис. 2. Запрос логина и пароля при загрузке компонентов SDK
ные директории установки. Рекомендуется не использовать стандартные (по умолчанию) установки, а выбрать одно и то же место для всех компонентов. Это упростит дальнейшую работу с инсталлируемым программным обеспечением (ПО).
Для установки требуемого ПО необходимо выполнить следующие шаги:
1. Войти в операционную систему (ОС) Linux, используя учетную запись обычного пользователя. На рис. 3 показан пример авторизации в момент загрузки ОС Ubuntu 10.4 для пользователя с именем ubuntu. Затем загрузить указанные выше компоненты SDK в папку /home/ubuntu/Загрузки/ (это стандартная папка загрузки русифицированной ОС 10.4 для пользователя с именем
ubuntu).
jMlu yW1_J
-
Падшь.
| йішчь. ^ C.J.U ш см-.. ті
Рис. 3. Авторизация пользователя
2. Запустить терминальную программу (рис. 4).
3. Переключиться в режим root — команда sudo -i (может потребоваться введение пароля учетной записи пользователя, причем он не отображается при вводе) и перейти в каталог — команда cd, куда были загружены бинарные файлы (в нашем случае это папка /home/ubuntu/Загрузш/). Затем сделать все файлы с расширением bin исполняемыми — команда chmode +x *.bin. Выйти из режима root — команда exit. Все команды вводятся в окне терминала (рис. 5).
С4в ьЛипш , ит -
** л Г -*** ■ П«|,п ’fjiHHi'-jLbrtMMuiEii шиГІуіЦ;-* ЇМ» 1
Е pil LaTir.' in ufaMrlw:
пкїічїчМч nrlul -#
riiljwtiipli-wirlmt'l і Каль! іУдохф/ЗзяР?s1»* chBMi *■ + И.» Г«Ї№САР14 V4MW1 ІГИМ.1 LkCT№.Jh-'РгКІР? Ы2&
MB#
.&иг.!ч(ЧЬійги^иПціІ:-$ |
Рис. 5. Определение исполняемых файлов
4. Распаковать архив, запустив файл OMAP-L138_setuplinux_#_#_#_#.bin, используя команду ./OMAP-L138_setuplinux_#_#_#_#. bin, как это показано на рис. 6, сноска 1. (Обратите внимание, что вначале осуществляется переход в папку, где располагаются загруженные файлы, — команда cd.) После введения команды появится окно запуска инсталлятора SDK (рис. 6, сноска 2), необходимо подтвердить начало установки, нажав клавишу Yes (рис. 6, сноска 3). Процесс установки SDK показан на рис. 7.
Рис. 4. Запуск терминальной программы
Рис. б. Распаковка архива OMAPL138_arm_#_#_#_#
Рис. 7. Инсталляция SDK
, 1 -bum і .Ьшсіі rurtiuJ: ■ лл
Hr#г-ад -и.і гг**--1* Сгршвн
*11.11. її Lb. . -S €іІ M-9ttrAj
і г і лїіілгь1аггиі ! -/>* румн|;
Ні-,' В
•Г':'.:: І . \Г: і
Рис. S. Запуск файла установки XDCtools Рис. 11. Запуск файла установки DSP/BIOS
Для размещения распакованных файлов используется каталог /home/<useracct>/ OMAPL138_arm_#_#_#_# (в рассматриваемом примере — это /home/ubuntu/OMAPL138_ arm_1_00_00_11). Подробную информацию о содержании каталога можно получить в [8].
5. Инсталлировать XDCtools, выполнив команду ./xdctools_setuplinux_#_#_#.bin, как это показано на рис. 8.
На рис. 8 первой командой осуществляется переход в папку, где размещены все загруженные файлы, однако, если после установки пакета SDK терминал не закрывался, то команда перехода не нужна.
Установка XDCtools аналогична предыдущему пункту. Стоит отметить необходимость выбора английского языка в качестве языка установки, в противном случае может некорректно отображаться выводимая информация. Окно с выбором языка появляется первым при запуске инсталлятора (рис. 9).
| !
Рис. 9. Выбор языка инсталляции
Второе замечание по процессу установки XDCtools — не использовать размещение по умолчанию. Вместо этого устанавливайте ПО в директорию, созданную на предыдущем шаге. Выбор директории установки показан на рис. 10.
6. Установить DSP/BIOS, для чего введите команду ./bios_setuplinux_#_#_#.bin, как это показано на рис. 11. Обратите внимание, что нет команды перехода в папку загрузки, так как окно терминала не закрывалось после предыдущего шага.
Несколько замечаний. Первое: выберите английский язык установки. Второе: здесь также не используйте размещение по умолчанию, а устанавливайте ПО в директорию /home/<useracct>/OMAPL138_
Рис. 10. Выбор папки установки XDCtools
Рис. 13. Создание папки установки Code Generation Tools
arm_#_#_#_#, что была создана при инсталляции SDK. В остальном процесс инсталляции аналогичен предыдущим.
7. Выполнить установку Code Generation Tools, введя в терминале команду ./ti-cgt-C6000_#.#.#_setup_linux_x86.bin, как это показано на рис. 12.
В процессе инсталляции необходимо выбрать английский язык и вручную (в отличие от предыдущих шагов) создать папку C6000_#_#_# в каталоге /home/<useracct>/
OMAPL138_arm_#_#_#_#/, куда будет устанавливаться Code Generation Tools. Создание папки показано на рис. 13 (в рассматриваемом примере создается папка C6000_6.1.9).
Кроме того, требуется установить переменную среды в соответствии с параметрами установки:
export C6X_C_DIR="/home/<useracct>/OMAPL138_arm_#_#_#_#/ cg6x_#_#_#/include;
/home/<useracct>/OMAPL138_arm_#_#_#_#/cg6x_#_#_#/lib"
■ _ ■ .tdtii.bum лліиіі: ізірт-1,
* І і?дг • л КО Гггмр--** Оша
V.r-1 !■. _ I ilovl -1 .J !-: _-
;^ипіАйітя ¥mn:ML -.rjar<fi-a^ ./El tp 'Tm >.l.> іисщ? ііяи «и.іій ]
0 *4 i.huu lunujj:: -
»ЧІ Jtpv -Л fu.1 ;rr»4i--ip Г■’
і-. . i.'iwi -i tnt їм ■ ч •- и/швдг -■■■■ ; H at
діт.і .і.іі>Ік1мк|ЛншМІнхялтг ил \ я ■*_ іілім* t з .vi.ilr|
Рис. 12. Запуск файла установки Code Generation Tools Рис. 14. Установка переменных среды
Приведенные выше строки должны быть введены в одну линию, без перехода на новую строку (рис. 14).
Чтобы установить переменные окружения для всех терминальных сессий, а также сохранять их значение между перезагрузками ОС, необходимо добавить приведенную выше строку в файл ~/.bashrc. Для этого необходимо открыть в стандартном файловом менеджере ОС Ubuntu 10.4 домашнюю директорию пользователя, сделать видимыми скрытые файлы и щелкнуть мышкой на файле .bashrc (рис. 15).
Файл откроется в текстовом редакторе, где необходимо будет в конце файла добавить требуемую строку, сохранить изменения и закрыть редактор (рис. 16). Это позволит устанавливать переменные окружения командой source ~/.bashrc.
8. Установить Codec server, для чего нужно ввести команду: ./cs1omapl138_1_##_##_ setup_linux.bin.bin (рис. 17).
В процессе установки нужно выбрать английский язык, а при запросе о месте размещения инсталлируемого программного обеспечения можно использовать путь по умолчанию или указать особую директорию, например, /home/<useracct>/OMAPL138_ arm_#_#_#_#/cs1omapl138_#_#.
На рис. 18 показано, как определить в качестве установки папку с именем cs1omapl138_1_00_00. Обратите внимание, что имя папки установки вводится вручную.
9. И наконец, последний шаг установки необходимого набора программ от TI — это инсталляция интегрированной среды разработки Code Composer Studio v3.3 (CCStudio). Это ПО должно быть установлено на базовом ПК с ОС семейства Windows. Процесс инсталляции CCStudio является стандартной процедурой, хорошо документирован и в статье не описывается.
Теперь рассмотрим второй этап формирования требуемого инструментария — загрузку и установку кросс-компилятора компании Code Sourcery. Необходимо выполнить следующие шаги:
1. Перейти на страницу загрузки веб-сайта Code Sourcery [10], выбрать установочный пакет IA32 GNU/Linux кросс-компилятора Sourcery G++ Lite 2009q1-203 для ARM и сохранить его (рис. 19).
2. Изменить оболочку dash (используемую в Ubuntu 10.4 по умолчанию) на bash. Это требование определяется тем, что инсталлятор кросс-компилятора CodeSourcery не поддерживается оболочкой dash. Реконфигурация оболочки выполняется
командой sudo dpkg-reconfigure-plow dash (может потребоваться введение пароля учетной записи пользователя). После ее выполнения появится окно, где на вопрос «Установить dash как/bin/sh?» необходимо ответить «Нет» (рис. 20).
Рис. 16. Внесение изменений в файл .bashrc
.bum ■-bumi rurim!: '.ыгрриш
ПГ4Г'«Д >Л 1» СГИН"
Л.г ! jVL".n! і t л 1.111:1 -Ц vJ .. ....................
* Ь.ЛГ. s-<jrEmL--,r--4ftY:'Qil. ■■'■HJ-ДЦрІІЯ і Н И ^ ІЛСІ»ІІЯНЛІЛ j
Рис. 17. Запуск файла установки Codec server
Рис. 1S. Определение местоположения Codec server
Рис. 19. Выбор установочного пакета кросс-компилятора CodeSourcery
При использовании 64-разрядной ОС Linux может потребоваться установка пакета ia32-libs, что выполняется командой sudo apt-get install ia32-libs.
3. Перейти в папку загрузки кросс-компилятора (команда cd—рис. 21, сноска 1), сделать установочный файл исполняемым (команда chmod +x arm-2009q1-203-arm-none-linux-gnueabi.bin — рис. 21, сноска 2) и запустить инсталляцию (команда Jarm-2009q1-203-arm-nom-limx-gnueabi.bin — рис. 21, сноска 3).
Появится окно старта процесса инсталляции кросс-компилятора CodeSourcery. Необходимо запустить программу установки, нажав кнопку Next (рис. 21, сноска 4), и следовать инструкциям. При написании статьи предложенные инсталлятором настройки не менялись.
Если путь, заданный по умолчанию, не изменялся, тогда файлы установленного кросс-компилятора можно найти в директории /home/<user>/CodeSourcery. При этом необходимо указать путь для Code Sourcery tools в переменных окружения, что выполняется командой export PATH=/home/<user>/CodeSourcery/Sourcery_G++_ Lite/bin:$PATH. Строку с указанием пути (без кавычек!) можно добавить в файл ~/.bashrc, как это было сделано ранее для переменной C6X_C_DIR (рис. 15, 16), и в дальнейшем устанавливать требуемые параметры при помощи команды source ~/.bashrc.
На этом вторая часть статьи, посвященной отладочной плате HawkBoard, завершена. В третьей части будет сделан следующий шаг освоения отладочной платы: мы рассмотрим вопрос самостоя-
£чьЪ Пда>.л Вид Ті^мнал Справка
ItttrpiMiieTC* Г
І rf-JLTCHM *гЛу-»Г і
тельного компилирования основных программных компонентов: загрузчика, ядра и файловой системы. ■
Литература
1. Гук И. Отладочная плата НашкВоа^ на базе процессора ОМАР^138. Часть 1 // Компоненты и технологии. 2010. № 7.
2. http://www.innovatesolutions.net/products/hawkboard
3. http://www.virtualbox.org/
4. http://www.ubuntu.com/
5. http://ru.wikipedia.org/wiki/VirtualBox
6. http://www.ti.com
7. http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/omap_ l138/1_00/latest/index_FDS.html
8. http://processors.wiki.ti.com/mdex.php/GSG:_InstaШng_the_Software_for_ OMAP-L138#About_the_PSP_package
9. http://www.codesourcery.com/
10. http://www.codesourcery.com/sgpp/lite/arm/portal/release858
Фзн* Ними Вічі Тїс*мнап Сги»** іДнпІ і.ф.ЬдПСи МІГТиЛІ.; -і і A I lf pffUm/
iiliubTi^-IWjftSu ■ «іГТи-УІ. MV 11 і.ігі -« Qf fi J05 .ця rt^hC Lrtpr .:іхмМ,Гіі*
іііяяі і.Л.^ітїц wniiiLr-/»! .iti'c ЗД.І Of* fHv : UM* ^ЛцСч^1,*іп
ЧФ ІПИЗУ.. , t f (
tacc racc me wt frc* w Imiillpr f «•»!«. ■
Ці / ,
іхшєїігч the гсм*гїеі .'■■'Sri v* iMtalU* iftlui*...
LfVKl'irq «ПГЇІ -- Ц UJ El
C'O SwurtBrv a + + LL1« Гаг AAM Ш.Иш
И7І WWtH V. riKriVSOrt
SOvfC*i>* G++ Use fOC ARM CNUfUntKWlVd
д*і« ті ігавчзи Уч ireiiKphm ef
■&и,іп-*уС* * I nr МШ CJ.li,: ru.
p h ИНУ0Г.1 гкС'тт*гон-] ipwmw I'fn^wi mw#
СНГйМІЦ -ч* iNk *лы-нг
£«.!.«< ■rtaii* Іі ^ма lu IIH '*.1 Ш1ЙН Ї A'J «■'
IG 1Мі№Ц 4ff I Кґііі*1. < <• TM ТТЧЧЫИ*
ftjHCf.
і з*lNtfcG1Ull№! И WIMif Dy-jiCfclftSiW
Рис. 20. Выбор bash в качестве основной оболочки
Рис. 21. Запуск инсталляции кросс-компилятора CodeSourcery