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

C6678 CCS5.5,原有工程添加RTOS后,添加TASK编译错误

0、使用simulator,原工程为单核运行裸跑在6678上,计划改成加载RTOS,8核并行;

1、已经根据实际情况自行添加了Repository;

2、添加CFG文件并启用TASK后能够编译通过;

3、TASK中添加Instance  task0,并在main函数前添加:

Void task0fun(UArg a0, UArg a1)
{
System_printf("enter taskFxn()\n");

BIOS_exit(0);
}

编译报错,报错信息如下:

errors encountered during linking; "kakadu_merge.out" not built kakadu_merge C/C++ Problem
unresolved symbol task0fun, first referenced in D:\workspace_v5_5\kakadu_merge\Debug\configPkg\package\cfg\kakadu_merge_pe66.oe66 kakadu_merge C/C++ Problem

unresolved symbols remain kakadu_merge C/C++ Problem

Concole处警告如下:

warning: output section ".fardata" refers to load symbol "task0fun" and hence
cannot be compressed; compression "rle" is ignored

undefined first referenced 
symbol in file 
——— —————- 
task0fun C:\workspace_v5_5\kakadu_merge\Debug\configPkg\package\cfg\kakadu_merge_pe66.oe66

error: unresolved symbols remain
error: errors encountered during linking; "kakadu_merge.out" not built

4、自己新建一个RTOS的Typical工程,于TASK中添加Instance  task0,并在main函数前添加以上task0fun能够正常运行。

5、原本的工程加载BIOS后,运行到main的return 0;前会报错:

ti.sysbios.heaps.HeapMem: line 345: assertion failure: A_invalidFree: Invalid free
xdc.runtime.Error.raise: terminating execution

没有BIOS时不会报错,

6、原本自定的CMD里手动指定了输入数据,输出数据,code/data的memory设置,生成的.out文件加载到8核上会冲突,产生assertion的错误。采用的解决方法是修改cmd里的memory设置错开使用的内存地址,然后生成8个.out文件加载到8核上。请问如何修改只用生成一个.out文件。加载BIOS后又该如何操作?

Allen35065:

基于BIOS的工程要基于BIOS的模板才行。

GuoFei Tang:

回复 Allen35065:

你好,我已修改了提问,麻烦看一下问题该如何解决

赞(0)
未经允许不得转载:TI中文支持网 » C6678 CCS5.5,原有工程添加RTOS后,添加TASK编译错误
分享到: 更多 (0)