如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
用C语言实现高效嵌入式编程吴斌刘宗行青舟□一、引言摘要:用高级语言C进行嵌入式系统的编程有着汇编语言编程所不可比拟的优势,并已成为未来必然的发展趋势。本文根据作者的实际开发经随着市场竞争的日趋激烈,验,以KEILC51为开发工具,首先介绍了高级语言C的编程优势,然要求电子工程师能够在短时间后介绍了C51与标准C语言的主要不同点,介绍了用高级语言C进行内编写出执行效率高而又可靠嵌入式系统编程的特点;介绍了如何快速编出规范、高效而又精简的C的嵌入式系统的执行代码。同语言程序,以及如何对程序进行优化。时,由于实际系统的日趋复杂,关键词:C语言,单片机,高效,优化要求所写的代码规范、模块化并二、高级C语言编程与汇编语言十分方便;便于多个工程师以软件工程的编程相比的优势。2、生成的代码编译效率高形式进行协同开发。汇编语言作在国内,大量的程序员仍采当前较好的C语言编译系统为传统的嵌入式系统的编程语用汇编语言作为开发工具进行其编译效率已基本可达到中等言,已经不能满足这样的实际需编程,汇编语言有执行效率高的程序开发人员的水平;要了。而C语言以其结构化和能优点,但其可移植性和可读性3、完全模块化产生高效代码满足了这样的需差,以及它本身就是一种低级语一个功能由一个函数模块要,成为电子工程师在进行嵌入言带来编程效率低下,都使它的完成,数据交换可方便的约定实式系统编程的首选开发工具而编程和维护极不方便,从而导致现,这样十分有利于多人协同进得到了广泛支持,早在1985年整个系统的可靠性也较差。而使行大系统项目的合作开发。同就推出了针对8051的C51编译用C语言进行嵌入式系统的开时,由于C语言的模块化开发方器,而其它流行嵌入式处理器系发,有着汇编语言编程所不可比式,使得用它开发的程序模块可统如196系列、PIC系列、MOTORAL拟的优势:不经修改的被其它项目所用。可系列、MSP430系列、AD公司和1、编程调试灵活方便以很好的利用已有的大量C程序TI公司的DSP系列都有功能强大C语言作为高级语言的特点资源与丰富的库函数,从而最大的C语言编译系统以及丰富的C决定了其灵活的编程方式,同程度的实现资源共享。语言库函数。时,当前几乎所有系列的嵌入式4、可移植性好:系统都有相应的C语言级别的仿由于不同系列的嵌入式系真调试系统,使得它的调试环境统C语言编译工具都是以1983SensorWorld202002.3信号与处理Signal&Processing年的ANSI-C作为基础进行开发不同的嵌入式C编译系统之区和间接寻址类型,它分别对应的,因此,一种C语言环境下所所以与ANSI-C有不同的地方,code、data、xdata、idata以及编写的C语言程序,只需将部分主要是由于它们所针对的硬件根据51系列特点而设定的pdata与硬件相关的地方进行适度修系统有其各自不同的硬件特点,类型,使用不同的存储器,将使改,就可方便的移植到另外一种对国内开发人员所熟悉的51系程序执行效率不同,在编写C51系列上,例如,C51下编写的程列单片机,有着最为丰富的编译程序时,最好指定变量的存储类序通过改写头文件,以及少量的系统,其中最为出色的当属KEIL型,这样将有利于提高程序执行程序修改,可方便的移植到196(也就大家所熟知的FRANKLING,效率(此问题将在后面专门讲或PIC系列上。也就是说,基于但FRANKLING只相当于KEIL的述)。与ANSI-C稍有不同,它只C语言环境下的嵌入式系统能基早期产品,它是KEIL公司在美分SAMLL、COMPACT、LARGE模式,本达到平台的无关性;国销售时曾使用的一个品牌)。各种不同的模式对应不同的实5、便于项目维护管理1、从头文件来说,51系列际硬件系统,也将有不同的编译用C语言开发的代码便于开有不同的厂家,不同的系列产结果。发小组计划项目、灵活管理、分品,如仅ATMEL公司就有大家所4、从数据运算操作和程序工合作,以及后期维护,基本上熟悉的89c2051,89c51,89c52以控制语句以及函数的使用上来可以杜绝因开发人员变化而给及大家所不熟悉的89s8252等系讲,它们几乎没有什么明显的不项目进度或后期维护或升级所列产品。它们都是基于51系列同,只是在函数的使用上,由于带来的影响。从而保证整个系统的芯片,唯一不同之处在于内部嵌入式系统的资源有限,它的编的高品质、可靠性以及可升级资源如定时器、中断、定时器,译系统不允许太多的程序嵌套。性。I/O等数量以及功能的不同。为C语言的丰富的库函数对程序开了实现这些功能,只需要将相应发提供了很大的帮助,但它的库