版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C10L09 HTCHI-TECH C PRO编译器和增强型中档PICMCU系列 2009 Microchip Technology Incorporated.。C10L09 HTC第 1 页课程安排简介编译器概述数据类型和列表文件器文件中断运行时代码C语言和汇编语言 2009 Microchip Technology Incorporated.。C10L09 HTC第 2 页HI-TECH CPRO模式PRO(需要可全面优化标准(需要优化受限Lite(免费基本优化,证)证)评估版包含45天的PRO模式,随后将恢复为Lite模式 2009 Microchip Technology Incorp
2、orated.。C10L09 HTC第 3 页接下来简介编译器概述数据类型和列表文件器文件中断运行时代码C语言和汇编语言 2009 Microchip Technology Incorporated.。C10L09 HTC第 4 页安装安装时进行激活通过服务器连接可能需要离线激活可根据项目选择模式 2009 Microchip Technology Incorporated.。C10L09 HTC第 5 页与MPLAB IDE集成HI-TECH通用工具套件安装在编译器上的插件可独立于编译器进行更新演示 2009 Microchip Technology Incorporated.。C10L09
3、 HTC第 6 页增强型PICMCU的改进间接系统多个FSR通过FSR所有器新指令和寻址模式用于中断的新指令寄存器Shifts、carry arithmetic和indexed call等器 2009 Microchip Technology Incorporated.。C10L09 HTC第 7 页接下来.简介编译器概述数据类型和列表文件器文件中断运行时代码C语言和汇编语言 2009 Microchip Technology Incorporated.。C10L09 HTC第 8 页编译器应用程序 2009 Microchip Technology Incorporated.。C10L09
4、HTC第 9 页编译顺序所有C语言代码都并行编译库文件中包含模块信息P代码文件是中间文件 2009 Microchip Technology Incorporated.。C10L09 HTC第 10 页编译顺序通过由驱动器控制的系统实现应用程序驱动器选项可用于:调整格式选择语言已 2009 Microchip Technology Incorporated.的警告。C10L09 HTC第 11 页ts002.c: 159: (762) constant truncated when assigned to bitfield (warning)编译器消息传递#pragma和警告warning允许
5、单独控制错误 2009 Microchip Technology Incorporated.。C10L09 HTC第 12 页disable list消息enable list允许消息push保存当前状态pop获得先前状态warning list发出警告消息error list发出错误消息接下来.简介编译器概述数据类型和列表文件器文件中断运行时代码C语言和汇编语言 2009 Microchip Technology Incorporated.。C10L09 HTC第 13 页标准数据类型标准算法类型Char默认为unsignedDouble类型默认为24位宽用-double=32指定32位 2
6、009 Microchip Technology Incorporated.。C10L09 HTC第 14 页编译器指定类型24位short long整型用作布尔值的位类型按字节打包8位变量调试文件中使用的位地址位变量不为auto采用截尾方式将整型转换为位类型 2009 Microchip Technology Incorporated.。C10L09 HTC第 15 页增强型PICMCU的优势 2009 Microchip Technology Incorporated.。C10L09 HTC第 16 页中档系列增强型中档系列;ptr.c: 30: a1 += a2; bsf3,5bsf3,
7、6movf110,wbcf3,5bcf3,6addwf32,fbtfsc3,0incf33,fbsf3,5bsf3,6movf111,wbcf3,5bcf3,6addwf33,f 162:;ptr.c: 31: a1 = 2;bcf3,0rlf32,frlf33,fbcf3,0rlf32,frlf33,f;ptr.c: 30: a1 += a2; movlb3movf110,wmovlb0addwf32,fmovlb3movf111,wmovlb0 addwfc 33,f156:;ptr.c: 31: a1 = 2;lslf32,frlf33,flslf32,frlf33,f标准限定符cons
8、t限定符对象为只读(不能写入)存放于程序空间字符串常量(literal”)具有const char *类型 2009 Microchip Technology Incorporated.。C10L09 HTC第 17 页标准限定符volatile限定符值可从外部修改应当用于寄存器/变量:由硬件修改产生电信号由中断程序修改编译器将尝试原子在一条指令中修改值 2009 Microchip Technology Incorporated.。C10L09 HTC第 18 页编译器指定限定符near限定符(提示)尝试到通用器中persistent限定符不会被运行时启动代码清零eeprom限定符将对象放入
9、EEPROM器中 2009 Microchip Technology Incorporated.。C10L09 HTC第 19 页编译器指定限定符0/1/2/3限定符b由-ADDRQUAL选项控制操作期望的指定要求的指定区区 2009 Microchip Technology Incorporated.。C10L09 HTC第 20 页空间分配 2009 Microchip Technology Incorporated.。C10L09 HTC第 21 页调用图生成 2009 Microchip Technology Incorporated.。C10L09 HTC第 22 页编译后的堆栈生成
10、 2009 Microchip Technology Incorporated.。C10L09 HTC第 23 页绝对变量SFR变量,例如主要用于在用于GP变量时要头文件包含所有SFR的定义: 2009 Microchip Technology Incorporated.。C10L09 HTC第 24 页#include volatile near unsigned char PIR1 0 x0C;指针完全支持数据和函数指针定义通用格式及示例: 2009 Microchip Technology Incorporated.。C10L09 HTC第 25 页对象类型和限定符*指针限定符指针名称及
11、初始化char*cp ;const char*cp ;char*constcp = address;const char*constcp = address;指针独立指针大小和范围由使用情况决定每个目标的空间/区目标的大小(尤其是数组)特殊的限定符不再需要或考虑标准限定符维持原有意义 2009 Microchip Technology Incorporated.。C10L09 HTC第 26 页指针示例 2009 Microchip Technology Incorporated.。C10L09 HTC第 27 页指针示例 2009 Microchip Technology Incorpora
12、ted.。C10L09 HTC第 28 页指针示例 2009 Microchip Technology Incorporated.。C10L09 HTC第 29 页增强型PICMCU的优势 2009 Microchip Technology Incorporated.。C10L09 HTC第 30 页Mid-rangeEnhanced Mid-range;ptr.c: 30: if(*cp = x) movf125,wbcfpclath,3bcfpclath,4callstringdirbcfpclath,3bcfpclath,4xorlw120btfss3,2gotol2 151;ptr.c
13、: 31: *lp = 0 x1234; movf114,wmovwf4movlw52movwfindfincf4,fmovlw18movwfindf stringdir:movwfbtempmovlwhigh stringdir movwf10movfbtemp,waddwf2,f;ptr.c: 30: if(*cp = x) movf125,wmovlphigh stringtab callwpagesel $ xorlw120btfss3,2bral255155;ptr.c: 31: *lp = 0 x1234; movf114,wmovwf4clrf5movlw52movwifsr0+
14、movlw18movwfindf函数调用基础系列:使用堆栈,然后恢复为查找表中档系列:使用堆栈可定义绝对函数 2009 Microchip Technology Incorporated.。C10L09 HTC第 31 页void spel(a) 0 x100.行内延迟特殊行内延迟“函数” _delay已提供的宏也使用_delaydelay_ms和 delay_us 2009 Microchip Technology Incorporated.。C10L09 HTC第 32 页;wait.c: 10: _delay(10);movlw3movwf?_main u857:decfsz ?_mai
15、n,f gotou857;wait.c: 12: _delay(2000);movlw3movwf?_main+1 movlw151movwf?_main u877:decfsz ?_main,f gotou877decfsz ?_main+1,f gotou877nop2接下来.简介编译器概述数据类型和列表文件器文件中断运行时代码C语言和汇编语言 2009 Microchip Technology Incorporated.。C10L09 HTC第 33 页汇编列表文件汇编器列表文件显示:C语言或汇编语言源代码输出汇编代码和伪指令C语言程序的:函数信息符号表演示 2009 Microchip
16、 Technology Incorporated.。C10L09 HTC第 34 页全局符号在汇编符号前使用下划线应用到函数和变量采用偏移量来指定附加的字节 2009 Microchip Technology Incorporated.。C10L09 HTC第 35 页符号局部Auto变量和参数被定义为每个函数 APB加上偏移量参数使用前缀?Auto参数使用前缀? 2009 Microchip Technology Incorporated.。C10L09 HTC第 36 页符号局部汇编的宏也已经定义好了:可按自己的偏爱使用宏或者以?和?为前缀的符号,例如: 2009 Microchip Te
17、chnology Incorporated.。C10L09 HTC第 37 页_F2_aEQU?_F2+0_F2_bEQU?_F2+2_F2_cEQU?_F2+0_func_name_var_name EQU ?func_name+offset接下来.简介编译器概述数据类型和列表文件器中断运行时代码C语言和汇编语言文件 2009 Microchip Technology Incorporated.。C10L09 HTC第 38 页文件文件由以下各项组成:器使用的选项调用图每个模块定义的Psect按类列出的Psect汇总未使用的程序符号表器地址演示 2009 Microchip Technolo
18、gy Incorporated.。C10L09 HTC第 39 页接下来.简介编译器概述数据类型和列表文件器文件中断运行时代码C语言和汇编语言 2009 Microchip Technology Incorporated.。C10L09 HTC第 40 页中断一个中断向量(地址4)中断服务程序(ISR)许多中断源到此处中断标志位决定中断源 2009 Microchip Technology Incorporated.。C10L09 HTC第 41 页中ISR可全部用C语言编写码由限定符errupt识别不能包含参数并且是void返回类型不能由main程序代码调用将与中断向量将通过retfie指令
19、返回 2009 Microchip Technology Incorporated.。C10L09 HTC第 42 页中断示例ISR可使用任何有效的C标识符总是要检查中断源检查中断标志位和中断使能位 2009 Microchip Technology Incorporated.。C10L09 HTC第 43 页voiderrupt isr(void)if(RCIF & RCIE)byte = RCREG;现场切换 2009 Microchip Technology Incorporated.。C10L09 HTC第 44 页中档增强型GIE硬件保存PCPC, PCLATH, WREG, SUS
20、, FSRs, BSR保存PCLATH, WREG, SUS, FSR用户ISR恢复PCLATH, WREG, SUS, FSR硬件恢复PCPC, PCLATH, WREG, SUS, FSRs, BSR返回retfieretfieGIE使能中断警告仅保存ISR调用图所使用的寄存器不扫描行内汇编在ISR内的任何位置不要重新使能GIE位 2009 Microchip Technology Incorporated.。C10L09 HTC第 45 页重入问题所有函数均不能重入当前正在调用时重入将破坏局部变量 2009 Microchip Technology Incorporated.。C10L0
21、9 HTC第 46 页void main(void) while( ! ready) wait();/ .voiderruptisr(v) while( ! ready)wait();/ .函数以重入方式调用的函数会被标识符使用前缀i1可以使用pragma来,假如:函数确定不会以重入方式调用;或者函数不包含参数、auto或临时变量。 2009 Microchip Technology Incorporated.。C10L09 HTC第 47 页#pragmaerrupt_level 1 void waioid) .函数 2009 Microchip Technology Incorporate
22、d.。C10L09 HTC第 48 页原子级操作中断是一种汇编功能一条C语言令可能会在表达式中间中断对于多字节对象很重要Volatile并不能保证原子级操作可能产生许多汇编指 2009 Microchip Technology Incorporated.。C10L09 HTC第 49 页接下来.指令编译器概述数据类型和列表文件器文件中断运行时代码C语言和汇编语言 2009 Microchip Technology Incorporated.。C10L09 HTC第 50 页库代码驱动器选择相关的库文件只包含使用的函数先扫描定义的源代码请参见列表文件以确认每次编译时定制需要的程序:运行时启动代码
23、(汇编语言)Prf函数(C语言代码) 2009 Microchip Technology Incorporated.。C10L09 HTC第 51 页运行时启动代码 2009 Microchip Technology Incorporated.。C10L09 HTC第 52 页erup程序如果存在,则在复位后运行erup程序提供自动使用:erup psect内代码在完成时跳至start 2009 Microchip Technology Incorporated.。C10L09 HTC第 53 页上电示例 2009 Microchip Technology Incorporated.。C10L
24、09 HTC第 54 页#includeaspic.h” GLOBALerup,startPSECTerup erup:Inserterup code here clrSUSmovlwst8 movwfPCLATHgotostart & 0 x7FFPrf函数采用用额外步骤检测pr说明了占位符和参数f的使用定制的pr必须在pf会被编译出h中定义stdout 2009 Microchip Technology Incorporated.。C10L09 HTC第 55 页void ph(char data) whil! TXIF)continue; TXREG = data;接下来.简介编译器概述
25、数据类型和列表文件器文件中断运行时代码C语言和汇编语言 2009 Microchip Technology Incorporated.。C10L09 HTC第 56 页汇编语言代码独立的汇编语言模块法用C代码嵌入行内借助以下任汇编:放置一条指令的asm(“者 ”);语句;或#asm#endasm指令块从句法上来讲不是C语言代码的一部分不要用在循环中行内汇编代码可能会被汇编器优化程序更改 2009 Microchip Technology Incorporated.。C10L09 HTC第 57 页汇编语言与C语言的交互针对以下项进行独立扫描:只用在汇编中的C符号C符号为volatile汇编中的
26、器要求器由CGEN保留调用和堆栈信息编译后的堆栈计算包含这些调用 2009 Microchip Technology Incorporated.。C10L09 HTC第 58 页汇编语言与C语言的交互 2009 Microchip Technology Incorporated.。C10L09 HTC第 59 页总结今天了:编译器的组成器分配列表文件和如何处理中断文件中的有用信息运行时代码的产生哪些领域可采用增强型中档系列器件进行代码优化 2009 Microchip Technology Incorporated.。C10L09 HTC第 60 页其他资源“Embedded C Programming”Chuckebuyck网上研讨会/webseminars/Archived.asp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 荔枝控梢促花技师考试试卷及答案
- 2025年内蒙古西部新能源开发集团有限公司招聘工作人员35人笔试历年参考题库附带答案详解
- 2025年下半年安徽交控驿达集团招聘3人笔试历年参考题库附带答案详解
- 2025山东青岛颐杰鸿利科技有限公司招聘3人笔试历年参考题库附带答案详解
- 2025安徽皖江大龙湾控股集团有限公司招聘13人笔试历年参考题库附带答案详解
- 2025国家电投集团重庆公司招聘笔试历年参考题库附带答案详解
- 2025四川蜀道资本控股集团有限公司招聘15人笔试历年参考题库附带答案详解
- 2025四川泸州懋威科技有限公司行政保障系列人员第二次招聘7人笔试历年参考题库附带答案详解
- 2025四川九强通信科技有限公司招聘射频工程师助理测试笔试历年参考题库附带答案详解
- 2025内蒙古建元能源集团有限公司招聘122人笔试历年参考题库附带答案详解
- 2025年中核集团校招笔试题库及答案
- “欧普照明杯”城市照明行业电工理论考试题库(附答案)
- 2026春小学科学苏教版(2024)三年级下册第三单元不同环境里的植物《9 形态各异的植物》教学设计
- 【《年产3000t木聚糖酶发酵车间工艺设计》16000字】
- 服装厂组长合同范本
- 困困困不醒大王原创课件
- 食品化验员岗位考试试卷及答案
- 服装厂生产计划编制与调整方法
- 工程机械考试题及答案
- 第二节 数据及其价值教学设计-2025-2026学年初中信息技术(信息科技)七年级下册甘教版
- 医疗废物人员培训知识课件
评论
0/150
提交评论