- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EXPORT IRQ_Handler AREA IRQ_Handler, CODE, READONLY SUB LR, LR, #0x4 STMFD SP!, {R0-R12, LR} MRS R4, SPSR STMFD SP!, {R4} BL IRQ_Function ;真正的中断处理过程(汇编或 C ) LDMFD SP!, {R4} ;************************ ;clean the IRQ flag ;这里可以清中断标志 MSR SPSR_cxsf, R4 LDMFD SP!, {R0-R12, PC}^ END 西安电子科技大学计算机学院 31 恢复现场 并返回 保存现场 调整返回地址 5 ARM 存储系统 ? 支持多种类型的存储器件 ? 如 FLASH 、 ROM 、 SRAM 、 SDRAM 等 ? 支持 CACHE 及 WRITE BUFFER 技术 ? 支持虚拟内存管理 ? 支持地址重映射 ? 引入存储保护机制,增强系统安全 ? 支持 I/O 内存映射 ? 通过一些特定机制保证 I/O 操作的结果正确 西安电子科技大学计算机学院 32 不同于单片机,包含 一个存储管理部件 西安电子科技大学计算机学院 33 ARM 地址空间 ? ARM 体系使用单一的平板地址空间 ? 2 32 个字节地址空间,范围 0 ~ 2 32 -1 ? 2 31 个半字地址空间,范围 0 ~ 2 31 -1 ( ARMv4 以 上支持) ? 2 30 个字地址空间,范围 0 ~ 2 30 -1 ? 注: ? ARM 的内部操作都是面向 32 位操作数的,当从 存储器调入一个字节或半字时,根据要求将其 扩展为 32 位。 嵌入式系统 第六讲 ARM 程序设计 ? ATPCS ? ARM 和 Thumb 混合使用 ? 汇编和 C 的混合编程 ? 异常中断处理 ? ARM 存储系统 西安电子科技大学计算机学院 2 西安电子科技大学计算机学院 3 1 ATPCS ? 什么是 ATPCS ? arm-thumb procedure call standard ? 为了使单独编译的 C 语言程序和汇编程序之间能 够相互调用而规定的规则 ? 规定了应用程序函数可以如何分开地写,分开 地编译,最后将它们连接在一起 ? PCS 规范强制实现如下约定: ? 调用函数如何传参数 ? 被调用函数如何获取参数,以何种方式传递函 数返回值 西安电子科技大学计算机学院 4 1.1 寄存器的使用规则 ? 子程序间通过寄存器 R0 ~ R3 来传递参数和结果。 ? 在子程序中,使用寄存器 R4 ~ R11 来保存局部变 量( Thumb 用 R4 ~ R7 )。 ? 寄存器 R12 用作子程序间 scratch 寄存器(用于保存 SP ,在函数返回时使用该寄存器出栈),记作 ip 。 ? 寄存器 R13 用作数据栈指针,记作 sp 。 ? 寄存器 R14 称为连接寄存器,记作 lr 。 ? 寄存器 R15 是程序计数器,记作 pc 。它不能用作其 他用途。 西安电子科技大学计算机学院 5 1.2 数据栈使用规则 ? ATPCS 规定数据栈为 FD 类型 ? Full Descending 满递减, ? 对数据栈的操作是 8 字节对齐的。 西安电子科技大学计算机学院 6 1.3 参数传递规则 ? 参数个数可变的子程序参数传递规则: ? 参数不超过 4 个时,使用 R0 ~ R3 来传递 ? 参数超过 4 个时,可以使用数据栈来传递 ? 参数个数固定的子程序参数传递规则 ? 第一个整数参数,通过 R0 ~ R3 来传递 ? 其他参数通过数据栈来传递 ? 有关浮点运算,需特别处理 ? 子程序结果返回规则 ? 结果为一个 32 位整数时,可以通过寄存器 R0 返回。 ? 结果为一个 64 位整数时,可以通过寄存器 R0 和 R1 返回, 依次类推。 西安电子科技大学计算机学院 7 2 ARM 和 Thumb 混合使用 ? 程序必须遵守“支持 ARM 程序和 Thumb 程 序混合使用的 ATPCS ” ? 该规则对“基本 ATPCS ”做了相应修改 ? 混合使用的优势 ?
您可能关注的文档
最近下载
- 消杀蚊虫台账记录word编辑版.doc VIP
- 2025年计算机计算机二级-MS Office高级应用与设计参考题库含答案解析.docx VIP
- 一位妈妈写给叛逆儿子的信,有孩子的必须给孩子读一遍.doc VIP
- 暖通空调系统水力平衡与解决方案.ppt VIP
- 暖通空调系统全面水力平衡解决方案(2014年第一版)-N.ppt VIP
- 海浦蒙特HD800L系列电梯专用控制器用户手册-中-V1.0.pdf VIP
- 8.1功与功率 (教学课件)-高中物理人教版(2019)必修第二册 .pptx VIP
- 资金管理复习试题附答案(一).doc
- 《归园田居(其一)》课件30张.pptx
- 腹膜后疾病影像诊断思路.pptx VIP
文档评论(0)