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.

Compiler/AM5728: ICSS_EMAC build problem

Part Number: AM5728

Tool/software: TI C/C++ Compiler

Environment Description:

RTOS version ti-processor-sdk-rtos-am57xx-evm-04.03.00.05

SDK version ti-processor-sdk-linux-am57xx-evm-04.03.00.05-Linux

The compilation environment is linux, ARM runs the linux , DSP uses RTOS, and iPC  is used between them.

Description of the problem:

code  to the ICSS_EMAC routine of the DRV in the PDK, but there is a problem compiling the link, please help!

There are two main types of link errors:

Error 1: The memory layout of the code associated with the PRU firmware, indicating that the PRU's IMEM and DMEM errors, after the .bld file for the problem, but there is still a problem;

Error 2: Add sin-cfg-related content to the .cfg file, but it will still link the error.

The specific error message is as follows:

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

The attachment contains test code, makefile, .cfg file, .bld file, etc.

robot_dsp1.rar