单片机/MCU论坛
直播中

手托初梦

9年用户 890经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[问答]

在TC377三板上重置应用程序后SMU_AG6/7中出现意外值的原因?

在 Aurix TC377 triboard 上,我使用以下代码进行重启(应用程序重置),之后我在第一个代码行停下来,然后检查 SMU_AGX 寄存器。 但是 SMU_AG6/7 得到了意想不到的值:请查看下面的快照进行比较。
有理由认为 SMU_AG6/7 的值不符合预期吗?

重启代码

206      /* Get the CPU EndInit password */207      uint16_t CPUEndinitPw = IfxScuWdt_getCpuWatchdogPassword();208209      /* Configure the request trigger in the Reset Configuration Register */210      IfxScuRcu_configureResetRequestTrigger(IfxScuRcu_Trigger_sw, IfxScuRcu_ResetType_application);211212      /* Clear CPU EndInit protection to write in the SWRSTCON register of SCU */213      IfxScuWdt_clearCpuEndinit(CPUEndinitPw);214215      /* Trigger a software reset based on the configuration of RSTCON register */216      IfxCpu_triggerSwReset();


寄存器比较:左边是安全手册中的预期值。 右边是我的 TC377 三脚板上的实际值:

来自 memtool 的 UCB_DFLASH 配置


回帖(1)

秋风宜人

2024-1-23 11:32:18
SMU_AG6/7 寄存器的意外值可能有以下几个可能的原因:

1. 软件配置问题:可能在重置应用程序之前或之后,软件配置了 SMU_AG6/7 寄存器的某些值,导致不符合预期的结果。

2. 硬件问题:可能存在硬件故障或连接错误,导致 SMU_AG6/7 寄存器无法正确读取或写入。

3. 中断或异常处理问题:在重置应用程序期间,可能发生了中断或异常处理事件,导致 SMU_AG6/7 寄存器的值被修改。

为了确定具体原因,可以进一步进行以下步骤:

1. 确保在重置应用程序之前和之后,没有其他代码修改了 SMU_AG6/7 寄存器的配置。

2. 检查硬件连接是否正确,并确保没有任何硬件故障。

3. 调试代码中可能与中断或异常处理有关的部分,以确定是否有任何影响 SMU_AG6/7 寄存器的事件发生。

4. 当 SMU_AG6/7 寄存器的值不符合预期时,比较其与预期值的差异,并根据差异分析可能的原因。

如果以上步骤都没有解决问题,可能需要进一步深入调查硬件和软件设置,或联系相关技术支持人员来解决问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分