×

Cortex-M0处理器的编程模型资料下载

消耗积分:3 | 格式:pdf | 大小:108.77KB | 2021-04-11

h1708587244.0670

分享资料个

本节描述Cortex-M0编程模型。除了内核的各个寄存器之外,还包含处理器操作模式和堆栈的介绍。 1、处理器工作模式 处理器工作模式有: Thrread模式 用于执行应用程序,在处理器复位时,进入Thread模式。 Handler模式 用于异常处理,处理器执行完所有异常程序后,返回到Thread模式。 2、堆栈 处理器使用满递减堆栈,也就是说栈顶指针指向最后入栈的数据。处理器的压栈操作为:栈顶指针自动递减,再存入新的数据。处理器的堆栈有主堆栈(mainstack)和进程堆栈(processstack),它们的栈顶指针相互独立,见下文介绍的堆栈指针SP。 在Thread模式中,由CONTROL寄存器来决定使用主堆栈还是进程堆栈。而在Handler模式通常使用主堆栈。处理器工作模式与栈选择之间的关系如下表1所示: 表1:处理器工作模式和堆栈选择之间的关系 3、内核寄存器组 处理器的内核寄存器如下: 表2、内核寄存器组总览 注: a、在Thread模式和Handler模式下运行程序时,为存取访问类型,调试访问模式下可以不同。 b、第24位为T-bit,从复位向量表的bit[0]处加载。 通用寄存器组 R0-R12都是32位通用寄存器,用于数据操作。 堆栈指针 R13(SP)是堆栈指针寄存器。在Thread模式下,由CONTROL寄存器的bit[1]来选择使用MSP还是PSP。 • 0=主堆栈指针MSP,复位值。 • 1=进程堆栈指针PSP。 复位时,处理器从地址0x00000000处加载MSP的值。 链接寄存器 R14(LR)是链接寄存器,当子程序调用、函数调用以及异常处理时时,由R14存储返回地址。复位时,LR的值未知。 程序计数寄存器 R15(PC)是程序计数寄存器,指向当前程序的地址。复位时,从向量表(地址:0x00000004)中加载PC的值。Bit[0]的值被加载到EPSR的T-bit中,且必须为1。 程序状态寄存器 程序状态寄存器PSR包括: • 应用程序状态寄存器APSR。 • 中断状态寄存器IPSR。 • 运行状态寄存器EPSR。 这些寄存器处于32位PSR寄存器相互独立的位域中。PSR的位分布是: 通过MRS/MSR指令,可以单独访问这3个PSR,也可以组合访问(2或3个组合)。 例如: • 在MRS指令使用PSR,读取全部寄存器的值。 • 在MSR指令使用APSR,将值写入APSR。PSR的组合及属性如下表3所示: 表3、PSR寄存器的组合 注: a、处理器忽略对寄存器IPSR相应位的写操作。 b、读取EPSR相应的位,返回0,并忽略对其写操作。 应用程序状态寄存器

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !