- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM7支持六种操作模式:
用户模式(usr):正常的程序执行状态
FIQ模式(fiq): 支持数据传送或通道处理
IRQ模式(irq): 用于通用的中断处理
管理模式(svc):用于操作系统的保护模式
异常模式(abt):数据或者指令预取异常时进入
无定义模式(und):当无定义指令被执行时进入
(7)
软件控制,外部中断,异常处理都可以改变操作模式。大部分的应用程序在用户模式下执行。 其他模式,比如管理模式,在中断、异常服务、或者访问被保护资源时进入。
ARM 的中央寄存器集是16 个用户寄存器R0 – R15。这些寄存器均是32 位宽度,R0 – R12 没有其他特殊功能,寄存器R13 – R15在CPU中有特殊功能。R13被用作栈指针(stack pointer,
SP)。R14被称为链接寄存器(link register, LR),当调用一个函数时返回地址被自动保 存到链接
寄存器,在函数返回时有效。这使得快速进入和返回“叶”函数(不调用其他函数的函数) 成为可
能。如果函数是分支的一部分(即该函数将调用另一个函数),链接寄存器必须入栈(R13)。 R15 是程序计数器(program counter, PC)。有趣的是,许多指令也可以在R13 – R15中 执行,
就像它们是标准的用户寄存器。
ARM 中断的问题
ARM 的七种异常类型
---------
1> 复位异常
2> 数据访问中止异常
3> 快速中断请求异常
4> 一般中断请求
5> 预取指令异常
6> 软件中断异常
7> 未定义异常
------------------------- 问题:
1> 为什么除了进入复位异常模式外,在别的异常处理模式中都允许FIQ 中断?
2> 数据访问中止异常的优先级大于FIQ 异常,为什么在数据访问异常处理模式中,还允许 FIQ 中断?这 样不就成了:在高优先级异常处理中允许低优先级的中断发生?
即使这样,因为FIQ 中断的优先级< 数据异常中断优先级,也不会进入FIQ 中断处理程序啊,这样不 就更没有用处了??;ARM 体系的各种异常的分析(学习日记)- [ARM7TDMI];3;系统调用的具体过程还是看有关uc/os-II 等操作系统书,那里比较详细。
SWI 处理程序通过执行下面的指令返回:
MOVS PC,R14_svc
具体为什么偏移量为 0,我???在也还没有搞懂,请看到的大虾多多指点,留个言,谢谢了!!!
经高手指点后明白了原来这么多异常的返回地址问题只要一句话:除了数据中止以外,所有异常发生 时R14 保存的值都是跳转时的 PC-4,只是软件原因引起的异常时执行时(PC 为该指令地址+8)就发生异常 跳转了,而硬件引起的异常为了保证程序安全必须等到当前指令完成后(执行目标已经指向下一个指令,即 PC 为该指令地址+12)才会发生跳转。;;;;8;9;异常向量初始化 内存环境初始化
其他硬件环境初始化
描述文件
要编写描述文件,必须知道 ARM Image 文件的组成及 ARM Image 文件执行的机 理。
ARM Image 的结构
一个 ARM Image structure 由 linker 在以下几个方面定义: 组成它的 regions 和 output sections
当 Image 下载的时候这些 regions 和 sections 在内存中的位置 当 Image 执行时这些 regions 和 sections 在内存中的位置
ARM Image 的组成
一个 ARM Image 被保存在可执行文件当中,它的层次结构可以包括 Image,regions, output sections 和 input sections 。
一个 Image 由一个或多个 regions 组成,每个 region 包括一个或多个 output se
ctions
每个 output section 由一个或多个 input sections 组成
Input sections 是一个 object file 中的 code 和 data 信息。
Image 的结构如下图:;同时 Input section 有几种属性,分别为 readonly,read-write,zero-initialized。 分别称为 RO,RW 和 ZI。属性来源于 AREA 后的 attr 属性。
比 如 CODE 是 RO,DATA 是 RW,NOINT 默认为 ZI,即用 0 值初始化,但是可以选择 不进行 0 值初始化。ZI 属性仅仅来源于 SPACE, DCB, DCD, DCDU, DCQ, DCQ
U, DCW, 或者 DCWU。由以上定义,ZI 属性的包含于 RW 属
文档评论(0)