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.

SYSBIOS 在F28M35H52C1上电运行,C28核启动后进入不了MAIN。求助!!!!

Other Parts Discussed in Thread: SYSBIOS

SYSBIOS 在F28M35H52C1上电运行,M3核运行没问题,通过IPC命令启动C28,C28核启动后进入不了MAIN。

挂仿真器调试,联接M3和C28。

1、C28核心RESET、RESTART可以调试正常运行

2、C28核RESET、RESUME、SUSPEND,在Disassembly中观察,停在IDLE,正常。RESUME。

3、M3发送IPC命令,C28正常进入0x13fff0,但继续运行无法进入MAIN();

应该是SYSBIOS初始化部分出问题了。

不知道哪里有可以上电运行的C28核的SYSBIOS程序例子啊,官网上也找不到,相关资料也没有提到这个。

菜鸟跪求!!!先谢了

  • 有人在用这套东东的话,可以电话或QQ联系我,互相交流一下。0579-82030009,QQ:27508088

  • drunk,

    我没有用过SYSBIOS,但是我们从底层来分析的话,既然C28能找到入口地址,但是却没法运行到main, 那只能说是在入口到main之间这一段代码出现问题。那么在入口到main之间有什么代码呢?

    首先是在0x13fff0这里要放一条跳转指令,不用操作系统的时候,使用的是F28M35x_CodeStartBranch.asm源代码中的

    ***********************************************************************

        .ref _c_int00     .global code_start

    *********************************************************************** *Function : codestart section * *Description : Branch to code starting point ***********************************************************************

        .sect "codestart"

    code_start:     LB _c_int00         ; Branch to start of boot.asm in RTS library                         ; end codestart section

    其次是_c_int00程序,这个程序是在实时运行库rts2800_ml.lib中的,进行C环境变量初始化,然后再跳转到main中。

    基于这两点,我认为你可以检查一下你的SYSBIOS有没做到这两点。

    Eric

  • 谢谢你的回复。

    我用没BIOS的也没问题的。

    用BIOS也进入_c_int00了,调用了BIOS的系统初始化部分,但是调用函数太多,一路汇编跟踪到出错为止,是函数调地址到TRIP0的地方去了。

    怪就怪在下好程序后,用RESET,RESTART也是进入_c_int00,可以进入MAIN,但是用RESET,RESUME,再用M3启动,同样是进入_c_int00,运行结果却是不对的,而且还导致再次RESET,RESTART也一样出错了。用DEBUG和RELEASE都一样。

    不知有没有TI的技术支持能帮忙解决一下

  • 死这里的,CFG配置里没加STARTUP,可是还是会进入这里的

  • 请问您运行的是哪一个示例?

    如果是双核运行,必须先启动并运行cm3核,再运行C28核,复位也要先复位Cm3,再复位C28X。

  • 搞定了,真是不好意思了。所有设置都没有问题,是我的CMD文件里面把HWI的设置到了RAM,而初始化时程序并没有从FLASH复制到RAM中,导至出错。

    经验就是:SYSBIOS双核调试时,C28不能太相信RESTART,因为调试时RESTART运行正确的,并不一定是正确的。还是利用M3启动C28比较可靠。利用RESTART时调试软件做了一些我们不知道的工作。所以两种方式都进入CINIT00,结果却是不一样的。

    有说的不对的,还请多多指教!