TI中文支持网
TI专业的中文技术问题搜集分享网站

6657 emif norflash 启动,有BIOS,NDK

你好,我跑的sysbios操作系统,在上面也有NDK,但是6657 emif norflash启动的时候,不初始化协议栈,网口,程序就可以启动;初始化协议栈,网口,程序不能启动,这是什么原因呢?

非常感谢

Shine:

这些初始化栈,网口代码在仿真器模式下能正常运行吗?

user5086941:

回复 Shine:

你好,仿真器模式下都没问题,但是emif norflash boot 就不行了,我在初始化协议栈,网口之前点了个灯,上电后,灯亮了,一运行初始化网口,协议栈就死了

user5086941:

回复 Shine:

你好,仿真器模式下都没问题,但是emif norflash boot 就不行了。

用emif norflash boot ,在初始化协议栈,网口之前点个灯,上电后,灯亮了,一运行初始化网口,协议栈就死了,最够定位到NC_Netstart(),一运行这句就死掉了,仿真器下是没有任何问题的。

谢谢解答

Shine:

回复 user5086941:

请看一下是否有把GEL文件中的初始化设置如DDR3, PLL搬到代码中。

如果使用PG1.0版本,需要注意重新配置PLL。Usage Note 9 Minimizing Main PLL Jitter Usage Notehttp://www.ti.com/lit/er/sprz381c/sprz381c.pdf

user5086941:

回复 Shine:

有的,上电后我会在代码中重新配置下的,最够跟踪到NC_NetScheduler()函数中。

当NC_NetSystem函数中的参数的优先级是低时,程序死在了NC_NetScheduler()函数开始处的TaskSetPri()中。

当NC_NetSystem函数中的参数的优先级是高时,程序死在了NC_NetScheduler()函数中信号量获取中semPend()。

这是什么原因呢?

user5086941:

回复 Shine:

你好,我用仿真器在线调试都好着。

用emif norflash启动就不行了。具体见下:

do{rc = NC_NetStart( hCfg, NetworkOpen, NetworkClose, NetworkIPAddr );} while( rc > 0 );

NC_NetStart一执行,程序就不知道跑哪去了,继续打印跟踪,

将NC_SystemOpen的参数优先级变高,当执行到NetScheduler(SerialDeviceCount,EtherDeviceCount)时,该函数有一个操作是SemPend( stkEvent.hSemEvent, SEM_FOREVER ),程序执行到这执行不下去了。

将NC_SystemOpen的参数优先级变低,当执行到NetScheduler(SerialDeviceCount,EtherDeviceCount)时,该函数开始出有一个操作是TaskSetPri(TaskSelf(),SchedulerPriority),程序执行到这执行不下去了。

赞(0)
未经允许不得转载:TI中文支持网 » 6657 emif norflash 启动,有BIOS,NDK
分享到: 更多 (0)