嵌入式系统嵌入c程序

发布 2022-10-21 07:01:28 阅读 9979

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

嵌入式系统》

课程设计。实践选题: 嵌入式系统嵌入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 -a console null tty tty0 tty1 tty2 ttys0 ttys1 /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

cp /home/long/lib

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

1. 安装和使用busybox

1) 解压busybox

2) 配置busybox

运行make menuconfig,general configuration →

use the devpts filesystem for unix98 ptys

build options →

*] build busybox as a static binary (no shared libs)

*] do you want to build busybox with a cross compiler?

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

installation options → don't use /usr

init utilities → 全都不要。

login/password management utilities → 全都不要。

networking utilities → route

3) 安装busybox

makemake install

4) 移植文件。

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

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

cp -a bin usr sbin /home/long

cd examples/bootfloppy

cp -a etc /home/long

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

/ -r root -o -e 0x20000 --pad=0xd00000

4、主要实现方法。

开发环境:redflag linux,博创科技 up-techpxa270

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

运行环境描述:

博创科技 up-techpxa270 嵌入式linux开发板。securecrt 5.1。

主要技术要点:

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

具体截图实现:

linux预运行程序。

三、课程设计总结。

课程设计我们通过自己的实践,对书嵌入式开发知识的实际运用能力和经验得到了提升,进一步加深对知识的理解。并且我们的十进制转二进制中,主要应用了嵌入式系统的搭建中的根文件装载引导程序、内核裁剪和嵌入式linux根文件系统的制作,以及嵌入式控制台程序的编写和调试等知识。让我们对嵌入式系统的开发流程得到了更加清晰地认识。

四、存在问题及改进措施。

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

a.内核连接不上,镜像也连接不上。网络设置有问题。

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

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

d.根文件系统镜像未按照嵌入式文件格式生成镜像导致无法烧写成功。通过将生成**的语句补充完整后,解决问题。

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

五、源**。

#include<>

int main(void)

int i,j,num,test;

test=1;

test<<=31;

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

printf("请输入数字:");

scanf("%d",&num);

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

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

puts("");

printf("made by ciketianlong!")

puts("");

" 23l, 464c

嵌入式系统C语言

嵌入式系统的c语言。译自 c for embedded systems 讲稿。刘永重译。一 c语言基础。1 什么是c?c 程序语言最初是由dennis ritchie在1971年为unix系统开发并实现的。c的一个最大优点是与任何特定的硬件或系统无关。这使得一个用户写的程序不作任何修改就能运行在几乎...

嵌入式ARM嵌入式系统设计

摘要 本系统设计了基于arm系统的嵌入式硬件平台,其中主要介绍了系统母版的具体电路实现,其硬件电路已经通过了信号完整性分析。中国 网 关键词 arm 嵌入式系统 中图分类号 tp368.1 文献标识码 a 文章编号 1007 9416 2012 12 0104 01 1 序言 本系统是设计一款基于a...

嵌入式系统

期末作业考核。满分100分。一 判断题 每题3分,共30分 1.嵌入式系统中的软件系统主要由嵌入式操作系统和应用软件组成,其中嵌入式微处理器属于嵌入式软件系统的核心。答 错。2.运行在智能手机或平板电脑中的android系统是一种嵌入式操作系统。答 对。3.windriver公司所提供的软件开发包是...