您好,
最近在搞TDA4,能请教您个问题么~?
请问你有遇到SBL启动MCU1_0后,在MCU1_0中访问主域的地址后出现软件进入FAULT异常吗?
不使用SBL的情况下,单独跑MCU1_0是没有问题的,
Q1: SD卡启动,SBL启动MCU1_0后,在MCU1_0中进行主域CAN初始化,访问主域的地址,就会进入DATA ABORT异常,
Q2:SD卡启动,SBL启动MCU1_0后,在MCU1_0中进行MCU域的ADC初始化动作,当地址访问0x4020_0040(12.1.1.6章ADC寄存器4020 0000h)后,同样出现挂,怀疑是访问受限,但是不知道怎么进行解锁,不跑sbl的话就没有这些问题,
请问您有遇到过嘛咋解决的呀感谢
我看了你在e2e论坛上的发帖,访问寄存器地址时触发了data abort 异常,那么首先考虑该地址没有访问权限,你需要查看mcu1_0的mpu设置。
其次你可以在sbl 的 main入口处手动访问这个地址,然后在mcu1_0的main入口处手动访问这个地址,判断两种方式是否都会触发异常
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
您好,对于这个问题我可以给一些思路供您参考。首先,DATA ABORT异常一般是由非法内存访问引起的,可能是因为访问了不属于可访问互联器域的内存地址,或访问了一个未初始化的指针等原因。针对问题,可以参考以下方面进行排查:
确认访问的主域地址是否在互联器域中,可以使用U-Boot的bdinfo
命令查看互联器域的地址范围。
检查访问主域的地址是否正确,可能有一些细节需要注意,在SBL启动后的代码中,可以使用__TI_get_rproc_id()
函数来获取当前运行的远程处理器ID,以此来分别设置不同的地址。
确认访问的主域地址是否正在被主域使用,可能需要对主域程序进行调试和分析。
如果以上方法不能解决问题,您可以提供更多的代码细节和运行日志,方便问题定位和排查。
另外,需要注意的是,这里涉及到TDA4的硬件和软件结构,如果您没有足够的了解和经验,建议参考TI官方的文档和支持社区,或者咨询专业技术人员的帮助。
如果我的回答解决了您的问题,请采纳!
关于SBL启动MCU1_0后,在MCU1_0中访问主域的地址后出现软件进入FAULT异常的问题,有可能是SDK版本的问题,换一个SDK版本看看。