- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统的C语言编程.pdf
第一部分教学研讨篇 27
嵌入式系统的C语言编程
何煦岚 夏霖 朱正礼
南京林业大学信息学院计算机系.南京,210037
掩要本文务绍丁嵌入式系统的c语言癌程的一些重要特壬£。从工程设置、数据建构、算法谴计三个方
面进行诜明。通过和PC机嫡程过程相比较,指出了嵌入式系统缩程本身特有的属性和方法。通过对各个墒
程环节的分析和嵌入式系统自身特点的研究,提出了一些提高鳊程质量的思路。
关键词嵌八式系统,字节序.指针,宏,参数停递
引 言
当前用于开发嵌入式系统最常用的是c语言。c语占像留了很多低级语言的特征.对于嵌人式系统的开
发非常重要。在福多高校的c语言教学过程中,把它当成一门普通的高级语言击学习。在这种环境下培养出
来的学生.其f语言知识结构不容易满足嵌人式系统开发的要求。本文鼠三个方面来讲述学习面向嵌人式系
统的C语言编程时,必须掌握的一些知识。
2 系统的工程结构设置
生成一个嵌人式系统的工程文件和其他系统中的工程文件有较大区别。PC机c语言程序的工程,可以
依靠开发系统自动生成。嵌入式系统的编程和所面向的目标硬件结构密切相关.在生成一个工程文件的时候,
至少要考虑以F几点。
①选择系统的处理器类型。一个嵌入式系统可以使用的处理器类型不只一种,根据不同的处理器类型,
编译系统会生成不同的代码,所以开发人员必须选择好当前系统的处理器类型。一般是首先确定处理器的厂
家,再去寻找该址理器的具体类型。
②确定系统的可用存销区的起始地址和系统所能提供的只凄以及可读/写存储区的容量。因为整个系统
的可寻址空间总是比实际存储空间大,只有开发人员明确指出系统的存储区特性,编译连接工具才能正确确定
将编译连接后的镜像文件送往系统哪个存储区。
③系统中字节序的确定。字节序有两种,一种是小字节序,另一种是大字节序。小字节序就是一个多字
节的数据,高位在高地址.地位在低地址。比如一个四字节的长整型数0它的地址是100,那么第
太字节序刚好相反。开发人员应该选择正确的字节序,否则.本系统和其他系统的信息传送.本系统内部的信
息传送中,有可能发生数据错误。
④结构体的对齐方式。结构体是嵌入式系统经常使用的一种数据类型,编译系统在编译结构体数据时,
会使用不同的对齐方式。一般有1字节对齐、2字节对齐、4字节对齐、8字节对齐方式。所谓的n字节对齐。
就是一个结构体数据编译后,总字节数一定是rt的整数倍,如不足则后面添0凑齐。正因为这个关系,很多时
候,一段数据在处理后会“莫名其妙”地多出几个字节来。开发人员在编写程序时,如果投有对编译结构体的对
齐方式加以考虑.可能会编写出错误的代码。
3嵌入式系统编程的数据结构设计
嵌人式系统的数据结构设计和PC机编程相比也有自己的一些特色.必须加以注意。
①符号常量的使用。嵌入式系统的设计中,会使用到很多常量,而这些常量往往和系统的硬件特性有关,
比如说,一个系统的分频值,定时嚣长度等。在不同的开发阶段,这些常量还可能更残。如果在程序中使用直
接常量,那么程序的可读性就会变得很差,理解和修改起来非常困难。所以,在设计程序时,应该尽量使用宏来
定义和使用这些常量。而在设计宏名时.一定要让宏名反映出这个常量的硬件特性。例如:
#defineUART—RATE9600
CESC
28 2006年第一届全国嵌入式系统学术史流套论文莱
这个常量是一个通用串行接l=_f的波特率,其值是9600。
②将要使用的数据类型明确化。这里的明确化是指确定一个特定数据类型的数在存储器中的组织方式。
它要求开拄人员清楚地知道这个数据占用了几字节,字节顺序等。开发人员应避免使用int这样的类型。int
类型在不同编译器中,所占有的字节数可能是两个,也可能是四个。在PC机编程中,可能不需要考虑这个问
题.嵌人式系统中,则必须有这种意识。因为,嵌入式系统编程直接面向各个部件的硬件特征,对:p--个数据占
用几个字节这样的特性必须心中有数。
解决这十问题的方法是,在头文件中,用typedef语句定义自己的
文档评论(0)