BeagleBoard 入门
作者: 刘鹏
日期: 2010-01-07
本文以 BeagleBoard B7 (OMAP3530)为例,详细介绍了如何使用 BeagleBoard。

硬件配置1 2

BeagleBoard Rev.B7 主要硬件配置介绍如下。

Package on Package POP CPU/Memory chip
  1. TI OMAP3530 Processor - 720 MHz ARM Cortex-A8 core
  2. 'HD capable' TMS320C64x+ core (520MHz upto 720p@30fps)
  3. Imagination Technologies PowerVR SGX 2D/3D graphics processor
  4. 128 MB LPDDR RAM memory
  5. 256 MB NAND Flash memory
外围接口
  1. DVI-D, USB OTG, SD/MMC card slot
  2. Stereo in and out jacks
  3. Power socket
  4. RS232 port
  5. JTAG connector
  6. reset 按钮
启动方式
  1. Boot code stored in ROM
  2. Boot from NAND memory, SD/MMC, USB 或者串口

连线

Beagle Board 的使用如下图所示:

除了 Beagle Board 开发板之外,还需自己配置:

  1. 5V 电源一个,内正外负
  2. OTG 转 usb 母口线一根
  3. 有源 USB HUB
  4. HDMI 转 DVI 线一根
  5. usb 口键盘、usb口鼠标

使用 Angstrom demo Image

启动流程

一般来讲,bealgeboard 启动流程如下所示:


    bootrom(内部ram)--->xloader(内部ram)---->uboot(外部ram)---->kernel(外部ram)

xloader 负责初始化系统(如时钟、RAM),将 uboot 读到 ram。

uboot 负责提供交互界面和工具,并将 Kernel 读到 RAM。

在这里,我们把 uboot、 IMAGE、根文件系统都放到 SD 卡上启动系统。

制作 SD 卡3

参考资料3 SD card setup 一节。注意,柱面数要根据自己 SD 卡的大小重新重 新计算下。

下载并安装 Angstrom Demo Image

从网址 Angstrom Demo Image 处下载文件:

  1. MLO
  2. u-boot.bin
  3. uImage
  4. modules.tgz
  5. Angstrom-Beagleboard-demo-image-glibc-ipk-2010.3-beagleboard.rootfs.tar.bz2

然后,将 MLO,u-boot.bin 和 uImage 拷到 SD 卡的第一个分区(FAT32),注意 要严格按照上面的先后顺序拷贝,MLO 必须在第一扇区。


$ cp MLO /mnt/sdc1
$ cp u-boot.bin /mnt/sdc1
$ cp uImage /mnt/sdc1

将 root 文件系统拷入 SD 卡的第二个分区并解压:


 $ sudo cp Angstrom-Beagleboard-demo-image..... /mnt/sdc2
 $ sudo tar -jxvf Angstrom-Beagleboard-demo-image....
 $ sudo rm Angstrom-Beagleboard-demo-image....

将 modules.tgz 拷入 SD 卡的第二个分区:


$ sudo cp modules.tgz /mnt/sdc2
$ sudo tar -xvf modules.tgz
$ sudo rm modules.tgz

play and enjoy beagle

SD 卡插入 beagle board,按如下参数配置 minicom:


Serial Device: /dev/ttyUSB0
Bps/Par/Bits: 115200
Hardware Flow Control: No
Software Flow Control: No

插上电源开机,进入如下所示的命令行:


Texas Instruments X-Loader 1.41
Starting OS Bootloader...

U-Boot 1.3.3 (Jul 10 2008 - 16:33:09)

OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
OMAP3 Beagle Board + LPDDR/NAND
DRAM:  128 MB
NAND:  256 MiB
In:    serial
Out:   serial
Err:   serial
Audio Tone on Speakers  ... complete
OMAP3 beagleboard.org #

依次运行如下命令:


/* Download Image */
mmcinit
fatload mmc 0 0x80300000 uImage


/* set boot args */
setenv bootargs console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 rw rootwait omapfb.video_mode=1024x768MR-16@60


/* boot kernel image*/
bootm 0x80300000


