5 MC9S12的C语言与标准C语言的区别.ppt
《5 MC9S12的C语言与标准C语言的区别.ppt》由会员分享,可在线阅读,更多相关《5 MC9S12的C语言与标准C语言的区别.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MC9S12MC9S12的的C C语言与标准语言与标准C C语言的区别语言的区别控制科学与工程学院控制科学与工程学院1、建立汇编语言工程建立一个汇编语言程序并完成LED点亮选择“File”“New”选择向导,输入工程名“LED”,设置工程目录欢迎屏幕选择单片机“MC9S12DG128B”选择开发语言“Assembly”选择“RelocatableAssembly”选择编译目标完成建立汇编语言工程选择编译目标为TBDML,插好PCB板在“CLI”后写上执行一次的代码:movb#$ff,DDRBmovb#$55,PORTB这两句代码只执行一次,可以看到静态花灯的效果程序进入大循环,花灯状态不变2、
2、建立C语言工程建立一个C语言程序并完成LED花灯闪亮选择“File”“New”选择向导,输入工程名“LED”,设置工程目录欢迎屏幕选择单片机“MC9S12DG128B”选择开发语言“Assembly”和“C”选择不使用ProcessorExpert选择不使用PC-Lint选择ANSIStartupcode选择浮点数支持为NONE建立C语言工程MemoryModule选择banked编译目标选择上TBDML完成初始化方向寄存器和初始显示DDRB=0 xff;PORTB=0 x55;在无限for循环里写PORTB=PORTB;编写延时函数delay1()建立C语言工程voiddelay1()uns
3、ignedinti=60000;while(i-);在“PORTB=PORTB;”后调用该函数delay1();观看演示效果,典型的无限循环程序C语言程序结构void main(void)EnableInterrupts;/开中断asm_main();/初始化硬件/设置单片机I/O口的数据方向for(;)/无限循环/循环执行的程序/花灯循环显示开机执行一次循环执行到断电为止3、Codewarrior4.6程序调试软件仿真调试选择编译目标为FullChipSimulation调试:全速执行、断点、执行到光标、单步等子窗口:source、data、register、assembly、memory、
4、command等Codewarrior4.6程序调试BDM调试安装BDM驱动拨码开关1提供供电方式选择编译目标TBDML进入调试界面需要进行相关设置,如晶振频率、MCU型号等等单步全速调试与仿真基本相同,不同的是这个属于在线调试,必须有MCU连接。Lecture5Page11微控制器开发技术FileprocesstreeC源文件源文件汇编源文件汇编源文件库文件库文件目标文件目标文件C编译器汇编编译器链接器执行文件执行文件映射文件映射文件列表文件列表文件汇编汇编反编译文件反编译文件反编译器链接配链接配置文件置文件*.h*.c*.c+*.asm*.inc*.prm*.lib*.obj*.lst*.
5、map*.sx*.abs4、S格式文件将程序和数据用ASCII码表示,包含了基本协议,包括出错校验功能。程序编译完成后,在bin文件夹生成“xxx.abs.s19”文件。行-S记录,由记录类型、记录长度、存储地址、程序/数据校验和构成。记录类型(S0、S1、S9)S0:包含本S文件的名字,在PC上有意义。如P167,S0表示记录类型,18为记录长度(0X18),最后一个字节80为校验码。S1:S1后接记录长度,接装载地址,32个机器码字节,最后为校验码。S格式文件S9:最后一个记录,表示文件传送结束。S记录类型S0:S格式文件的起始记录S1:地址为2字节的程序数据记录S2:地址为3字节的程序数
6、据记录(64K)S3:地址为4字节的程序数据记录(16M)S5:标记本文件的S1、S2或S3记录个数(可选)S7:S3格式,用S7记录结束S8:S2格式,用S8记录结束S9:S1格式,用S9记录结束S0510000433A5C446F63756D656E747320616E642053657474696E67735C41646D696E6973747261746F725C4D7920446F63756D656E74735C50726F6A6563745F335C62696E5C50726F6A6563742E616273BDS123C000CF050010EF180BFF0003180B550
7、001CE00017E0500070E7C0502FE0500088E0028S119C0201826EF20EACD0000CC000104050719EEB7C60435F93D32S105FFFEC0003DS9030000FC2、MC9S12的的C编程与标准编程与标准C的不同的不同9S12C语言的不同变量资源映射用C语言处理中断(中断向量表64)标准C库C语言入口程序链接与定位变量的不同基本数据类型的定义P185特有类型的变量volatile更加特殊的constvolatile2.1变量各种类型的数据占的字节数,在不同的系统中有所不同各种类型的数据占的字节数,在不同的系统中有所不同自定
8、义CodeWarrior数据类型在CodeWarrior环境下按ALT+F7打开工程的通用设置,选择“CompilerforHC12”面板然后点按钮“TypeSizes”。CodeWarrior编译器标准类型设置建议不要随意更改数据类型的设置16位微控制器内部的数据长度是16位(2字节),所以首选的数据类型是“int”。16位机处理16位数据比8位数据的效率更高。对于9S12单片机来说,16位数据类型效率最高,因此在使用中,尽量选择int类型数据。若可能,选用无符号类型。数据类型的真相存储类修饰符以下关键字用于声明变量,以指定特定需要或内存中变量存储的相关条件。static(静态变量)vola
9、tile(可变变量)const(只读变量)Constvolatile可变(volatile)变量volatile的本意是“易变的”,就是该变量会以编译器无法预知的方式发生变化.所有的编译器的优化均假设编译器知道变量的变化规律,请编译器不要做优化。也就是说是其值在正常程序流程以外可能改变的变量。在嵌入式系统中,这种情况通过两种主要途径发生:一是中断服务程序,二是硬件动作。例子staticinti=0;intmain(void).while(1)if(i)dosomething();/*Interruptserviceroutine.*/voidISR_2(void)i=1;程序的本意是希望ISR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MC9S12的C语言与标准C语言的区别 MC9S12 语言 标准 区别
限制150内