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.

TMS320C6678: 6678 多核问题咨询

Part Number: TMS320C6678
Other Parts Discussed in Thread: SYSBIOS

在6678上运行sysbios出现异常问题:

首先创建一个基本的RTSC工程,将工程平台设置为:

 

将其中的cfg文件配置为:

BIOS.heapSize = 0x8000;

var Task = xdc.useModule('ti.sysbios.knl.Task');

var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');

var tsk0 = Task.create('&tsk0_func');

tsk0.instance.name = "tsk0";

tsk0.stackSize = 0x8000;

在程序的main函数中调用:BIOS_start();

此时如果是单核运行程序,则不会出现任何问题,如果用3个核运行程序,相当于每个核都在main函数中调用BIOS_start()启动一个tsk0,则有时会有一个核运行崩溃,提示“E_stackOverflow”错误;将堆栈扩大设置为tsk0.stackSize = 0x10000,不能解决问题;将heap扩大,BIOS.heapSize = 0x10000也不能解决问题。而就机理分析,因为把heap和stack都放在了L2SRAM,而各核L2SRAM都是独立的,所以应该单核和多核运行没有区别才对,出错原因不明确。

 

问题2:

在程序中调用Hwi_create创建一个硬中断;同样也遇到上述问题类似情况,如果多核都调用了Hwi_create则会有一个核运行崩溃,提示“E_stackOverflow”错误;此时将heap扩大,BIOS.heapSize = 0x10000,可以暂时解决问题,运行似乎正常了。但如上所述因为把heap和放在了L2SRAM,而各核L2SRAM都是独立的,所以应该单核和多核运行没有区别才对,出错原因不明确。于此同时还存在另一个问题,可能跟运行时序有关,有时一个核仍然会在调用Hwi_create时偶尔崩溃,但并不是提示stackOverflow错误而是类似于地址访问异常错误:“A_align:Request align is not a power of 2” 出错原因不明确。

 

望解答以上两个问题,非常感谢!!