TDA4资源访问问题

您好,

最近在搞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的话就没有这些问题,

请问您有遇到过嘛咋解决的呀感谢

附上TI原问题网址:
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1207194/tda4vm-q1-when-i-run-mcu1_0-by-sbl-on-tda4-by-using-sd-card-mcu1_0-can-not-finish-adc_init

我看了你在e2e论坛上的发帖,访问寄存器地址时触发了data abort 异常,那么首先考虑该地址没有访问权限,你需要查看mcu1_0的mpu设置。
其次你可以在sbl 的 main入口处手动访问这个地址,然后在mcu1_0的main入口处手动访问这个地址,判断两种方式是否都会触发异常

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
您好,对于这个问题我可以给一些思路供您参考。首先,DATA ABORT异常一般是由非法内存访问引起的,可能是因为访问了不属于可访问互联器域的内存地址,或访问了一个未初始化的指针等原因。针对问题,可以参考以下方面进行排查:

  1. 确认访问的主域地址是否在互联器域中,可以使用U-Boot的bdinfo命令查看互联器域的地址范围。

  2. 检查访问主域的地址是否正确,可能有一些细节需要注意,在SBL启动后的代码中,可以使用__TI_get_rproc_id()函数来获取当前运行的远程处理器ID,以此来分别设置不同的地址。

  3. 确认访问的主域地址是否正在被主域使用,可能需要对主域程序进行调试和分析。

如果以上方法不能解决问题,您可以提供更多的代码细节和运行日志,方便问题定位和排查。

另外,需要注意的是,这里涉及到TDA4的硬件和软件结构,如果您没有足够的了解和经验,建议参考TI官方的文档和支持社区,或者咨询专业技术人员的帮助。
如果我的回答解决了您的问题,请采纳!

关于SBL启动MCU1_0后,在MCU1_0中访问主域的地址后出现软件进入FAULT异常的问题,有可能是SDK版本的问题,换一个SDK版本看看。