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:
你好,我已修改了提问,麻烦看一下问题该如何解决