三、开发环境搭建
1、建立 Linux 嵌入式交叉开发环境
a、在 VMWare 中安装Ubuntu 9.10 ,PC 机和目标板通过串口、RS232、USB连接。
b、编译ARM Linux 内核和应用程序使用 arm-linux 编译器。 Linux 系统使用的编译器叫GCC,Linux 发行版只带有 X-86 GCC,因此需要编译arm-linux-gcc。
通过 crosstool 编译 arm-linux-gcc 。crosstool 含有两种arm-linux-gcc,一种不带软件浮点运算模拟,一种带软件浮点运算模拟。后者的实用性比前者强。
编译 softflaot 的 arm-linux-gcc 的过程如下:
(1) 解压缩 cross-tool 源代码包(以下是命令,后同)。
tar zxvf crosstool-0.43.tar.gz .
cd crosstool-0.4.3
(2) 编辑脚本 demo-arm-softfloat.sh(#号及其后面的文字为注释)
vim demo-arm-softfloat.sh
编辑结果如下:
set -ex
TARBALLS_DIR=$HOME/downloads # 编译器源代码压缩包的目录
RESULT_TOP=/opt/crosstool # 生成交叉编译器的目录
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++"
export GCC_LANGUAGES
mkdir -p $RESULT_TOP
eval `cat arm-softfloat.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest
echo Done.
(3) 查看 gcc-3.4.5-glibc-2.3.6.dat,下载其中的压缩包。
BINUTILS_DIR=binutils-2.15
GCC_DIR=gcc-3.4.5
GLIBC_DIR=glibc-2.3.6
LINUX_DIR=linux-2.6.8
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6
cross tool 编译编译器时自动检查 TARBALLS_DIR 目录是否有上述文件,并自动下载缺少的文件。如果预先用多线程下载软件下载这些压缩包并放在TARBALLS_DIR 目录中可以减少下载时间。
(4 )执行 demo-arm-softfloat.sh 脚本编译 arm-linux-gcc
./demo-arm-softfloat.sh
生成的 arm-linux-gcc 位于/opt/crosstool/arm-softfloat-linux-gnu/bin/。
(5) 把/opt/crosstool/arm-softfloat-linux-gnu/bin/加入到 PATH 环境变量中
vim /etc/bashrc
加入行
export PATH=${PATH}:/opt/crosstool/arm-softfloat-linux-gnu/bin/
(6)在任意目录中输入如下命令:
arm-softfloat-linux-gnu-gcc –v
如果能看到屏幕上打印的 gcc 版本信息就表示交叉编译器编译安装成功。
c、安装需要的开发工具:SecureCRT(便于在Windows下进行shell的相关操作)、Cuteftp(用于Linux 与Windows之间的文件传递)sourcesight(用于源码阅读编辑)、UltraEdit(代码阅读)、TQBoardDNW(用于内核文件、根文件系统、应用程序的烧写)、U-Boot 通过Jtag 烧写。
d、通过 JTAG 将在主机上编译的 Bootloader 烧入开发板;通过 Bootloader 将主机上编译的 Linux 内核烧入开发板; 开发板启动内核通过 NFS 运行在主机上编译的各种应用程序,经过验证后烧入开发板。