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
我认为 CMSIS 与 Cortex R 不兼容
我的问题已经基于 CMSIS、我提到的两个函数来自此处。
在 cortex R 中、有哪些步骤可以像上面的2个函数那样在运行时更改中断优先级?
系统控制寄存器不支持该功能。 无优先级更改。
尊敬的 Abdelrhman:
我将把这个查询路由给我们有关该主题的专家、但首先、您可以参考 器件 TRM 的第10.2.1.5节 VIM 中断优先级。
此致、
拉尔夫·雅各比
其他信息:
写入 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
是的、这正是我希望实现的结果、我将开始 研究这些寄存器并看看。
我在文档中也找不到这些寄存器。
我希望这将是一个文件问题。
感谢您的支持。
您好!
VIM 的优先级和系统中断优先级间的映射是什么?
VIM 的 优先级从2:26开始、而系统优先级从0:15开始
谢谢
尊敬的 Abdelrhman Afifi:
"什么意思? 系统中断优先级 ?
此致、
Aakash
您好 Aakash Kedia、
优先级是0到15、对吧?
但是、VIM 使用大于15的数字。
您自己的、
尊敬的 Abdelrhman:
我们认为这是一个问题。 我们已为同一商品提交内部 TT - jira.itg.ti.com/.../MCAL-12863
此致、
Aakash
您好!
是否即将发布更新的 MCAL 版本?
您自己的、
尊敬的 Abdelrhman Afifi:
计划在本周进行。
此致、
Aakash
您好 Aakash、
新的 MCAL 是否会像 SDK 那样构建 SBL?
您自己的、
目前没有使用 MCAL API 制作的 SBL、我的意思是、要从 QSPI 闪存读取、我们需要使用来自 MCAL 模块等的 FLS API。不过、目前 SBL QSPI 来自 MCU+SDK。 但是、我们已经提交了要求、MCAL 将支持其原生包中的 SBL。 我没有确切的时间表详细信息、 jira.itg.ti.com/.../MCUREQ-2786 这里是未来跟踪的 TT 编号。
谢谢。
兴植