您好!
在 Cortex M 中有 访问 Cortex-M 内核寄存器的函数、例如 __SET_BASEPRI_MAX 和 __SET_BASEPRI_MAX。
在 cortex R 中、访问内核 寄存器的方式是什么?
我想按照使用上述 API 完成的方式来更改优先级。
谢谢。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
在 Cortex M 中有 访问 Cortex-M 内核寄存器的函数、例如 __SET_BASEPRI_MAX 和 __SET_BASEPRI_MAX。
在 cortex R 中、访问内核 寄存器的方式是什么?
我想按照使用上述 API 完成的方式来更改优先级。
谢谢。
我想您可以尝试使用 CMSIS 库来访问内核寄存器: https://www.keil.arm.com/cmsis
其他信息:
写入 BASEPRI 寄存器可以设置任何 PRIO、写入 BASEPRI_MAX 只能提高优先级。
我需要在运行期间将优先级设置为 X、优先级小于 X 的任何中断都不会被送达。
这在某种程度上就像制作一个临界区、我保证一段代码不会被中断、除非发生了一个高于优先级设定(X)的中断、然后我再次降低了优先级。
VIM 中断优先级处理的是中断优先级本身、而不是系统中断优先级。
BASEPRI 定义了异常处理的最小优先级。 当 BASEPRI 寄存器是非零值时、它将禁止所有异常优先级比 BASEPRI 寄存器低或相等的异常。
谢谢。
您自己的
尊敬的 Abdelrhman Afifi:
是的、我们正在对此进行研究、我们将就此与您联系。
此致、
Aakash
您能否确认您需要一个中断屏蔽功能、在该功能中屏蔽低于特定优先级的中断、并且您想要动态执行该功能。 你希望实现代码的关键部分、在这里、你针对代码区域禁用低于特定优先级的中断、然后在代码区域的末尾恢复中断屏蔽。
如果这确实是您的要求、那么 AM64x/AM243x 中存在以下寄存器
位 | 字段 | 类型 | 复位 | 说明 |
31:16 | 保留 | R/O | 0 | o 始终读为0。 写入无影响。 |
15:0 | MSK | R/w | 0xFFFF | 本域是一个位向量、用于使能给定优先级的所有 IRQ 中断。 位0对应于优先级= 0 (最高)位1对应于优先级= 1、等等…。 0–禁用此优先级的 IRQ 1–启用此优先级的 IRQ |
位 | 字段 | 类型 | 复位 | 说明 |
31:16 | 保留 | R/O | 0 | o 始终读为0。 写入无影响。 |
15:0 | MSK | R/w | 0xFFFF | 本域是使能指定优先级的所有 FIQ 中断的位向量。 位0对应于优先级= 0 (最高)位1对应于优先级= 1、等等…。 0–禁用此优先级的 FIQ 1–启用此优先级的 FIQ |
该寄存器是一个 IRQ 屏蔽寄存器、将禁用低于指定优先级的中断。 我在 AM263x 文档中找不到此寄存器。 不确定这是未在文档中找到、还是寄存器不存在。
Prasad Jondhale 是否未在 AM263x 中启用此功能或此功能是否存在文档问题、请向 SoC 集成团队咨询。 AM263x 应该具有该功能。
如果 AM263x 中不存在此寄存器、则实现关键部分的唯一选项是禁用 IRQ
尊敬的 Abdelrhman Afifi:
"什么意思? 系统中断优先级 ?
此致、
Aakash
尊敬的 Abdelrhman Afifi:
计划在本周进行。
此致、
Aakash
目前没有使用 MCAL API 制作的 SBL、我的意思是、要从 QSPI 闪存读取、我们需要使用来自 MCAL 模块等的 FLS API。不过、目前 SBL QSPI 来自 MCU+SDK。 但是、我们已经提交了要求、MCAL 将支持其原生包中的 SBL。 我没有确切的时间表详细信息、 jira.itg.ti.com/.../MCUREQ-2786 这里是未来跟踪的 TT 编号。
谢谢。
兴植