- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 应用示例: AREA global_exp,CODE,READONLY EXPORT asmsub ;在汇编中声明一个全局标号 IMPORT globv ;声明在C中定义的全局变量globv asmsub LDR R1,= globv ;将内存地址读入到R1中 LDR R0,[R1] ;将globv数据读入到R0中 ADD R0,R0,#2 ;R0=R0+2 STR R0,[R1] ;加2后再将值赋予变量globv MOV PC,LR ;程序返回 END ;汇编结束 在该程序中,变量globv是在C程序中声明的全局变量,在汇编程序中首先使用IMPORT伪指令声明该变量,再将其内存地址通过伪指令LDR读入到寄存器R1中,将其值装载到寄存器R0中,修改后将寄存器R0的值赋予变量globv。 ? * 4.3.6 嵌入式C语言中的几个特殊关键字 1. 用于声明函数的关键字 用于声明函数的关键字是告诉C编译器对被声明的函数给以特别的处理,这是对ANSI C语言的扩充。 ⑴关键字__irq(注意是双下划线) 双下划线前缀关键字__irq用于对中断处理函数的声明,包括IRQ中断函数和FIQ中断函数。它可以保存除浮点寄存器外被该函数破坏的寄存器,包括ATPCS标准要求的寄存器。该函数在调用前需要保存CPSR到SPSR_irq,设置CPSR[7:0]位,保存当前的PC指针到LR(R14_irq),然后将IRQ异常中断向量地址0给PC开始执行中断程序;执行完中断函数返回时通过将SPSR_irq的值赋给CPSR,将LR-4的值赋给PC等实现函数的返回。其语法格式如下: static void __irq 中断函数名(void){…} 注意:中断函数一般是没有输入参数和返回值的。 ⑵ 关键字__swi 双下划线前缀关键字__swi用于对软中断函数SWI 的声明,它是在用户模式下通过软件进入到特权模式的唯一方法。在特权模式运行的程序可通过改变CPSR寄存器的值轻松地实现CPU的工作模式切换。同样它在执行软中断函数之前同__irq关键字一样,也要进行现场保护等操作;执行软中断函数调用后,也需要恢复现场,具体内容请参见3.3.4节的SWI 指令介绍。使用语法格式如下: __swi(软中断号)void 软中断函数名(形参表); 说明:软中断号与SWI指令后的24位立即数相对应;软中断函数可以有返回值和形参,此时遵循ATPCS规则传递参数和返回值。 * 2. 用于声明变量的关键字 也是告诉C编译器对这些变量给予特别的处理,是对ANSI C语言的扩充。 ⑴ 关键字volatile 使用关键字volatile声明的变量,告知C编译器没有必要对它进行优化操作,使用时每次都必须重新读取这个变量的值,而不是使用保存在寄存器中的备份,常用来声明访问I/O接口寄存器。 汇编语言程序代码选段: GPBCON EQU 0 ;定义I/O端口B控制寄存器地址 GPBDAT EQU 0 ;定义I/O端口B数据寄存器地址 … LDR R0, =GPBCON ;使用伪指令LDR将端口B控制寄存器地址送R0 LDR R1, =0 ;控制字送R1,设置端口B的b0为输出端口 STR R1, [R0] ;控制字写入控制寄存器 LDR R0, =GPBDAT ;使用伪指令LDR将端口B数据寄存器地址送R0 LDR R1, =0 ;置端口B的b0为1 STR R1, [R0] ;写入B端口数据寄存器 C语言程序代码段:
您可能关注的文档
- 嵌入式Linux系统应用及项目实践教学课件作者丰海第2章课件.ppt
- 嵌入式Linux系统应用及项目实践教学课件作者丰海第4章_嵌入式Linux开发基础课件.ppt
- 嵌入式Linux系统应用及项目实践教学课件作者丰海第5章_嵌入式Linux启动程序_内核_根文件系统课件.ppt
- 嵌入式Linux系统应用及项目实践教学课件作者丰海第6章_字符型驱动课件.ppt
- 嵌入式Linux系统应用及项目实践教学课件作者丰海第7章_GPIO接口控制LED灯课件.ppt
- 嵌入式Linux系统应用及项目实践教学课件作者丰海第8章_远程温度采集与曲线的生成综合实例课件.ppt
- 嵌入式Linux系统应用及项目实践教学课件作者丰海第9章_PWM控制蜂鸣器课件.ppt
- 嵌入式Linux系统应用及项目实践教学课件作者丰海第10章_基于QT的嵌入式GUI程序设计基础课件.ppt
- 嵌入式Linux系统应用及项目实践教学课件作者丰海第八章_远程温度采集与曲线的生成综合实例课件.ppt
- 嵌入式Linux系统应用及项目实践教学课件作者丰海第二章_Linux基础课件.ppt
- TCUWA 50053-2023 上向流反硝化滤池设计标准.pdf
- 保密员考试题库完整参考答案.docx
- TCSDA 0005-2024 三维桥架保温隔声复合模块建筑地面工程应用技术标准(局部修订).pdf
- TCUWA 20063-2024 城市供水企业突发事件应急预案编制技术规程.pdf
- TCUWA 20065-2024 供水管网地理信息系统建设标准.pdf
- TCUWA 40055-2023 排水管道工程自密实回填材料应用技术规程.pdf
- TCUWA 20062-2023 城镇供水厂二氧化氯应用技术标准.pdf
- TCECS 1854-2025 末端恒压智能二次加压与调蓄供水系统技术规程.pdf
- 2025年省考公务员行测常识速记必备习题试卷.docx
- 2025年公务员省考申论教育问题万能答题模板卷.docx
最近下载
- 深信服PT1超融合hcl题库.docx VIP
- 混凝土搅拌输送车岗位安全操作规程与混凝土搅拌运送汽车安全管理制度.docx VIP
- 物理知识点初二.doc VIP
- 物理知识点初二下册.docx VIP
- 燃烧学 第3版 第4章 着火理论.pptx VIP
- 18R409 管道穿墙、屋面防水套管48.pdf VIP
- 深圳市非承重墙体与饰面工程施工及验收标准SJG 14-2018.pdf
- PEMS相关模板(可用性确认计划或可用性总结性测试计划、可用性确认报告或可用性总结性测试报告).pdf VIP
- 全国中学生物理竞赛预赛(高二组)交变电流有效值计算考核试卷.doc VIP
- 国家开放大学《美学原理》形考作业5参考答案.doc VIP
原创力文档


文档评论(0)