labview设置处理器内核数_嵌入式之Cortex-M3内核

本文详细介绍了Cortex-M3处理器的两种操作模式、特权级别、系统寄存器、通用功能寄存器和特殊功能寄存器。特别讨论了程序状态寄存器组、中断管理以及PendSV异常在多任务上下文切换中的应用。同时,提到了LabVIEW中设置处理器内核数的相关内容。
摘要由CSDN通过智能技术生成

c9d4d203a2aabca164fe440b7ad41511.png

[TOC]

操作模式和特权级别

两种操作模式

用以区分普通应用程序的代码和异常中断服务例程的代码

处理者模式 : Handler模式。异常服务例程所在的模式。这个模式永远是使用MSP堆栈指针。

线程模式 : 主应用程序所在的模式

两种特权分级

提供一种存储器访问的保护机制,使得普通的用户程序代码不能执行涉及到要害的操作。

特权级别 : 在特权级别下,程序可以访问所有范围的存储器,并且可以执行所有指令。

用户级别 : 一般模式

异常服务例程必须在处理者模式下,以特权级执行
主应用程序必须在线程模式下执行,但既可以使用特权级,也可以使用用户级
复位后,处理器默认进入线程模式以及特权级访问
从用户级进入特权级的唯一方法是触发异常,比如软中断。

系统寄存器

通用功能寄存器

R0-R7 : 低组寄存器。所有指令都能访问。它们的字长是32位。复位后初始值是不可预料的。

绝大数16位指令只能使用低组,部分16位指令能够访问高组。32位Thumb-2指令可以使用所有通用寄存器。
通过专用的指令来访问特殊功能寄存器

R8-R12 : 高组寄存器。他们也是32位字长。复位后初始值不可预料。

R13 : 堆栈指针,sp,双堆栈机制,有两个堆栈指针。
- 主堆栈指针,MSP,SP_main,它由OS内核、异常服务程序、所有需要特权访问的应用程序代码来使用。简单的应用程序只使用MSP就够了。 - 进程堆栈指针,PSP,SP_process,用于非异常服务程序的常规应用程序。 - 堆栈指针用于访问堆栈,执行PUSH指令和POP指令,

R14 : 连接寄存器,LR
用于在调用子程序之前,存储返回地址。

R15 : 程序计数器,PC,可读
读PC时返回的值是当前读指令的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值