嵌入式应用程序开发

2019-07-13 03:43发布

  嵌入式应用程序开发 实验目的: 1.      编写程序,用交叉工具链编译连接 2.      将嵌入式应用程序下载到开发板上执行 实验原理: 1.      嵌入式应用程序的开发一般都在宿主机平台上进行,利用交叉编译器编译,生成可以在目标平台上运行的可执行代码;本实验使用的交叉编译器是arm-linux-gcc; 2.      将已经生成的目标代码文件加入到嵌入式Linux系统的根文件系统中,再重新制作根文件系统映象下载到目标板上运行。 实验内容: 1.      在宿主机上编写应用程序testapp.c如下 l        [root$pxa root]#vi testapp.c #include #include int main() {     char str[]=“Study embeded system application development!”;     printf(“This is the testapp:/n%s/n”,str);     return 0; } l        保存文件testapp.c,用arm-linux-gcc编译生成目标文件testapp [root$pxa root]#arm-linux-gcc testapp.c -o testapp 2.      利用Busybox构造嵌入式Linux根文件系统 l        在嵌入式Linux中,Busybox是构造文件系统最常用的一个软件工具包,它将大量的工具集成到一个可执行文件中,如ls、cp、mount、ifconfig、vi等; l        配置Busybox l        编译和安装Busybox l        构造根文件系统 Ø       创建顶层目录结构:[root$pxa _install]#mkdir etc dev proc tmp lib var sys bin Ø       创建设备节点:如[root$pxa dev]# mknod ram0 b 1 0 Ø       创建inittab,inittab是init程序读取的配置文件;编辑 /etc/inittab文件如下: ::sysinit:/etc/init.d/rcS ::askfirst:/bin/sh Ø       建立sysinit动作项执行的命令脚本     l        创建根文件系统映像文件,并将编译好的程序testapp加入      Ø       [root$pxa root]#cp testapp /busybox/_install/bin/testapp Ø       [root$pxa busybox]#cd /busybox  Ø       [root$pxa busybox]# mkdir initrd Ø       [root$pxa busybox]# cd initrd Ø       [root$pxa initrd]# dd if=/dev/zero of=initrd bs=1k count =2048 Ø       [root$pxa initrd]# mkfs.ext2 initrd -F Ø       [root$pxa initrd]# mkdir mnt_initrd Ø       [root$pxa initrd]# mount initrd mnt_initrd -o loop Ø       [root$pxa initrd]# cp -a ../_install/* mnt_initrd Ø       [root$pxa initrd]# umount initrd Ø       [root$pxa initrd]# bzip2 -c9 initrd > initrd.bz2 3.      下载根文件映像到目标板上,系统启动后,执行testapp,minicom终端将打印输出信息“This is the testapp:     Study embeded system application development!”   实验结论:        在嵌入式系统中,加入应用程序的过程并不是一件困难的事情,本实验演示了向嵌入式系统中加入应用程序的一般过程;实际应用中,可能会将已有的程序移植到嵌入式系统中,但是会牵涉到一些参数的设定。