我猜Cortex-M33内核实际上并未记录在 MCX-A346 的参考手册中,因为我们可以参考 ARM 相应的技术参考手册。有道理。但是,我的程序获得控制权时遇到的内核状态(地址为0x4的初始PC值)与Arm手册中定义的 RESET 状态不同。假设核心硬件是根据规格实现的,我想是启动ROM代码留下了不合格状态 [1]。
这种初始核心状态是否有文件记录,如果有,在哪里记录?谢谢。
[1] 示例:
1) PRIMASK = 1
2) FPU 已启用,但更糟的是,CONTROL.FPCA = 1,即表示在我的代码运行之前使用了 FPU 指令。现在,线程模式下的每个异常都会受到该标记的影响,导致扩展堆栈框架包括 FPU 寄存器,即使我的代码没有使用任何 FPU 指令,这也会浪费堆栈内存(由于采用了懒堆栈,运行时开销很小)。
当然,这两个问题都可以在我的初始化代码中解决。如果能将这一情况以及我尚未"发现的其他此类情况记录在案," ,那将会很有帮助。
你好 Harry,我的意思是内核的状态与 ARM 手册中记录的不同,所以我希望恩智浦能提供相应的文档。你想向启动 ROM团队确认我描述的两个案例。
但不管怎样,我现在只要发现不一致就会在我的早期启动代码中将 MCU RESET 为 Arm 记录的状态。谢谢。
你好@ygrayne
我不确定这是否就是您要找的内容,请查看所附文件中的 B1.6 章或以下链接。
在 MCXA 参考手册中,我们有带有用户图像标题的表 112,其中也可能包含有用的信息。
关于电脑,如果你正在查看地址 0x4,这是初始程序计数器,RESET 后将始终加载到核心 PC 寄存器中,这个值会因 MCU 和其他一些变量而有所不同。
希望能对您有所帮助。
BR
哈利
你好@ygrayne
关于引导程序是否改变了 PRIMASK 和 CONTROL.FPCA 的状态,
,我需要与 ROM 团队确认。
BR
哈利