主要是想利用起来core0和core1:后期打算把core0主要用作通信数据传递,core1用作数据处理,虽然现在也不知道这样安排是否正确考虑是否周全,就这么做了。
第一步是在多核多镜像的例程上修改,打算将udp通信功能整合进去,无奈,第一步就卡住了整整两天。进入正题:
1、MultiCore_DualImage_Core0_SYSBIOS这个例程cfg没用到NDK,UDP,IP这些东西,于是第一步:add。紧接着问题来了。
undefined first referenced
symbol in file
--------- ----------------
NIMUDeviceTable C:\ti\ndk_2_24_03_35\packages\ti\ndk\stack\lib\stk6.ae66
error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "MultiCore_DualImage_Core0_SYSBIOS.out" not built
>> Compilation failure
2、根据错误,在库文件添加stk6.ae66以及它的路径,然后还添加了两个ae66文件:ti.drv.emac.ae66 ti.transport.ndk.nimu.ae66以及路径,又报错(每次build的error都有变化但类型基本上都是这样的)
undefined first referenced
symbol in file
--------- ----------------
Convert_CoreLocal2GlobalAddr C:/ti/pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66
Osal_exitSingleCoreCriticalSection C:/ti/pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66
emac_close C:/ti/pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66
emac_config C:/ti/pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66
emac_int_service C:/ti/pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66
emac_open C:/ti/pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66
emac_send C:/ti/pdk_c665x_2_0_1\packages\ti\transport\ndk\nimu\lib\c6657\c66\ti.transport.ndk.nimu.c6657.ae66
error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "MultiCore_DualImage_Core0_SYSBIOS.out" not built
3、根据错误提示到原来的NDK_UDP例程里面,主要是main.c文件里提示的网卡部分的函数粘贴过来,我记得Osal_打头的不再报错,开始是一些platform_get...的东西开始报错,根据经验再去NDK_UDP例程里面找其定义,在一个platform.h里面。我对比之后发现很多.h文件例程里是一样的,所有继续用的是sysbios底下的.h文件,暂时还不知道有什么隐患问题。
4、Build过程中有些error和warning慢慢改,上面的东西做好了这一步不难了。
5、总结
在移植的时候要注意把配置里的东西尽量全部照搬过去,后面再做删减,尤其是库文件头文件这一些,还有RTSC!!!
6、出现新的问题:在core0上网口通信功能正常,但串口相关的函数变量好像不是通用,目前数据给不到串口,推测跟函数以及地址分配有关系,cmd文件划分了DDR3这些,唉还要加油鸭,心累。
7、我用的是pdk_C6657_1_1_2_6,ndk_2_21_02_43,原想用ndk_2_24_03_35但是好像有些区别的,放弃了。。。