用C语言实现高效嵌入式系统编程.docxVIP

用C语言实现高效嵌入式系统编程.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用C语言实现高效嵌入式系统编程发布时间 : 2008-11-15??? 来源 :未知??? 作者 :匿名 ??浏览 : 1081 1引言随着市场竞争的日趋激烈,要求电子工程师能够在短时间内编写出执行效率高而又可靠的嵌入式系统的执行代码。同时,由于实际系统的日趋复杂,要求所写的代码规范、模块化并便于多个工程师以软件工程的形式进行协同开发。汇编语言作为传统的嵌入式系统的编程语言,已经不能满足这样的实际需要了。而C语言以其结构化和能产生高效代码满足了这样的需要,成为电子工程师在进行嵌入式系统编程时的首选开发工具而得到了广泛支持:早在1985年就推出了针对8051的C51编译器,而其它流行嵌入式处理器系统如196系列,PIC系列,MOTORAL系列,MSP430系列,AD公司和TI公司的DSP系列都有功能强大的C语言编译系统以及丰富的C语言库函数。2高级C语言编程与汇编语言编程相比的优势在国内,大量的程序员仍采用汇编语言作为开发工具进行编程,汇编语言有执行效率高的优点,但其可移植性和可读性差,以及它本身就是一种编程效率低下的低级语言,这些都使它的编程和维护极不方便,从而导致整个系统的可靠性也较差。而使用C语言进行嵌入式系统的开发,有着汇编语言编程不可比拟的优势。(1)编程调试灵活方便C语言作为高级语言的特点决定了它灵活的编程方式,同时,当前几乎所有系列的嵌入式系统都有相应的C语言级别的仿真调试系统,使得它的调试环境十分方便。(2)生成的代码编译效率高当前较好的C语言编译系统的编译效率已基本达到中等程序开发人员的水平。(3)完全模块化一种功能由一个函数模块完成,数据交换可方便地约定实现,这样十分有利于多人协同进行大系统项目的合作开发;同时,由于C语言的模块化开发方式,使得用它开发的程序模块可不经修改的被其它项目所用。可以很好地利用现成的大量C程序资源与丰富的库函数,从而最大程度地实现资源共享。(4)可移植性好由于不同系列的嵌入式系统C语言编译工具都是以1983年的ANSI-C作为基础进行开发的,因此,一种C语言环境下所编写的C语言程序,只需将部分与硬件相关的地方进行适度修改,就可方便地移值到另外一种系列上,例如,C51下编写的程序通过改写头文件,同时做少量的程序修改,可方便地移值到196或PIC系列上。也就是说,基于C语言环境下的嵌入式系统能基本达到平台的无关性。(5)便于项目维护管理用C语言开发的代码便于开发小组计划项目、灵活管理、分工合作,以及后期维护,基本上可以杜绝因开发人员变化而给项目进度或后期维护或升级所带来的影响,从而保证整个系统的高品质、可靠性以及可升级性。3嵌入式C语言编译器与PC机上的标准ANSI-C编译器的主要区别不同系列的嵌入式系统的C编译器,根据它所对应的不同芯片系列有其各自的特点,在这里,以KEIL公司的针对51系列的KEILC51编译器为例,简要说明它与ANSI-C的主要区别,其它的编译系统与ANSI-C的差别,可具体参照指定编译系统手册,找出它们的不同之处。清楚嵌入式系统的C编译器与标准ANSI-C的区别是用C编译器系统进行嵌入式系统开发的前提条件。不同的嵌入式C编译系统之所以与ANSI-C有所不同,主要是由于它们所针对的硬件系统有其各自不同的硬件特点,对国内开发人员熟悉的51系列单片机,有着最为丰富的编译系统,其中最为出色的当属KEIL(也就是大家熟知的FRANKLING,但FRANKLING只相当于KEIL的早期产品,它是KEIL公司在美国销售时曾使用的一个品牌)。从头文件来说,51系列有不同的厂家,不同的系列产品,如仅ATMEL公司就有大家熟悉的89c2051、89c51、89c52以及大家不熟悉的89s8252等系列产品。它们都是基于51系列的芯片,唯一不同之处在于内部资源如定时器、中断、I/O等数量以及功能的不同,为了实现这些功能,只需将相应的功能寄存器的头文件加载在程序中就可实现它们所指定的不同功能。因此,KEILC51系列头文件集中体现了各系列芯片的不同功能。从数据类型来说,由于8051系列器件包含位操作空间和丰富的位操作指令,直接嵌入式C与ANSI-C相比,比ANSI-C多一种位类型,使得它能如同汇编一样,灵活的进行位指令操作。从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述)。与ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各种不同的模式对应不同的实际硬件系统,也将

您可能关注的文档

文档评论(0)

nnh91 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档