嵌入式系统嵌入c程序.docx

上传人:b****7 文档编号:9591394 上传时间:2023-02-05 格式:DOCX 页数:10 大小:282.35KB
下载 相关 举报
嵌入式系统嵌入c程序.docx_第1页
第1页 / 共10页
嵌入式系统嵌入c程序.docx_第2页
第2页 / 共10页
嵌入式系统嵌入c程序.docx_第3页
第3页 / 共10页
嵌入式系统嵌入c程序.docx_第4页
第4页 / 共10页
嵌入式系统嵌入c程序.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

嵌入式系统嵌入c程序.docx

《嵌入式系统嵌入c程序.docx》由会员分享,可在线阅读,更多相关《嵌入式系统嵌入c程序.docx(10页珍藏版)》请在冰豆网上搜索。

嵌入式系统嵌入c程序.docx

嵌入式系统嵌入c程序

安阳师范学院计算机与信息工程学院

《嵌入式系统》

课程设计

实践选题:

嵌入式系统嵌入c程序

专业班级:

指导教师:

姓名学号:

成绩评定:

题目:

嵌入式系统嵌入c程序

一、问题描述及分析

设计裁剪镜像,设计文件镜像系统,文件镜像系统的整套文件目录,内核zImage文件的烧写,文件系统的烧写,自己的c程序放入到文件目录中去,我们做的是十进制数字转化成二进制数字。

二、课程设计内容

1、系统结构与软件设计流

 

 

2、任务分工

XXX:

总体设计,框架设计根文件系统的生成,嵌入式程序的设计。

XXX:

引导装载程序(BOOTLOADER)移植,Linux内核移植与编译。

XXX:

资料搜集与整理,文件系统烧写,内核裁剪。

3、软件操作说明

VM虚拟机安装,Redfiag系统安装,linux操作环境搭建,开发板系统搭建,内核及文件系统烧写。

运行嵌入的c程序。

a建立根文件系统的初始文件

建立目录bin、dev、etc、lib、proc、sbin、usr、home、mnt等;

cd/dev

cp-aconsolenullttytty0tty1tty2ttyS0ttyS1/home/long

b.移植文件

/up-techpxa270/arm-linux-tools/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux,因此移植库文件的过程为

cd/up-techpxa270/arm-linux-tools/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux/lib

cplibc.so.6ld-linux.so.2/home/long/lib

c.配置文件。

配置文件也可以由busybox生成,因此这一步我们也留待后面再做。

1.安装和使用busybox

(1)解压busybox

(2)配置busybox

运行makemenuconfig,

GeneralConfiguration→

[*]UsethedevptsfilesystemforUnix98PTYs

BuildOptions→

[*]BuildBusyBoxasastaticbinary(nosharedlibs)

[*]DoyouwanttobuildBusyBoxwithaCrossCompiler?

选择交叉编译(/usr/local/arm-linux/bin/arm-linux-)CrossCompilerprefix回车将路径改为arm-linux-

InstallationOptions→[]Don'tuse/usr

InitUtilities→全都不要

Login/PasswordManagementUtilities→全都不要

NetworkingUtilities→[]route

(3)安装busybox

make

makeinstall

(4)移植文件

进入busybox根目录,找到_install目录,将其中的bin、usr、sbin目录拷贝至开发板根文件系统,并覆盖其中的同名目录。

然后打开目录examples/bootfloppy,将其中的etc目录拷贝至开发板根文件系统,并覆盖其中的同名目录。

至此,开发板根文件系统就做好了,由于有了libc.so.6ld-linux.so.2这两个库文件的支持,我们可以在开发板上运行编译好的C语言程序。

cp-abinusrsbin/home/long

cdexamples/bootfloppy

cp-aetc/home/long

(5)生成文件系统镜像文件

./mkfs.jffs2-rroot-orootfs.img-e0x20000--pad=0xd00000

4、主要实现方法

开发环境:

Redflaglinux,博创科技UP-TECHPXA270

编译环境:

linux虚拟机下运用gcc,交叉编译器arm-linux-gcc。

运行环境描述:

博创科技UP-TECHPXA270嵌入式Linux开发板。

SecureCRT5.1。

主要技术要点:

在嵌入式开发板上实现十进制到二进制的转换。

具体截图实现:

Linux预运行程序

三、课程设计总结

课程设计我们通过自己的实践,对书嵌入式开发知识的实际运用能力和经验得到了提升,进一步加深对知识的理解。

并且我们的十进制转二进制中,主要应用了嵌入式系统的搭建中的根文件装载引导程序、内核裁剪和嵌入式linux根文件系统的制作,以及嵌入式控制台程序的编写和调试等知识。

让我们对嵌入式系统的开发流程得到了更加清晰地认识。

四、存在问题及改进措施

在嵌入式系统环境搭建和编写程序的过程中,也出现了很多错误。

比如:

A.内核连接不上,镜像也连接不上。

网络设置有问题。

b.根文件系统设计及生成过程中驱动程序包含不完全,导致烧写完成后系统没有反应,硬件驱动补充完整后,正常运行;

c.在烧写内核和根文件系统时,由于网络配置问题,IP地址配置不正确,导致tftp传输协议传输超时,最终传输失败,通过禁用其他无关网卡后得到解决。

d.根文件系统镜像未按照嵌入式文件格式生成镜像导致无法烧写成功。

通过将生成代码的语句补充完整后,解决问题。

e.最后,在源程序中由于目标机与宿主机的编码格式不同,导致程序输出汉字为乱码,影响最终效果,将元提示信息改为英文后解决,但仍有部分英文显示还有乱码,这是不足之处。

五、源代码

#include

intmain(void)

{

inti,j,num,test;

test=1;

test<<=31;

printf("十进制数字转化为二进制数\n");

printf("请输入数字:

\n");

scanf("%d",&num);

printf("所对应的二进制数字为:

\n");

for(i=1;i<=32;i++){

j=(test&num)?

1:

0;

printf("%d",j);

num<<=1;

if(i%4==0)

printf("\n");

}

puts("\n");

printf("MADEBYCIKETIANLONG!

");

puts("\n");

}

~

~

~

~

~

~

"long.c"23L,464C

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1