C言嵌入式系统修练之道--背景编.pdf

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C言嵌入式系统修练之道--背景编.pdf

C 语言嵌入式系统编程修炼之道 C 语言嵌入式系统编程修炼之背景篇 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较 强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,归因于汇编语言开发过程的复杂性,它 并不是嵌入式系统开发的一般选择。而与之相比,C 语言--一种高级的低级语言,则成为嵌入式系统开 发的最佳选择。笔者在嵌入式系统项目的开发过程中,一次又一次感受到 C 语言的精妙,沉醉于 C 语言给 嵌入式开发带来的便 用 C 语言实现高效嵌入式系统编程 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 只相当于 KEI L 的早期产品,它是 KEIL 公司在美国销售时曾使用的一个品

文档评论(0)

cai + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档