beaglebone: SDK

beaglebone

Что такое beaglebone:

Симпатичная плата с микропроцессором Sitara am3359 — это ARM Cortex-A8 (armv7a) от Texas Instruments. Работает на частоте до 720MHz. На плате установлен USB-хаб, через который к мини-USB подключены FTDI (отладка по JTAG и виртуальный COM-порт) и USB-device.  Так же выведен USB host. ОЗУ — 256MB DDR2. Установлен разъём для карты microSD, с которой грузится linux.  Есть и ethernet. На два 46-пиновых PLD разъема по  со стандартным шагом 2.54 мм выведено  2x I2C, 5x UART, I2S,SPI,CAN, 66x  GPIO (3.3V), 7x АЦП. Питание от mini-USB или  внешнего источника. Размер платы 90×55 мм.

beaglebone

 

SDK для beaglebone

Первым делом скачиваем sdk, весит около 1.7GB: http://downloads.ti.com/dsps/dsps_public_sw/am_bu/sdk/AM335xSDK/latest/exports/ti-sdk-am335x-evm-05.05.00.00-Linux-x86-Install

Даём права на исполнение:

chmod a+x ti-sdk-am335x-evm-05.05.00.00-Linux-x86-Install

Запускаем, устанавливаем в директорию: /home/user/ti-sdk-am335x-evm-05.05.00.00. После установки запускаем setup.sh и если у вас не Ubuntu 10.04 LTS, то скрипт грязно ругается «Unsupported host machine, only Ubuntu 10.04 LTS supported» и завершает свою работу.

Что бы скрипт выполнялся и на других дистрибутивах Linux надо в нём закомментировать строку:

$cwd/bin/setup-host-check.sh

Но можно обойтись и без скрипта, из того что он делает нам потребуется только установка необходимых пакетов:

apt-get install  minicom build-essential libncurses5-dev uboot-mkimage autoconf automake

Подготовка SD карты

Что бы не портить содержимое карты, которая поставляется в комплекте с beaglebone, возьмем другую и разобьем её на два раздела. Первый раздел размером 64МB используется для хранения u-boot и ядра linux. Под второй раздел отведём всё оставшийся место, этот раздел будем использовать для корневой файловой системы.Первый раздел отформатируем в fat16 второй в ext3. Подробнее описано тут: Форматируем microSD для beaglebone.

Установка переменных окружения

В состве SDK есть toolchain от arago project для кросскомпиляции, укажем к нему путь в переменной PATH:

export PATH=/home/user/ti-sdk-am335x-evm-05.05.00.00/linux-devkit/bin/:$PATH

Настраиваем кросскомпиляцию

Задаем компилятор:

export CROSS_COMPILE=arm-arago-linux-gnueabi-

устанавливаем архитектуру:

export ARCH=arm

u-boot для beaglebone

В составе SDK есть уже собранный  u-boot и MLO:

/home/user/ti-sdk-am335x-evm-05.05.00.00/board-support/prebuilt-images/u-boot-am335x-evm.img
/home/user/ti-sdk-am335x-evm-05.05.00.00/board-support/prebuilt-images/MLO-am335x-evm

Но можно собрать u-boot для beaglebone  и из исходников, для этого надо  перейти в соответствующую директорию:

cd ~/ti-sdk-am335x-evm-05.05.00.00/board-support/u-boot-2011.09-psp04.06.00.08

Конфигурируем и собираем u-boot для beaglebone:

make am335x_evm_config && make

Поле сборки файлы MLO и u-boot.img  необходимо скопировать на micro-SD, причём файл MLO надо копировать первым!.

cp MLO /media/boot
cp u-boot.img /media/boot

Если использовать  u-boot и MLO из SDK то их надо переименовать соответсвующим образом

cp MLO-am335x-evm /media/boot/MLO
cp u-boot-am335x-evm.img /media/boot/u-boot.img

После нажатия на reset запустится u-boot.  Если подключиться к виртуальному COM-порту:

minicom -D /dev/ttyUSB0

то можно увидеть как u-boot пытается загрузить linux:

reading uImage
** Unable to read "uImage" from mmc 0:1 **
Booting from nand ...
HW ECC BCH8 Selected

no devices available
Wrong Image Format for bootm command
ERROR: can't get kernel image!

Собираем ядро linux для beaglebone

Свежая версия исходников ядра linux для beaglebone выложена на arago-project.org, что бы выкачать выполняем команду:

git clone git://arago-project.org/git/projects/linux-am33x.git

Но можно воспользоваться и исходниками из SDK, для этого заходим в директорию

cd ~/ti-sdk-am335x-evm-05.05.00.00/board-support/linux-3.2.0-psp04.06.00.08.sdk

Конфигурируем:

make am335x_evm_defconfig

Собираем ядро linux для beaglebone:

make uImage

После сборки копируем uImage на SD карту:

cp arch/arm/boot/uImage /media/boot/

Устанавливаем корневую файловую систему на beaglebone

В SDK уже есть собранный образ rootfs для beaglebone, что бы распаковать его на карту выполняем команду:

tar -xjv -C /media/rootfs -f ~/ti-sdk-am335x-evm-05.05.00.00/filesystem/base-rootfs-am335x-evm.tar.gz

 

Запись опубликована в рубрике Встраиваемые системы с метками , . Добавьте в закладки постоянную ссылку.

Один комментарий: beaglebone: SDK

  1. Антон Силяков говорит:

    Здравствуйте Артем,

    Наткнулся на ваш сайт в поиске инфо по Beagle Board. Недавно увлекся программированием и начал набивать первые шишки. Вначале начал С — не получилось, потом перешел на JAVA. Вроде получается, но пока только примеры из командной строки. Я пользуюсь Ubuntu 12.04 LTS. Недавно приобрел BeagleBone Black и начал кое как ковырять Bonescript написанный для JavaScript. Еще хочу освоить Python. От всего объема информации голова идет кругом. Свою первую задачу я поставил на 2014 по освоению JAVA и написанию первого аппликейшен для андроида.

    Нашел ваш сайт очень полезным как по программированию, так и по работе. Буду внимательно следить за постами, особенно интересно программирование железа, контроллеров, робототехника, космическая техника, автоматика. В будущем планирую реализовать несколько интересных (на мой взгляд) проектов.

    С уважением,
    Антон

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

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>