This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM368偶发性不启动

DM368主板已经量产,但发现有各别设备会偶发性不启动(UBL不启动),特别是早晨第一次上电不启动。目前我测试的是UBL启动,UBL存储在SPI的Flash里,启动后直接到0x20地址的片内RAM,当发现UBL不能启动后,我就用仿真器将片内RAM的二进制数读出来,发现也没有错,请问各位大拿,这可能是怎么回事儿呢?需要怎么定位?谢谢。

  • 你好,

    1. 请问你们使用的ubl是否为IPNC v5.1包里面最新的代码?

    2. 请问无法启动的情况下,你们是否有测量上电的时候,SPI相关引脚是否有变化,这是想看看DM368的ROM代码是否有运行。

  • 昨天继续在测试,后期发现在地址0x00000000~0x0000001F这段区域的程序在设备可以启动和设备不可以启动时的代码有细微的差别。也就是说CPU微码从ROM拷贝到RAM中支的时时时候出错,PC指针一直在0x04和0x08两个地址来回循环,也就是说微码限入了死循环,如下图所示,有红色字体的是正确微码启动的二进制数,没有红色字体的是错误的微码,但看DM368的手册,也没有找到这段微码存放在什么地方。有大拿可以解释一下吗?谢谢

  • 谢谢您的回复,我后面的帖子回复了我最新的一些测试结果,目前来看是CPU内部微码从ROM拷贝到RAM(0x00000000~0x0000001f)里出错了,SPI中的bin文件到RAM(从地址0x00000020开始)里是没有问题的,这个我已经验证过了。

  • 你好,

    1. 请问你们使用的ubl是否为IPNC v5.1包里面最新的代码?

    回复:UBL是我们自己定制了,参考了部分TI的UBL源码。

    2. 请问无法启动的情况下,你们是否有测量上电的时候,SPI相关引脚是否有变化,这是想看看DM368的ROM代码是否有运行。

    回复:SPI内的BIN文件到RAM(0x20)是正确的,在CPU微码拷贝到0x0地址后会出错,PC指针一直在0x04地址和0x08地址之间来回循环,不能退出,请见我后面的帖子,

    感谢您的回复,还请您看看微码拷贝怎么会出错,谢谢。

  • 你好,

    UBL自己定制没有问题,但是系统初始化的步骤和顺序请严格按照http://www.deyisupport.com /question_answer/dsp_arm/davinci_digital_media_processors/f/39/t /9002.aspx帖子里面的ubl来做。

    00~0x20的区域看map文件是 "ARM_I_IVT" section。The first 32 bytes of AIM are the ARM’s system interrupt vector table (IVT) (eight vectors, 4 bytes each).

    我认为如果正常情况应该是不会运行到这部分去的。你可以连上仿真器,强制PC指针到RAM上ubl的entry point,然后再运行,看是否可以正常运行下去?如果ram里面代码正常是应该可以运行的。

    还有硬件上也可以检查一下这些有启动问题的板子的电源幅度/纹波,是否在spec范围内?