启动后,在 Minicom 里会看到 Angstrom 字样和 login 提示符,输入 root 即 可登录。在显示器上显示一个登录界面,输入root,密码留空。

ToolChain5

BeagleBoard 开发程序最简单直接的就是下载编译好的 toolchain。Angstrom 提供了 toolchain 下载,下载地址在这里

下载最新的toolchain: angstrom-2010.4-test-20100422-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.2.tar.bz2 。该 toolchain 除了包含基本的 libc, libc++ 之外,还包含了 QTE。

按如下命令安装交叉编译环境:


Untar the SDK once
$ tar -C / -xjf angstrom-armv5te-linux-gnueabi-toolchain-qte.tar.bz2

Before using it source the environment
$ . /usr/local/angstrom/arm/environment-setup

写一个 helloWorld 程序:


#include <stdio.h>

int main ()
{
    printf ("Hello beagle.\n");

    return;
}


Makefile 如下所示:


hello:
        arm-angstrom-linux-gnueabi-gcc -o hello hello.c -L/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/lib

clean:
        rm hello


运行 make 命令可编出可执行程序 helloworld.

写一个简单的 QTE 应用:


$ . /usr/local/angstrom/arm/environment-setup
$ cd $HOME
$ mkdir qte-example
$ cd qte-example

$ echo "TEMPLATE=app
SOURCES=main.cpp
" > qte-example.pro

$ echo '#include <QApplication>
#include <QPushButton>

int main(int argc, char** argv) {
    QApplication app(argc, argv);

    QPushButton btn("Hello World");
    btn.show();
    btn.showMaximized();

    return app.exec();
}
' > main.cpp

$ qmake2
$ make

编译 PowerVR SDK Demos

POWERVR Insider 下载 OpenGL ES SDK 。

实验环境:

  1. HostPC: Ubuntu 10.04
  2. toolchain: angstrom-2010.4-test-20100422-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.2
PC 版本 SDK_OGLES_LINUX_PCEMULATION_2.07.27.0484.tar.gz 6


下载并解压 SDK_OGLES_LINUX_PCEMULATION_2.07.27.0484.tar.gz

export LD_LIBRARY_PATH= XXX/SDKPackage_OGLES/Builds/OGLES/LinuxPC/Lib/

cd  XXX/SDKPackage_OGLES/Demos/Coverflow/OGLES/Build/LinuxGeneric

make  或者 make Debug=1

以 Coverflow demo 为例,编译结果在


SDKPackage_OGLES/Demos/Coverflow/OGLES/Build/LinuxPC

目录下,运行 make Debug=1 命令得到 DebugX11 目录,运行 make 得到ReleaseX11目录。

进入 ReleaseX11 目录,运行 OGLESCoverflow 即看到运行结果。

ARM 版本: SDK_OGLES2_LINUX_ARMV7_2.07.27.0484.tar.gz 7
  下载并解压 SDK_OGLES2_LINUX_ARMV7_2.07.27.0484.tar.gz
  export LIBDIR=/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/lib/
  export TOOLCHAIN=/usr/local/angstrom/arm/
  修改 SDKPackage_OGLES2/Builds/OGLES2/LinuxARMV7/make_platform.mak,所有的 arm-none-linux-gnueabi 改成 arm-angstrom-linux-gnueabi
  cd  SDKPackage_OGLES2/Demos/Coverflow/OGLES2/Build/LinuxGeneric
  make PLATFORM=LinuxARMV7

以 Coverflow 为例,编译结果在

SDKPackage_OGLES2/Demos/Coverflow/OGLES2/Build/LinuxARMV7/ReleaseRaw/

目录下。

将二进制文件 OGLES2Coverflow 拷到 angstrom-demo 的根文件系统, 启动 beagleboard,进入终端后有运行 OGLES2Coverflow 即可。

See Also

  1. BeagleBoard System Reference Manual
  2. Beagle Board on Wikipedia
  3. BeagleBoardBeginners
  4. 在 Beagle Board 上引导 Linux
  5. Angstrom toolchains
  6. OpenGL ES SDK.User Guide.1.32.2.2f.External.pdf
  7. OpenGL ES 2.x SDK.User Guide.1.32.2.2f.External.pdf