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.

DSP程序在直接下载和固化两种状态下运行有什么区别?

Other Parts Discussed in Thread: SYSBIOS

现在用的是6678写的多核程序,直接下载可以正常运行,但固化进去之后总是运行一会就不正常了,而且好像每次出错时间都很有规律。这可能是什么原因造成的,请帮忙解答

  • 你说的情况很难分析,你可以在程序里设置一些log看看是在什么位置出的错。

  • 我在想下载时使用默认的gel初始化。固化时我调用的paltform_init初始化。这两个初始化设置有什么不一样么?会不会有影响

  • 这两个初始化配置都应该能在EVM上正常运行,如果你不是EVM板,那么其中的配置需要做改动,如时钟输入,DDR3配置等等

  • 用仿真器加载跟固化加载还是有区别的:

    1、仿真器加载时DSP的外围电路环境一般是稳定的,固化启动时所有器件都在上电配置中,可能出现竞争冒险情况;

    2、仿真器加载一般使用Gel文件预先初始化时钟、DDR、网络等,固化启动时切忌将与初始化有关的section放入DDR中;

    3、platform中提供的网口初始化有问题,可能导致网络配置失败。

  • 感谢您的回答,那请问如果需要使用网口,platform中提供的网口初始化有问题如何修改,或者我如何在platform中不初始化网口,因为我的从核里有对网口的初始化

  • 谢谢您的回答。我现在感觉是和网口有关的从核出问题了,每跑到一定时间,感觉就不工作了,这是不是和堆栈的大小有关,还是其他什么方面。但是下载时候感觉是没有问题的。

  • 现在感觉就是和网口有关的从核出问题了。程序中有个计数输出来,每跑到80次就卡死。请问这是不是和堆栈大小有关还是其他什么原因。但直接下载的时候感觉是可以连续运行的

  • platform中提供的网口初始化只是网口serdes的初始化,你从核程序里的初始化应该是其他部分的初始化,二者都要有。你直接运行的时候是不是加了gel文件?

  • 是的,是加载了GEL文件的,请问这会有什么影响么?还有platform中提供的网口初始化有问题如何修改。我印象中试过单独固化网口核,好像是成功过的

  • platform中网口serdes初始化不稳定,有时成功有时失败。GEL文件在platform之前预先进行了初始化工作,platform中即使网口serdes初始化失败也能正常运行。但是在固化时,是没有GEL文件预先初始化的,platform中一旦网口serdes初始化失败将进入到死循环中。我是参考GEL文件中的网口serdes初始化对platform初始化进行了重写,每次固化加载都成功。你什么时候不加GEL直接运行成功时,固化也就成功了。

  • 谢谢你的回答,我当时单独调网口的时候好像固化过,但那只有一个核。现在的现象不是网口没起来,而是运行特定时间或者次数后出错,我的上位机界面收不到网口回传的数据,具体卡死在哪我还没去定位。我的platform_init初始化了     sFlags.pll  = 0;   sFlags.ddr  = 0;  sFlags.tcsl = 1;  sFlags.phy  = 1;  sFlags.ecc  = 0;   感觉PLL和DDR没有初始化,但感觉工作起来还是在1GHZ,DDR感觉也正常。请问这个应该如何配置

  • 现在发现我程序在不加载gel,只用platforminit初始化时网口核也会跑飞,出现ti.sysbios.gates.GateMutex: line 97: assertion failure: A_badContext: bad calling context. See GateMutex API doc for details.    以及xdc.runtime.Error.raise: terminating execution,请问这是什么错误?

  • 你好,现在发现的确是GEL核platform_init关于网口初始化有些差异。我用GEL时没问题。但用platform_init发送一定包之后发布出去,发现是 Qmss_queuePop不成功了,描述符好像丢失了。能不能请问一下这种现象是哪边导致的,你的platform_init怎么修改的。很急,谢谢了

  • 你好,你说的platform中提供的网口初始化有问题,可能导致网络配置失败,请问怎么修改的。我用GEL初始化没问题,用platform初始化发送一定数目后 Qmss_queuePop不成功,发布出去数据。求大神指导,很急,谢谢了!

  • GEL和platform_init中都有一个函数叫configserdes(差不多是这样子,具体名字记不清了),二者都是初始化网络的,GEL里面的没有问题,参照GEL把platform中的替换掉吧。