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.

AM5728下DSP的ICSS_EMAC进行网络收发数据,编译链接问题

Other Parts Discussed in Thread: AM5728

环境描述:

RTOS版本   ti-processor-sdk-rtos-am57xx-evm-04.03.00.05

SDK版本 ti-processor-sdk-linux-am57xx-evm-04.03.00.05-Linux

编译环境为linux, ARM端运行linux操作系统, DSP采用RTOS,之间采用IPC通讯机制。

问题描述:

根据PDK中DRV的ICSS_EMAC的例程编写收发报文代码,但是编译链接时有问题,请协助!

链接错误主要有两类:

错误一: 与PRU固件相关代码的内存布局,提示PRU的IMEM和DMEM错误, 针对问题改.bld文件后,但是还是有问题;

错误二: 在.cfg文件中加入了关于I2C、UART、PRUICSS相关的内容,但是还是会链接错误。

具体错误信息如下:

make PROFILE=release PROCLIST="" server_dsp1.x
make[1]: Entering directory '/mnt/hgfs/AM5728/GPIO/dsp1'
#
# Making bin/release/server_dsp1.xe66 ...
/opt/ti/ti-cgt-c6000_8.2.2/bin/cl6x -z -w -q -u _c_int00 -c -m bin/release/obj/server_dsp1.xe66.map -o bin/release/server_dsp1.xe66 bin/release/obj/ncx_main_dsp.oe66 bin/release/obj/ncx_tidsp_icss_emac.oe66 \
/opt/ti/pdk_am57xx_1_0_10/packages/ti/drv/icss_emac/firmware/icss_dualemac/bin/am572x/c66x/REV1/icss_dualemac_PRU0.bin /opt/ti/pdk_am57xx_1_0_10/packages/ti/drv/icss_emac/firmware/icss_dualemac/bin/am572x/c66x/REV1/icss_dualemac_PRU1.bin /opt/ti/pdk_am57xx_1_0_10/packages/ti/drv/icss_emac/firmware/icss_dualemac/bin/am572x/c66x/REV2/icss_dualemac_PRU0.bin /opt/ti/pdk_am57xx_1_0_10/packages/ti/drv/icss_emac/firmware/icss_dualemac/bin/am572x/c66x/REV2/icss_dualemac_PRU1.bin /opt/ti/pdk_am57xx_1_0_10/packages/ti/build/pruss/lnk_c66_m4_REV1.cmd /opt/ti/pdk_am57xx_1_0_10/packages/ti/build/pruss/lnk_c66_m4_REV2.cmd bin/release/configuro/linker.cmd -l /opt/ti/ti-cgt-c6000_8.2.2/lib/libc.a
<Linking>
"bin/release/configuro/linker.cmd", line 247: error: program will not fit into
available memory. run placement with alignment fails for section ".far"
size 0xa65f27 . Available memory ranges:
EXT_DATA size: 0x100000 unused: 0x9a13e max hole: 0x9a12c
"/opt/ti/pdk_am57xx_1_0_10/packages/ti/build/pruss/lnk_c66_m4_REV1.cmd", line 14: error:
program will not fit into available memory. run placement with alignment
fails for section "PRU0_REV1_DMEM" size 0x2000 . Available memory ranges:
APP_CACHED_DATA_BLK1_MEM size: 0x40026d0 unused: 0x6c4 max hole:
0x696
"/opt/ti/pdk_am57xx_1_0_10/packages/ti/build/pruss/lnk_c66_m4_REV1.cmd", line 9: error:
program will not fit into available memory. run placement with alignment
fails for section "PRU0_REV1_IMEM" size 0x2000 . Available memory ranges:
APP_CACHED_DATA_BLK1_MEM size: 0x40026d0 unused: 0x6c4 max hole:
0x696
"/opt/ti/pdk_am57xx_1_0_10/packages/ti/build/pruss/lnk_c66_m4_REV2.cmd", line 14: error:
program will not fit into available memory. run placement with alignment
fails for section "PRU0_REV2_DMEM" size 0x2000 . Available memory ranges:
APP_CACHED_DATA_BLK1_MEM size: 0x40026d0 unused: 0x6c4 max hole:
0x696
"/opt/ti/pdk_am57xx_1_0_10/packages/ti/build/pruss/lnk_c66_m4_REV2.cmd", line 9: error:
program will not fit into available memory. run placement with alignment
fails for section "PRU0_REV2_IMEM" size 0x2000 . Available memory ranges:
APP_CACHED_DATA_BLK1_MEM size: 0x40026d0 unused: 0x6c4 max hole:
0x696
"/opt/ti/pdk_am57xx_1_0_10/packages/ti/build/pruss/lnk_c66_m4_REV1.cmd", line 27: error:
program will not fit into available memory. run placement with alignment
fails for section "PRU1_REV1_DMEM" size 0x2000 . Available memory ranges:
APP_CACHED_DATA_BLK1_MEM size: 0x40026d0 unused: 0x6c4 max hole:
0x696
"/opt/ti/pdk_am57xx_1_0_10/packages/ti/build/pruss/lnk_c66_m4_REV1.cmd", line 22: error:
program will not fit into available memory. run placement with alignment
fails for section "PRU1_REV1_IMEM" size 0x2000 . Available memory ranges:
APP_CACHED_DATA_BLK1_MEM size: 0x40026d0 unused: 0x6c4 max hole:
0x696
"/opt/ti/pdk_am57xx_1_0_10/packages/ti/build/pruss/lnk_c66_m4_REV2.cmd", line 27: error:
program will not fit into available memory. run placement with alignment
fails for section "PRU1_REV2_DMEM" size 0x2000 . Available memory ranges:
APP_CACHED_DATA_BLK1_MEM size: 0x40026d0 unused: 0x6c4 max hole:
0x696
"/opt/ti/pdk_am57xx_1_0_10/packages/ti/build/pruss/lnk_c66_m4_REV2.cmd", line 22: error:
program will not fit into available memory. run placement with alignment
fails for section "PRU1_REV2_IMEM" size 0x2000 . Available memory ranges:
APP_CACHED_DATA_BLK1_MEM size: 0x40026d0 unused: 0x6c4 max hole:
0x696
"/opt/ti/pdk_am57xx_1_0_10/packages/ti/build/pruss/lnk_c66_m4_REV1.cmd", line 19: error:
program will not fit into available memory. run placement with alignment
fails for section "PRU0_REV1_EXT" size 0x1000 . Available memory ranges:
APP_CACHED_DATA_BLK1_MEM size: 0x40026d0 unused: 0x6c4 max hole:
0x696
"/opt/ti/pdk_am57xx_1_0_10/packages/ti/build/pruss/lnk_c66_m4_REV2.cmd", line 19: error:
program will not fit into available memory. run placement with alignment
fails for section "PRU0_REV2_EXT" size 0x1000 . Available memory ranges:
APP_CACHED_DATA_BLK1_MEM size: 0x40026d0 unused: 0x6c4 max hole:
0x696
"/opt/ti/pdk_am57xx_1_0_10/packages/ti/build/pruss/lnk_c66_m4_REV1.cmd", line 32: error:
program will not fit into available memory. run placement with alignment
fails for section "PRU1_REV1_EXT" size 0x1000 . Available memory ranges:
APP_CACHED_DATA_BLK1_MEM size: 0x40026d0 unused: 0x6c4 max hole:
0x696
"/opt/ti/pdk_am57xx_1_0_10/packages/ti/build/pruss/lnk_c66_m4_REV2.cmd", line 32: error:
program will not fit into available memory. run placement with alignment
fails for section "PRU1_REV2_EXT" size 0x1000 . Available memory ranges:
APP_CACHED_DATA_BLK1_MEM size: 0x40026d0 unused: 0x6c4 max hole:
0x696
warning: output section ".fardata" refers to load symbol "I2C_v1_FxnTable" and
hence cannot be compressed; compression "rle" is ignored
"bin/release/configuro/linker.cmd", line 239: error: program will not fit into
available memory. placement with alignment fails for section ".cinit" size
0x40065c8 . Available memory ranges:
EXT_DATA size: 0x100000 unused: 0x927dc max hole: 0x927d4

