嵌入式应用程序开发

嵌入式应用程序开发
实验目的:
1.      编写程序,用交叉工具链编译连接
2.      将嵌入式应用程序下载到开发板上执行
实验原理:
1.      嵌入式应用程序的开发一般都在宿主机平台上进行,利用交叉编译器编译,生成可以在目标平台上运行的可执行代码;本实验使用的交叉编译器是arm-linux-gcc;
2.      将已经生成的目标代码文件加入到嵌入式Linux系统的根文件系统中,再重新制作根文件系统映象下载到目标板上运行。
实验内容:
1.      在宿主机上编写应用程序testapp.c如下
l        [root$pxa root]#vi testapp.c
#include <stdio.h>
#include <string.h>
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!”。   
实验结论:
       在嵌入式系统中,加入应用程序的过程并不是一件困难的事情,本实验演示了向嵌入式系统中加入应用程序的一般过程;实际应用中,可能会将已有的程序移植到嵌入式系统中,但是会牵涉到一些参数的设定。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值