Отладочная плата HawkBoard на базе процессора OMAP-L138.
Часть 1
Игорь ГУК
Отладочная плата построена на основе двухъядерного процессора OMAP-L138 компании Texas Instruments (TI). Она выпускается компанией Innovate Software Solutions [1]. В России плата уже доступна для заказа и стоит примерно $170 при покупке единичного экземпляра (цена взята с сайта компании «Сканти Рус» [2]).
Процессор OMAP-L138 представляет собой так называемую «систему на кристалле». Он содержит два ядра — ARM926 и DSP С674х, а также всю необходимую периферию для создания одноплатных компьютеров: набор последовательных и параллельных интерфейсов, модули поддержки аудио и видео, часы реального времени и т. д. Функциональная схема процессора представлена на рис. 1. Предназначение процессора — реализация всевозможных промышленных контроллеров, систем управления, пультов, измерительных и медицинских приборов, коммуникационных устройств. Более подробную информацию можно получить, зайдя по ссылке [3].
Отладочная плата HawkBoard [4] предназначена в первую очередь для быстрого освоения процессора OMAP-L138. Общий вид
платы с обозначением всех интерфейсных разъемов (за исключением разъема для подключения SD/MMC, который находится с обратной стороны платы в районе USB-портов) показан на рис. 2.
Основные характеристики платы:
1. Процессорная часть:
- Малопотребляющий процессор OMAP-L138: RISC-ядро 300 МГц ARM926EJ-STM, DSP-ядро 300 МГц C674x, встроенный модуль RTC.
2. Память:
- 128 Мбайт 150 МГц DDR2 SDRAM;
- 128 Мбайт NAND Flash;
- Один слот для подключения SD/MMC.
3. Интерфейсы:
- один последовательный порт RS-232;
- один порт Fast Ethernet (10/100 Мбит/с);
- один порт USB Host (USB 1.1);
- один порт USB OTG (USB 2.0);
- один порт SATA (3 Гбит/с);
- два видеопорта: VGA (15-контактный D-SUB) и композитный вход (RCA);
- два аудиопорта: линейный вход и линейный выход.
4. Возможность дополнительного расширения функционала (разъем расширений):
- VPIF;
- UPP;
- PRU;
- LCDC;
- UART (x2);
- SPI (x2);
- I2C (x1);
- eCAP;
- eHRPWM;
- GPIO.
5. Программная поддержка:
- первичный загрузчик U-Boot;
- пакет поддержки Linux.
Подсистема Подсистема
ARM DSP
OMAP-L138
ARM 926EJ-S Ядро 300 МГц С674х DSP Ядро 300 МГц
ИР 16К LID 16К 1 L1P 32К L1D 32К L2 256К
Контроллер
LCD
î
Подключения
Периферия
128 кбайт RAM
Контролируемая шина центральных ресурсов (SCR/EDMA)
USB USB 2.0 1.1
ЕМАС SATA
WD UHPI Timer
Последовательные интерфейсы Интерфейсы внешней памяти
SPI McASP McBSP |2С UART
(2) (1) (2) (2) (3)
mDDR/ Async ММС/
DDR2 EMIF SD
16-bit 16-bit (2)
Рис. 1. Функциональная схема процессора OMAP-L138
Рис. 2. Общий вид отладочной платы HawkBoard
usb оте
(ПЩ.
RJ-45
llllllll
USB OTG
Память DDR-II SDRAM 128 Мбайт (MT47H64M 16HR-3:G)
■ EMIF-B -
Память NAND Flash 1 Гбайт (MT29F1G08 ABCHC-ET)
■ EMIF-B-
Управление Физический уровень Стерео аудиокодек (TLV320AIC3106)
(TPS650250) Ethernet (LAN8710A) 0
T
MII/RMII
_L_
McASP/
I2C
■ VPIF DIN -
Процессор
OMAP-L138
Цифровой
видеодекодер
(TVP5147M1)
_ Композитный видеовход
■SD/MMC
-VPIF DOUT-
USB Ту ре-A
, USB 1.1 . Host
UART
Приемо-
передатчик
RS-232
(TRS3221E)
I
Разъем для подключения
SD/MMC
до р а 3 ъ до
е м
р а с
ш и р
е н и я до
Видео ЦАП (THS8135)
- VGA
lW»y
DB-15
ooooo
ooooo
Интерфейс
JTAG
SATA
DB-9
Рис. 3. Функциональная схема отладочной платы HawkBoard
На рис. 3 представлена функциональная схема платы. Видно, что это готовый маленький компьютер, подключив к которому клавиатуру и мышь (через USB-разветвитель на порту USB Host), а также монитор, разработчик получает полноценную Linux-машину, так как в память NAND Flash, размещенную непосредственно на отладочной плате, уже загружены образы ядра и файловой системы. Возможность установки операционных систем Linux или Windows CE, а также наличие встроенного Ethernet и других стандартных интерфейсов позволяет решать любые задачи, доступные обычному персональному компьютеру (ПК).
Компания Innovate Software Solutions предоставляет все исходные коды и весь необходимый инструментарий для сборки собственного ядра и файловой системы, а также для разработки своих собственных приложений.
Данная отладочная плата может стать не только хорошим выбором для разработки программного обеспечения на процессоре OMAP-L138, но и готовым процессорным модулем при реализации конечных изделий, что значительно сократит временные и ма-
териальные затраты на разработку и производство. Например, плата может быть с успехом использована при проектировании прикроватных мониторов пациентов, пультов управления систем безопасности и пожаротушения, измерительных приборов, пультов управления станками ЧПУ, медицинских приборов, промышленных контроллеров, оконечных устройств коммуникации и т. д.
Особо следует отметить, что этот проект интенсивно развивается. Уже сейчас доступны модули в индустриальном исполнении [5], облегченные варианты HawkBoard [6], а также модули на базе процессора AM1808 [7], который программно совместим с OMAP-L138: добавлено несколько интерфейсов, удалено ядро DSP, а конструктивно новый процессор выполнен в индустриальном исполнении. (Более подробно о новом процессоре можно узнать в [8]).
Начать работать с отладочной платой очень просто. Подключите плату с процессором OMAP-L138 к ПК по COM-интерфейсу, а сетевым кабелем — к локальной сети. Можно подсоединить VGA-монитор, а также клавиатуру и мышь (через USB-разветвитель, подключенный к разъему USB-Hosh на плате).
На базовом ПК с операционной системой Windows необходимо установить следующее программное обеспечение:
• терминальную подпрограмму;
• fttp-сервер.
В качестве терминальной программы рекомендуется использовать Tera Term Pro [9], а fttp-сервером может служить PumpKIN [10].
Настройка терминальной программы заключается в установлении параметров COM-порта. Они показаны на рис. 4.
Запустите терминальную программу, после чего подайте питание на плату и немного подождите. В память NAND Flash платы уже прошиты образы ядра и файловой системы, а встроенный загрузчик настроен на корректную загрузку. Загрузка происходит в несколько этапов. Вначале запускается встроенный загрузчик, который производит минимальную конфигурацию процессора и передает управление программе UBL (User Boot Loader). Программный код загрузчика UBL пишется непосредственно разработчиком под конкретную задачу. Разработчик производит окончательную настройку всей периферии процессора, а затем загружает программу U-boot, которая является загруз-
Рис. 4. Настройка параметров COM-порта
на
.-ÜJJÜ
ЗВД YM Cori ml Wnde* 'fc*
|S>Klffto№i /]• 1 і -1
2 С a £Cte KCfV 14 ЗМІ Lrjii
!£**■: «ЫМЕ. 5 t a 2 tOO ¿ur. 3 D3JÜÖ (MV
ІГИЖ-ХГ-ЗС 3 »3 a IK* Kirr IT JM? rte
а г ■«-пт-* і 0 0 ЗСИ* Kav 3 i»? 2 3b
1 гичсэтгта і о 0 11 -Inn і ППШЧЗ ->
1гя—— 2 0 a L2S&Ö Jae і ZDta ■ :ü-j±>i
Sreetf-tr1-* A 0 □ iDjj і krv- 2a j :hj j rrdia
ir-*r-TT—і 34 0 Q (1 Jen ї po-rtc
ігм-їт-тг-Х 2 €i 0 SCi« Огч TI ЗСЩ5 ГМГС
Jl VJ'I.-JI.L-'-K 2 t 5 1СЛ 4ui її 1 Mi іЬлі
11 ts a £i Jin 1 ¡55:00 жуя
Isaacwjuut 3 i a і Вдздо tnp
imnr-XT-X i 0 0 HQi* Kgv n 3 50? ягг
! 1 ttwfctiMJrd rJl#
LiU
Рис. 6. Результат выполнения команды $ls -1
Рис. 7. Настройка fttp-сервера
*™*TW ГЩ99 t iwtmi
Яиииіц /jfi r t!J4№täO]
F r=*?ffw:
.fctmtini ,■*¥.' pLa с ілсслзв;
ü üiifW.
tupvkaülng iün с vLW: lAEKhri Г ITT d=Svrr [бсшЕ It №Г| l*L : jr-kytüi.
MWCIfll
Лмижіїг.т DC bat !L.■«7*£ тяж t IMKC.UB~
3u4E|hp' : ¡5 ГГ ГГ ‘Л-
Зс-tlLng txrcBiIi «vdi ПИЙ iaitiiitt a Jib 1 CÖ:Ö5:Ü4 ■пИГЇмгіі грІя|.1п№ irii«gd rtir
“і
ік pftstf Er _cr t-r Dc4:LY*tc Ш: caosoLr,
І і»!!ОЄгії( atib-.b. ir.ic- UHtl fMtt
SCtCftna (Mil IWin » rirtb
IM »24 *♦+. c;t ■
£1J
і
Рис. 8. Консоль настройки U-boot загрузчика
Рис. 5. Окончание загрузки операционной системы Linux
чиком Linux, то есть непосредственно загружает образы ядра и файловой системы. Загрузчик U-boot после выполнения своих функций передает управление ядру Linux.
Загрузка заканчивается появлением в терминальной программе приглашения нажать клавишу «Ввод»: “Please, press Enter to activate this console”. Выполните требование, и вы окажетесь в консоли операционной системы Linux (рис. 5).
Убедиться в том, что мы имеем полноценную среду Linux, можно введя в консоли какую-нибудь команду, например:
$ls -l
Это команда просмотра папок и файлов. Результат ее работы показан на рис. 6.
Следующий этап освоения платы HawkBoard — загрузка альтернативного варианта ядра и файловой системы. Одним из способов может быть загрузка образов через fttp-соединение. Для этого необходимо запустить программу fttp-сервера PumpKIN и в настройках (кнопка Options) определить папку, где расположены образы файловой системы и ядра , как это показано на рис. 7.
Скачать образы ядра и файловой системы можно по ссылке [11], это файлы “uImage_v1” и “ramdisk_v1.gz” соответственно.
Теперь перезагрузите отладочную плату HawkBoard, для чего выключите и снова включите питание. Начнется загрузка — этот процесс будет отображаться в терминале Tera Term Pro. Когда появится сообщение “Hit any key to stop autoboot”, нажмите произвольную клавишу: загрузка прекратится и появится возможность настроить параметры U-boot (рис. 8).
Введите команду:
$printenv
Она позволяет просмотреть все переменные окружения. Результат ее работы показан на рис. 9.
Для настройки режима загрузки образов ядра и файловой системы по Ййр-соединению необходимо определить переменные окружения ‘Ъootargs”, “вептепр” и “ipaddr”. Эта операция выполняется следующими командами:
$setenv bootargs “mem=128M console=ttyS2,115200n8 root=/dev/ram0 rw initrd=0xc1180000,4M” $setenv serverip <PC ipaddress>
$setenv ipaddr <board ipaddress>
Здесь <РС ipaddress> — это адрес ПК, где запущен Ййр-сервер; <ЬоаЫ ipaaddress> — это адрес, присваиваемый отладочной плате.
Рис. 9. Переменные окружения U-boot
Рис. 10. Настройка переменных окружения U-boot
Рис. 11. Отображение процесса загрузки в терминале
Рис. 13. Загрузка альтернативной сборки ОС Linux
Рис. 12. Отображение процесса загрузки в tftp-сервере
Теперь можно сохранить произведенные настройки командой: И наконец, старт загрузки операционной системы Linux:
$saveenv $bootm c0700000
Это позволит при повторном включении отладочной платы не вводить параметры заново. Однако рекомендуется запомнить старое значение переменной “bootargs”, которое определяло режим загрузки с NAND Flash, чтобы при необходимости его можно было восстановить.
Пример ввода команд настройки окружения показан на рис. 10.
Загрузка образов в оперативную память платы по fttp-соединению выполняется командами:
$tftp cO7OOOOO uImage_vl $tftp cll8OOOO ramdisk_vl.gz
Процесс загрузки будет отображаться как в терминале (рис. 11), так и в Йир-сервере (рис. 12).
Начнется загрузка операционной системы Linux, как это показано на рис. 13.
После этого появится приглашение ввести имя пользователя. Необходимо набрать “root” и нажать клавишу «Ввод», и вы окажетесь в командной строке ОС Linux (рис. 14).
В следующих статьях будут рассмотрены вопросы создания собственного дистрибутива Linux для данной платы. ■
Литература
1. http://www.innovatesolutions.net/company
2. http://www.scanti.ru/
3. http://focus.ti.com/docs/prod/folders/print/ omap-l138.html
4. http://www.innovatesolutions.net/products/ hawkboard
Рис. 14. Командная строка Linux
5. http://www.innovatesolutions.net/products/ innovate-industrial-omap-l-138
6. http://www.innovatesolutions.net/products/ hawkboard-lite
7. http://www.innovatesolutions.net/products/ am1808-som-module
8. http://focus.ti.com/docs/prod/folders/print/ am1808.html
9. http://ttssh2.sourceforge.jp/
10. http://kin.klever.net/pumpkin/
11. http://code.google.com/pZhawkboard/ downloads/list