重
实
庆
交
通
大
习
报
学
告
班
级:
通信一班
实习名称:
基于 C 语言的嵌入式系统开发
实习地点:
信息学院机房
指导教师:
许登元
学
姓
号:
名:
08950113
刘瑞雪
实习时间: 2011 年 8 月 29 日 至
2011 年 9 月 12 日
1
目
录
一、实习概述……………………………………………3
二、实习项目…………………………………………..4
三、实习总结……………………………………………4
四、实习体会……………………………………………5
五、实习建议……………………………………………7
一实习概述
实习的第一天,与达内培训的老师和相关管理人员见面并且对达
内培训机构做了简单的了解。相关的管理人员接下来说明培训期间的
纪律,要求以及考勤情况。要求我们在培训期间要以一个工作人员的
标准来要求自己,在衣着上不能像以前一样太随便,学习态度上要严
肃认真。老师给我们说明培训期间学习的内容和实习所要完成的任务
是基于 C 语言的嵌入式系统开发。主要是在 linux 操作系统下,通过
在终端编写程序烧制在开发板来实现的 LED 灯的设计。
在以后的学习过程中,老师首先给我们介绍了嵌入式开发板以及
各部件的功能,作用。然后从最基本的 linux 操作系统的 C 语言命令
的使用和操作方法讲起。以前学习 C 语言这门课程是都是在 windows
操作系统下使用和练习。这一次却完全接触到了新的使用方法。还真
是受益匪浅。比如,“:”就代表键入字符的意思。还有其他命令的使
用也是以前从来没有接触到的。这些基本的内容学习了几天之后,就
开始讲解难度大一些的模块设计。比如,定时器的信号设计包括延时
定时器,间隔定时器;定时器的计时方法设计;怎样使用信号交换数
据,信号的发送,时传递数据;管道的设计,父子进程如何通信,如
何创建匿名管道,管道的读写数据等;linux 操作系统下怎样调用函
数。
到了最后的几天就进行整个系统的设计了。每一个模块做起来似
乎不难,但是要把这些模块综合到一起,完成对子进程的调用,以及
管道间数据的传输还真不是一件容易的事情。系统主要分为两个部分:
3
用户空间和内核空间。在用户空间中有三个主要模块,其中 LED 灯应
用程序模块,用于完成创建子程序,用户接口的功能;LED 应用程序
子进程模块,该模块用于完成接收数据,读取控制以实现定时器对
LED 的控制;DEV 设备文件用于对 LED 灯输入输出的控制。此外,LED
应用程序和 LED 应用程序子进程之间通过管道进行数据传输,完成数
据的接收和读取。在内核空间中,主要完成系统函数的调用以及在
Linux 系统中实现对 LED 灯的控制。
最后的一步就是把程序烧到板子上。烧程序的过程也是有讲究的。
要特别注意步骤的正确性,否则不但得不到正确的结果,甚至对开发
板也会造成损害。要注意插电源的顺序,观察指示灯是否指示正确,
在流水灯的程序设计方面存在哪些问题与不足。不过到最后还是达到
了设计的要求。
二实习项目
基于 C 语言的嵌入式系统开发
三实习总结
通过本次试验使我加深了对嵌入式开发的板的理解能力和实际动
手能力,在对 LED 灯代码进行编写的过程中,要有认证思考刻苦钻研
的精神。
总结如下:
1.了解嵌入式开发全过程。
2. 熟悉主流 ARM 体系结构及汇编编程。
3. 掌握嵌入式开发环境安装、编译、运行全过程。
4
4. 掌握嵌入式应用程序开发,熟悉多进程编程。
5. 掌握嵌入式驱动程序开发,熟悉中断驱动编程。
6.培养嵌入式软件系统独立开发能力及解决问题能力。
同时也遇到了很多问题:
1. 在用 C 语言编写的过程中,符号的使用有时一不小心就会出现
错误。
2. 在程序写好后,烧程序时,要注意步骤的正确性,才能得到理
想的结果。
3. C 语言编写的控制程序是在后台运行,所以调用是否正确就很
重要了。
4 按键点亮 lED 驱动开发中遇到了很多困难,其中比较重要的就
是主设备号是否一致。在此之前是先完成了按键的驱动,然后
完成了 LED 的驱动,这两个驱动是互相独立完成的,在这里合
成了一个驱动。
四实习体会
在这次实习过程中,我体会最深刻的是作为一名工作人员以后在
工作岗位不能再带有学生时期的不良习惯,要穿着整齐,态度端正,
与上级同事搞好关系。要以良好的精神状态面对每天的工作。
学习嵌入式系统的体会:
一要从基础开始。
二选择一个适合自己的 Linux 发行版本。
三一定要养成在命令行下工作的习惯。
5
四勤于实践: 要增加自己 Linux 的技能,只有通过实践来实现。
另外,我对于这次嵌入式系统设计的理解如下:
对于嵌入式系统的开发,没有足够的资源在本机(即开发板上系统)
运行开发工具和调试工具。通常的嵌入式系统的软件开发采用一种交
叉编译调试的方式。交叉编译调试环境建立在宿主机(即一台 PC 机)
上,对应的开发板叫做目标板。【目标板】运行 Linux 的 PC【宿主机】
开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进
制代码,(这种可执行代码并不能在宿主机上执行,而只能在目标板
上执行。)然后把可执行文件下载到目标机上运行。调试时的方法很
多,可以使用串口,以太网口等,具体使用哪种调试方法可以根据目
标机处理器所提供的支持作出选择。宿主机和目标板的处理器一般都
不相同,宿主机为 Intel 处理器,而目标板如 HHARM2410 为 SAMSUNG
S3C2410,GNU 编译器提供这样的功能,在编译编译器时可以选择开
发所需的宿主机和目标机从而建立开发环境。所以在进行嵌入式开发
前第一步的工作就是要安装一台装有指定操作系统的 PC 机作宿主开
发机,对于嵌入式 Linux,宿主机上的操作系统一般要求为 Redhat
Linux,在此,我们使用 Redhat 9.0 作为本套开发系统的宿主机 PC
操作系统。在宿主机上我们要建立交叉编译调试的开发环境。
EasyARM2103 开发板提供了 4 个绿色发光二极管用作显示,电路
原理图如图如下图所示。显示电路采用了灌电流的方式来驱动发光二
极管,由于微控制器 LPC2103 I/O 口提供的灌电流大于其拉电流,采
用此驱动方式可以保证二极管发光的亮度。
6
嵌入式系统应用开发不同于 PC 机,其开发过程同时涉及软硬件以
及上层应用开发综合考虑;而 PC 机应用开发是建立在已经定制好的
硬件和操作系统平台上,开发者只需调用系统提供的接口和服务完成
相应的功能。
五实习建议
由于嵌入式系统属于综合性很强的交叉学科,《嵌入式系统》课程
与一些专业基础课之间有很强的先后修关系。在开设这门课之前必须
具备的专业基础知识有:电路分析基础、模拟电子技术、数字电路与
逻辑设计、C 语言编程、数据结构与算法、微机原理与接口、单片机
原理、ARM、通信原理与计算机网络等。按照目前的教学安排,《嵌入
式系统》课程被排在三年级第一学期。由于学生对这方面的认识和目
前市场对嵌入式人才的需求不是很了解,因此学习《嵌入式系统》的
学生人数不多,学习积极性不够强,使教学效果大打折扣。建议学院
能适当调整教学安排,以收到更好的教学效果。
嵌入式系统知识的掌握必须有良好专业基础知识,建议学院对刚
进校的新生在进行专业指导教育时,能将嵌入式系统的发展情况及人
才需求情况进行介绍,激发学生对本专业的学习兴趣和热情。
有组织系统地指导学生参加学科竞赛,并以此带动广大学生形成
注重创新能力、协作精神和理论联系实际的学风。
此外,建议学院成立一个嵌入式系统研究室,将学院中从事嵌入
式系统研发教学的教师和学生组织起来,便于教师互相合作交流,并
可开展系列嵌入式系统的科研教学工作。
7