ARM
文章平均质量分 50
ARM
十三香炖猪肉
当我用关爱智障的眼神看您时,您也正用关爱智障的眼神看我。
展开
-
ARMV7-M 的栈空间
通常,寄存器R4~R8(V1~V5),R10(V7)和R11(V8)被用来保持常规的局部变量。通常,寄存器R4~R8(V1~V5),R10(V7)和R11(V8)被用来存储局部变量。栈的生长方式为:向下生长(即:栈底高地址,栈顶低地址),栈顶地址存放在SP(R13)寄存器中。栈的实现方式为,向下生长,当前栈顶指针存放在SP(R13)寄存器中,通常栈空间由栈底和栈长度决定,但是应用程序不保证SP指针在它俩之间。子程序返回后,必须保证下列寄存器的值,与刚进入该函数时相同:R4~R8,R10,R11和SP。原创 2024-07-15 22:31:08 · 181 阅读 · 0 评论 -
ARMV7-M 的例外和启动流程
我个人见过的硬件设计,系统上电 全都伴随着复位,因此 ARMV7-M 上电启动后,会触发复位例外,内核也许会装模作样的现场保护(也可能做了特殊处理,装都不装一下),然后到中断向量里取得 Reset 例外的入口地址,放入程序计数器(PC),然后取指,程序就运行起来了。ARMV7-M 的例外处理流程是:如果例外无法屏蔽(非屏蔽中断)或者没有屏蔽(可屏蔽中断),例外触发后,首先进行现场保护,然后根据例外编号到中断向量里找到相应中断入口地址,放入PC寄存器。修改 VTOR的值,就可以改变中断向量的值。原创 2024-07-11 22:18:45 · 185 阅读 · 0 评论 -
ARMV7-M 的两个栈顶寄存器
在“线程模式”下,R13对应的物理寄存器,由 CONTROL.SPSEL 决定,当 CONTROL.SPSEL == 0 时,使用MSP;栈顶指针(SP),分为主要栈寄存器和进程栈寄存器。当前的栈依赖运行模式,在线程模式下由CONTROL.SPSEL 来决定,复位完成后默认使用 PSP。由于ARMV7-M复位后运行在“线程模式”下,且 CONTROL.SPSEL == 0,因此,ARMV7-M复位后R13对应的物理寄存器是 MSP。),因而此时,R13对应的物理寄存器是MSP。原创 2024-06-30 22:53:47 · 199 阅读 · 0 评论 -
ARMV7-M 的工作模式和特权等级
以上是说:线程模式(Thread mode)是ARMV7-M 的复位后的运行模式。线程模式又分为“用户等级”(直译“无特权级”,unprivileged)和“有特权级”(privileged)。线程模式下可以使用SVC指令,来触发 SVCall 例外,该例外能将运行模式改为“管理者模式”(Hander mode);由上表可以知道,只有当线程模式下且CONTROL.nPRIV == 0时,ARM内核处于“无特权级”。CONTROL.nPRIV 用来配置,线程模式下内核的特权等级。原创 2024-06-25 22:39:01 · 315 阅读 · 0 评论 -
ARMV7-M 核心寄存器的约定用法
R0~R1:函数返回时,存放函数返回值。当返回值的长度小于32位时,放在R0中,当返回值的长度超过32位不超过64位时,第32位放在R0,高32位放在R1。R9(SB、TR)、R11(FP)、R12(IP),看起来好像也有约定的用法,但是没太看懂要怎么用,如果有这方面的专家,欢迎留言指教。当C去调用一个汇编函数时,也一样,C会把参数放到R0~R3,函数返回后读取R0和R1来获取返回值。R13(SP):栈顶寄存器,指向栈顶元素的地址(此处要注意:是栈顶元素,不是栈顶元素的下一个)剩下的寄存器,没有约定用法。原创 2024-06-24 21:52:03 · 226 阅读 · 0 评论 -
ARMV7 CortexM 协处理器
ARMV7一共定义了编号0到15,共16个协处理器,分别命名为CP0到CP15。CP8到CP15为ARM保留使用;CP0到CP7为各厂家自定义。协处理器CP10和CP11用于 ARMV7-M的浮点扩展。一个支持浮点的ARMV7-M核心,应能访问CP10和CP11。所以,由于ARMV7-M 没有CP14,因此ARMV7-M 不会有CACHE,也不会有性能监控、MMC等等。的 ARMV7-M 有协处理器 CP10 和CP11。浮点 ARMV7-M 没有协处理器。原创 2024-06-23 22:13:50 · 97 阅读 · 0 评论 -
ARMV7的通用寄存器(核心寄存器、Core Register)
单就通用寄存器而言,可以分为两类:CortexA和CortexR是一类;CortexM是另一类。ARMV7 分为三类:CortexA、CortexR和CortexM。图1 CortexA和CortexR 的通用寄存器。图2 CortexM的通用寄存器。原创 2024-06-20 22:22:06 · 206 阅读 · 0 评论