嵌入式开发 -- Linux通常流程
1、建立交叉编译环境交叉编译工具:arm-linux- 4.4.3cross-4.2.2-eabi.tar.bz2gcc是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://w嘛术铹砾ww.gnu.org/software/gdb/download/,这里下载的是gdb-7.2.tar.gz1、编译平台机gdb解压:tar zxvf gdb-7.2.tar.gz /目录编译:./configure --target=arm-linux --prefix=/usr/local/arm-gdbmakesudo make install加入Pathsudo vim /etc/profile在文件为加入export PATH=$PATH: /目录/bin2、编译gdbserver用于目标机cd gdb-7.2/gdb/gdbserver/./configure --target=arm-linux --host=arm-linuxmake CC=arm-linux-gcc至此调试环境完成使用的时候在超级终端上启动gdbserver./gdbserver 嵌入式系统IP:端口 helloworld平台机上启动gdb
3、配置串口(Minicom)Linux:Minicom源码包下载地址:http://alioth.debian.or爿讥旌护g/projects/minicom/安装源码包: # tar zxf minicom-2.2.tar.gz # cd minicom-2.2 # ./configure # make # make install使用Minicomminicom -s或minicom配置Minicomserial port setupA输入/dev/ttyS0 (串口驱动)/dev/ttyS0 对应为串口0E速率为115200 8N1F将 Hardware Flow Control 设 为 NO回车退出使用Minicom直接使用命令minicomWindow:Window下的串口工具繁多,DNW是常用的一个,也可以使用超级终端。在相应的工具界面中设置即可。
4、bootloader制作并下装(烧录)常见bootloader有u-boot\vivi\blod\lilo\arm-boot\red-bootbootloader要依照硬件的实际情况进行修改,使用交叉编译工具编译
5、内核修改编译linux内核都是要手工编译的,下载linux源码包ARM-Linux、PPC-Linux、μCLinux等或直接下发行版源码。根据CPU型号和裁箭功能修改内核并编译make menuconfig还可以使用如下命令:make config 、 make oldconfig、 make menuconfig、make xconfig这四条命令的区别如下:进入图形配置编译make depmake cleanmake zImagemake modulesmake modelus_install
6、根文件系统制作Linux根文件系统制作工具一、busybox 地址:http://w嘛术铹砾ww.busybox.net/解压后cd 到解压的目录mak髫潋啜缅e menuconfig 配置 busybox1、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 勾上makemake 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 你要的名称这样就可以下载到开发板上面去了