undefined first referenced
symbol in file
--------- ----------------
I2C_Params_init /opt/ti/pdk_am57xx_1_0_10/packages/ti/board/lib/idkAM572x/c66/release/ti.board.ae66<idkAM572x_lld_init.oe66>
I2C_close /opt/ti/pdk_am57xx_1_0_10/packages/ti/board/lib/idkAM572x/c66/release/ti.board.ae66<idkAM572x_info.oe66>
I2C_init /opt/ti/pdk_am57xx_1_0_10/packages/ti/board/lib/idkAM572x/c66/release/ti.board.ae66<idkAM572x_lld_init.oe66>
I2C_open /opt/ti/pdk_am57xx_1_0_10/packages/ti/board/lib/idkAM572x/c66/release/ti.board.ae66<idkAM572x_lld_init.oe66>
I2C_transactionInit /opt/ti/pdk_am57xx_1_0_10/packages/ti/board/lib/idkAM572x/c66/release/ti.board.ae66<idkAM572x_info.oe66>
I2C_transfer /opt/ti/pdk_am57xx_1_0_10/packages/ti/board/lib/idkAM572x/c66/release/ti.board.ae66<idkAM572x_info.oe66>
I2C_v1_FxnTable /opt/ti/pdk_am57xx_1_0_10/packages/ti/board/lib/idkAM572x/c66/release/ti.board.ae66<I2C_soc.oe66>
PRUICSS_pruIntcInit /opt/ti/pdk_am57xx_1_0_10/packages/ti/drv/icss_emac/lib/am572x/c66/release/ti.drv.icss_emac.profiling.ae66<icss_emacFwInit.oe66>
UART_stdioInit /opt/ti/pdk_am57xx_1_0_10/packages/ti/board/lib/idkAM572x/c66/release/ti.board.ae66<idkAM572x_lld_init.oe66>

error: unresolved symbols remain
error: errors encountered during linking; "bin/release/server_dsp1.xe66" not
built

>> Compilation failure
makefile:83: recipe for target 'bin/release/server_dsp1.xe66' failed
make[1]: *** [bin/release/server_dsp1.xe66] Error 1
make[1]: Leaving directory '/mnt/hgfs/AM5728/GPIO/dsp1'
makefile:79: recipe for target 'release' failed
make: *** [release] Error 2

附件中包含测试代码、makefile、.cfg文件、.bld文件等

5076.robot_dsp1.rar