下载此文档

第八章 MC9S12的C语言程序设计ppt课件.ppt


文档分类:IT计算机 | 页数:约50页 举报非法文档有奖
1/50
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/50 下载此文档
文档列表 文档介绍
第八章 MC9S12的C语言程序设计1单片机C语言与汇编语言的区别在目前的单片机应用系统研制过程中,主要使用汇编语言和C语言作为开发语言,两者各有特点。汇编语言的特点:(1)直接操作硬件及资源。(2)生成代码精简高效。(3)起步要求较高,程序员需对硬件有深刻的了解,一个好的程序员往往能大大减少开发与调试的周期。(4)可移植性较差,硬件或资源改变代码需要大量修改。2C语言的特点:(1)对程序员要求较低,往往只需要程序员了解一定的硬件知识即可。(2)可移植性较好,可以编写跨平台的嵌入式软件。(3)不需要程序员管理堆栈。在调用子程序和中断子程序时,不需要用户处理繁锁的栈操作,加快了开发进度,同时减少了栈操作出错的可能性。(4)生成代码的效率取决于编译器和程序员的编程风格。注意:任何一款C编译器都不会比一个有经验的汇编语言程序员编写的汇编程序效率高,但是写一个好的C程序然后转换为高效的汇编程序比直接写高效的汇编程序就容易多了。3综上所述,无论是采用C语言还是汇编语言都各有其利弊。我们既不推荐在学****与开发嵌入式软件过程中完全采取汇编语言(因为汇编语言对一个不懂硬件的新手来说,是需要一定的时间才能上手的),也不赞同完全使用C语言(因为有许多底层的操作,C的语句是无法做到的)。所以在开发过程中,我们往往采用C和汇编结合的一种编程风格,要充分利用这两者的优势。例如我们通常把底层的对硬件的操作留给汇编指令,把与硬件无关或相关性较少的部分用C代码实现。当然,要充分发挥两者的性能,需要程序员对编译器有一定了解,并注重平时的积累。4程序的哪些部分宜用汇编语言编写呢?系统的硬件相关部分,虽然也可以写成C语言的形式,但是使用汇编语言写更直观,更方便。就CPU12而言,用汇编语言写起来比较容易的有以下3部分内容。(1)系统的初始化,包括所有应用初始化的寄存器,各端口、各寄存器位在系统中的定义,栈指针的设置等,以建立C语言程序运行的环境。(2)中断向量的初始化,中断服务的入口和出口,开中断关中断等,而中断服务本身则可用C语言编写,用汇编程序调用C语言写的子程序完成中断服务。(3)用汇编语言写输入口、输出口的输入输出函数,在C语言程序中调用这些函数。5总之,用汇编语言写与硬件有关部分的程序,用C语言写与硬件无关部分的程序,处理好两部分程序之间的参数传递是成功的关键。对于单片机系统,与硬件相关部分的程序量不会很大,一般不会超过2KB的机器码。如果整个应用程序大于4KB,强烈主张使用C语言编写应用程序,应用程序越大,使用高级语言的好处就越显著,不必担心C语言的效率或速度。对于熟悉汇编语言的编程员,C语言就是与机器无关的汇编语言,写过一些程序以后就会感觉到,在写C程序时,汇编程序的大致模样就浮现在眼前。6嵌入式C语言与标准C语言的区别纯粹的ANSIC语言并不适合单片机开发,这是因为:(1)嵌入式系统与硬件密切相关;(2)大部分嵌入式系统使用中断;(3)ANSIC语言的变量类型提升规则对存储器消耗非常大;(4)有些MCU不支持C语言堆栈;(5)很多MCU具有多种存储空间,例如51单片机的程序存储器、数据存储器、特殊功能存储器等。7因此嵌入式C语言必需适合嵌入式的特殊环境:有限RAM、有限ROM、有限堆栈空间、要求具有硬件编程向导、严格的时序(ISR,tasks,...)、必需具有多种指针类型(far /near /rom /uni /paged /...)、必需具有特殊关键字/符号(@,interrupt,tiny,...)。并不是所有的MCU都可以用C语言来开发,它们必需具备一定的硬件条件:(1) 完整的指令系统;(2)拥有分别为运算和指针服务的16位寄存器;(3)堆栈指针,在S12C语言中它们就是SP;(4)连续的地址空间。8S12C语言与标准C语言的语法基本相同,但是也存在一些不同之处,使用时应该注意。,但CodeWarrior规定了。CodeWarrior的一些基本数据类型见教材P185表5—1所示。标准C中,double类型长度为8字节,而S12C中,double类型长度为4字节。S12C语言与标准C语言的不同之处9嵌入式C语言编程不同于一般C语言编程的一个显著特点,就是要和程序存储器资源结合起来,虽然其提供的数据类型十分丰富,但是只有char数据类型是机器语言直接支持的数据类型,用此类数据类型的语句所生成的代码较短;而其它的数据类型如整型、浮点型等数据要有一定的内部程序或内部函数的支持,相对来说用该类数据类型的语句生成的代码要长。有些C语言程序表面上看起来十分的简单,但在实际编译时,生成的代码却相当长。因此我们要按照实际需要,尽量选用占用存储空间少的数据类型,可以大大的减少所生成的代码长度。10

第八章 MC9S12的C语言程序设计ppt课件 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数50
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mkjafow
  • 文件大小90 KB
  • 时间2020-09-30