嵌入式开发 -- Linux通常流程
1、建立交叉编译环境
交叉编译工具:arm-linux- 4.4.3 cross-4.2.2-eabi.tar.bz2
gcc是X86的编译工具
arm-linux-gcc 是生成arm精简指令集的编译工具
解压:tar zxvf arm-gcc-4.4.3.tar.gz /目录
解压:sudo tar jxvf cross-4.2.2-eabi.tar.bz2 -C /usr/local/arm/ (目录)
将arm-gcc加入环境变量
vi /etc/profile
加入export PATH=$PATH:目录
#交叉编译测试程序
arm-linux-gcc helloworld.c -o helloworld
#把编译出的可执行程序拷到嵌入式系统中运行
显示helloworld
2、建设交叉调试工具
下载arm-gdb源码http://www.gnu.org/software/gdb/download/,这里下载的是gdb-7.2.tar.gz
1、编译平台机gdb
解压: tar zxvf gdb-7.2.tar.gz /目录
编译:
./configure --target=arm-linux --prefix=/usr/local/arm-gdb
make
sudo make install
加入Path
sudo vim /etc/profile
在文件为加入export PATH=$PATH: /目录/bin
2、编译gdbserver用于目标机
cd gdb-7.2/gdb/gdbserver/
./configure --target=arm-linux --host=arm-linux
make CC=arm-linux-gcc
至此调试环境完成
使用的时候在超级终端上启动gdbserver
./gdbserver 嵌入式系统IP:端口 helloworld
平台机上启动gdb
3、配置串口(Minicom)
Linux:
Minicom源码包下载地址: http://alioth.debian.org/projects/minicom/ 安装源码包: # tar zxf minicom-2.2.tar.gz # cd minicom-2.2 # ./configure # make # make install
使用Minicom
minicom -s或minicom
配置Minicom
serial port setupA
输入/dev/ttyS0 (串口驱动) /dev/ttyS0 对应为串口0
E
速率为115200 8N1F
将 Hardware Flow Control 设 为 NO
回车退出
使用Minicom直接使用命令
minicom
Window:
Window下的串口工具繁多,DNW是常用的一个,也可以使用超级终端。
在相应的工具界面中设置即可。
4、bootloader制作并下装(烧录)
常见bootloader有u-boot\vivi\blod\lilo\arm-boot\red-boot
bootloader要依照硬件的实际情况进行修改,使用交叉编译工具编译
5、内核修改编译
linux内核都是要手工编译的,下载linux源码包ARM-Linux、PPC-Linux、μCLinux等或直接下发行版源码。根据CPU型号和裁箭功能修改内核并编译
make menuconfig
还可以使用如下命令:
make config 、 make oldconfig 、 make menuconfig、make xconfig这四条命令的区别如下:
进入图形配置
编译
make dep
make clean
make zImage
make modules make modelus_install
6、根文件系统制作
Linux根文件系统制作工具
一、busybox 地址:http://www.busybox.net/
解压后cd 到解压的目录
make menuconfig 配置 busybox
1、busybox settings >>build options>>build busybox as static binary(no shared libs)勾上
2、busybox settings>>installation options>>don't use /usr 勾上
3、busybox settings>>installation options>>busybox installation prefix安装目录
4、busybox settings>>busybox library tuning>>username conpletion勾上
5、busybox settings>>busybox library tuning>>fancy shell prompts 勾上
make
make install
安装完成。
二、根文件系统制作
根文件系统就是一个硬盘linux内核启动后首先挂载这个目录。然后从这个目录启动一些系统相关软件。内核可以存在根文件系统中。
Linux文件系统使FHS标准:
FHS:
/etc 存放配置文件
/dev存放设备文件
/lib存放库文件
/bin、/sbin、/usr/bin、/usr/sbin 存放可执行文件
/boot 可以删除因为我们的bootloader使用单独的Flash存储区
1、新建一个文件夹存放文件系统在里面生成如
/etc/生成
生成
etc/inittabetc/profileetc/fstabetc/init.d/etc/init.d/rcS
可以手工改也可以从电脑里复制,busybox自身也有,可以拷。
2、编译内核模块到文件系统
#make modules_install ARCH=arm INSTALL_MOD_PATH=目录
至此制作完成。
3、将根文件系统烧录
制作成指定格式
#genext2fs -b 8192 -d你的目录#genext2fs -b 你的目录 你要的名称 #gzip -9 -f 你要的名称
这样就可以下载到开发板上面去了