主题中讨论的其他器件:AM3354
工具/软件:TI-RTOS
你(们)好。
我使用的是 AM3354开发板(Variscite AM3354 +评估套件)、
Windows 10 64位、CCS v7.3、PDK-RTOS-AM335x-4.2.0.9、NDK-2.26.0、XDS100-v3 JTAG
当我使用示例文件时、CCS 显示寄存器值。 (已在内存浏览器中检查)
基本示例(基准测试或其他)代码已确认其正常工作。
(实际上 NIMU 示例不能完美工作、但谈判是可以的。
但是、当使用实际寄存器访问代码执行时、该位置会发生错误。
示例)
示例中的电路板初始化代码 Board_init (boardCfg); 此部件工作正常。
但是、在我的代码中、
enableModule (SOC_CM_RTC_reg、CM_RTC_RTC_CLKCTRL、
CM_RTC_CLKSTCTRL、
CM_RTC_CLKSTCTRL_CLKACTIVITY_L4_RTC_GCLK);
enableModule (SOC_CM_RTC_reg、CM_RTC_RTC_CLKCTRL、
CM_RTC_CLKSTCTRL、
CM_RTC_CLKSTCTRL_CLKACTIVITY_RTC_32KCLK);
这些调用下一个函数
void enableModule (uint32_t domainOffset、uint32_t clkCtrlReg、uint32_t clkStCtrlReg、uint32_t clkActMask)
{
/*启用模块*/
//HW_WR_REG32 (domainOffset + clkCtrlReg、PRCM_MODULEMODE_ENABLE);
*(volatile uint32_t *)(domainOffset + clkCtrlReg)= PRCM_MODULEMODE_ENABLE;<- CortxA8:发生未处理的 ADP_Stopped 异常0x20023!!
/*检查模块启用状态*/
while (PRCM_MODULEMODE_ENABLE!=
(HW_RD_REG32 (domainOffset + clkCtrlReg)& PRCM_MODULEMODE_MASK);
/*检查时钟活动-已取消*/
while (clkActMask!=(hw_RD_REG32 (domainOffset + clkStCtrlReg)& clkActMask));
/*检查空闲状态值-应该处于功能状态*/
while (((PRCM_MODULE_IDLEST_FUNC << PRCM_IDLE_ST_SHIFT)!=
(HW_RD_REG32 (domainOffset + clkCtrlReg)& PRCM_IDLE_ST_MASK);
}
我不知道为什么在运行与示例相同的过程时会发生错误。