本帖最后由 淅淅沥沥沥 于 2020-7-22 22:18 编辑
硬件平台是ADI的ADSP-BF703+mt46h32m16这款LPDDR,现在需要做个硬件看门狗复位自检,具体流程为: 程序启动后,先读取DDR固定地址上的值(保证该地址空间不会被代码覆盖),然后与0X03030303对比。如果相等,则看门狗复位成功,程序继续向下运行;如果不相等,说明看门狗未复位,则往改地址写0X03030303,然后等待3秒钟,此时,看门狗必然会产生复位信号,DSP发生硬件复位,重新进入boot。
该功能已经在ADSP-BF512平台上成功实现,但是在BF703平台上遇到的问题为:每次看门狗复位后,读DRAM中的值,总是会被初始化,不等于0X03030303,导致硬件看门狗自检失败。
理论上,如果不掉电,内存中的值是不会改变的,除非程序运行过程中用到了相应的地址空间,我都是往DDR最后的地址写值的,应该不会存在数据被刷掉的可能,每次复位后读出来的值感觉像是DDR被重新初始化了,请问这是什么导致的呢?
|