Other Parts Discussed in Thread: SYSBIOS
Hello,
I am trying to bring up a custom board based on the 66AK2G12. I have started with the GPIO_LedBlink_evmK2G_armTestProject, and got it working after creating a new pinmux for the board and tweaking the code to use a different pair of GPIOs for the LEDs.
My installed tools are:
CCS 10.2.0
Processor SDK RTOS K2G 6.03.00.106, including PDK K2G 1.0.16
XDCtools 3.61.02.27
SYS/BIOS 6.76.03.01
I am using a Blackhawk USB560v2 for debugging.
I am starting with the ARM core. This project is using the platform at ti.platforms.evmTCI66AK2G02. There are three issues with this platform:
1. When I view the platform using Project->RTSC Tools->Platform->Edit/View, I see that for the GPP core (presumably referring to the Cortex-A15), no internal L2SRAM is defined.
2. For both the DSP and GPP cores, the length of external DDR3 memory is set to 0x8000000 (2 GB). For my custom board, this needs to be changed to 0x20000000 (512 MB).
3. Clock speed in the platform file is set to 1000.0 MHz, but my board is running at 600 MHz.
I have tried creating a new platform, using Project->RTSC Tools->Platform->New, and saving it in a Platforms folder within the project. Here are the steps I took:
- In the Platform Editor, for Device Family I selected 'cortexa15'. For Device Name, I selected TCI66AK2G02.
- On the second screen, I clicked Import, which allowed me to import the DDR3 specs from ti.platforms.evmTCI66AK2G02 without entering them all in by hand. After importing, I changed two values: the clock speed, from 1000 to 600 MHz, and the DDR3 Length, from 0x80000000 to 0x20000000.
- I then added a row in Device Memory for L2SRAM, with a base address of 0x10800000 and a length of 0x100000. (I tried also with a base address of 0x0C000000, with the same results.)
- Then I set all of the memory sections (Code, Data, and Stack) to use DDR3, and clicked Finish.
- Finally, I changed the Project Properties->General->Products->XDCtools settings->Platform field to use the new Platform I created.
When I perform a build, I get the following linker output:
Building target: "GPIO_LedBlink_evmK2G_armTestProject3.out"
Invoking: GNU Linker
"C:/ti/ccs1011/ccs/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major-win32/bin/arm-none-eabi-gcc-7.2.1.exe" -mtune=cortex-a15 -marm -Dk2g02 -Darm0 -DUSE_BIOS -DSOC_K2G -DevmK2G -Og -g -gdwarf-3 -gstrict-dwarf -Wall -finstrument-functions -MMD -MP -mfloat-abi=hard -Wl,-Map,"GPIO_LedBlink_evmK2G_armTestProject3.map" -nostartfiles -static -Wl,--gc-sections -L"C:/ti/bios_6_76_03_01/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/hard" -Wl,--defsym,ARM_CORE=1 -Wl,--defsym,STACKSIZE=0x10000 -Wl,--defsym,HEAPSIZE=0x400 --specs=nano.specs -o"GPIO_LedBlink_evmK2G_armTestProject3.out" "./main_led_blink.o" "./Platforms/vp4/package/package_ti.platforms.evmTCI66AK2G02.o" "./board/GPIO_board.o" "./board/evmK2G.o" "./board/evmK2G_pinmux.o" "./syscfg/66AK2G1x_pinmux_data.o" -Wl,-T"../66AK2Gxx.lds" -Wl,-T"configPkg/linker.cmd" -Wl,--start-group -lrdimon -lgcc -lm -lnosys -lc -Wl,--end-group
makefile:158: recipe for target 'GPIO_LedBlink_evmK2G_armTestProject3.out' failed
./main_led_blink.o: In function `AppLoopDelay':
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:519: undefined reference to `__cyg_profile_func_enter'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:522: undefined reference to `__cyg_profile_func_exit'
./main_led_blink.o: In function `Gpio_appC7xPreInit':
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:552: undefined reference to `__cyg_profile_func_enter'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:552: undefined reference to `__cyg_profile_func_exit'
./main_led_blink.o: In function `Board_initGPIO':
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:224: undefined reference to `__cyg_profile_func_enter'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:251: undefined reference to `__cyg_profile_func_exit'
./main_led_blink.o: In function `main':
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:471: undefined reference to `__cyg_profile_func_enter'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:502: undefined reference to `ti_sysbios_BIOS_start__E'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:502: undefined reference to `__cyg_profile_func_exit'
./main_led_blink.o: In function `AppDelay':
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:511: undefined reference to `__cyg_profile_func_enter'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:512: undefined reference to `Osal_delay'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:512: undefined reference to `__cyg_profile_func_exit'
./main_led_blink.o: In function `gpio_test':
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:371: undefined reference to `__cyg_profile_func_enter'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:386: undefined reference to `GPIO_init'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:398: undefined reference to `UART_printf'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:430: undefined reference to `GPIO_write'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:433: undefined reference to `GPIO_read'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:436: undefined reference to `GPIO_write'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:439: undefined reference to `GPIO_read'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:442: undefined reference to `GPIO_write'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:445: undefined reference to `GPIO_read'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:448: undefined reference to `GPIO_write'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../main_led_blink.c:451: undefined reference to `GPIO_read'
./board/evmK2G.o: In function `CSL_BootCfgUnlockKicker':
C:/ti/pdk_k2g_1_0_16/packages/ti/csl/src/ip/bootcfg/V3/csl_bootcfgAux.h:129: undefined reference to `__cyg_profile_func_enter'
C:/ti/pdk_k2g_1_0_16/packages/ti/csl/src/ip/bootcfg/V3/csl_bootcfgAux.h:131: undefined reference to `__cyg_profile_func_exit'
./board/evmK2G.o: In function `Board_getJTAGID':
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G.c:67: undefined reference to `__cyg_profile_func_enter'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G.c:68: undefined reference to `__cyg_profile_func_exit'
./board/evmK2G.o: In function `Board_getDEVSPEED':
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G.c:78: undefined reference to `__cyg_profile_func_enter'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G.c:90: undefined reference to `__cyg_profile_func_exit'
./board/evmK2G.o: In function `Board_unlockMMR':
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G.c:55: undefined reference to `__cyg_profile_func_enter'
./board/evmK2G.o: In function `CSL_BootCfgUnlockKicker':
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G.c:55: undefined reference to `__cyg_profile_func_enter'
./board/evmK2G.o: In function `CSL_BootCfgUnlockKicker':
C:/ti/pdk_k2g_1_0_16/packages/ti/csl/src/ip/bootcfg/V3/csl_bootcfgAux.h:131: undefined reference to `__cyg_profile_func_exit'
./board/evmK2G.o: In function `Board_unlockMMR':
C:/ti/pdk_k2g_1_0_16/packages/ti/csl/src/ip/bootcfg/V3/csl_bootcfgAux.h:131: undefined reference to `__cyg_profile_func_exit'
./board/evmK2G.o: In function `Board_init':
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G.c:99: undefined reference to `__cyg_profile_func_enter'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G.c:100: undefined reference to `BOARD_initPerfCounters'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G.c:145: undefined reference to `Board_moduleClockInit'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G.c:106: undefined reference to `__cyg_profile_func_exit'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G.c:118: undefined reference to `Board_PLLInit'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G.c:114: undefined reference to `Board_PLLInit_1G'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G.c:127: undefined reference to `Board_DDR3Init'
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G.c:140: undefined reference to `Board_uartStdioInit'
./board/evmK2G_pinmux.o: In function `HW_WR_REG32_RAW':
C:/ti/pdk_k2g_1_0_16/packages/ti/csl/hw_types.h:481: undefined reference to `__cyg_profile_func_enter'
C:/ti/pdk_k2g_1_0_16/packages/ti/csl/hw_types.h:482: undefined reference to `__cyg_profile_func_exit'
./board/evmK2G_pinmux.o: In function `Board_pinmuxConfig':
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G_pinmux.c:39: undefined reference to `__cyg_profile_func_enter'
./board/evmK2G_pinmux.o: In function `HW_WR_REG32_RAW':
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G_pinmux.c:52: undefined reference to `__cyg_profile_func_enter'
./board/evmK2G_pinmux.o: In function `HW_WR_REG32_RAW':
C:/ti/pdk_k2g_1_0_16/packages/ti/csl/hw_types.h:482: undefined reference to `__cyg_profile_func_exit'
./board/evmK2G_pinmux.o: In function `Board_pinmuxConfig':
C:\Users\andy\workspace_v10\GPIO_LedBlink_evmK2G_armTestProject3\Debug/../board/evmK2G_pinmux.c:47: undefined reference to `__cyg_profile_func_exit'
C:\ti\bios_6_76_03_01\packages\gnu\targets\arm\rtsv7A\lib\boot.aa15fg(startup.oa15fg): In function `gnu_targets_arm_rtsv7A_startupC':
/db/ztree/library/trees/xdctargets/xdctargets-t09/src/gnu/targets/arm/rtsv7A/startup.c:87: undefined reference to `xdc_runtime_System_exit__E'
C:/ti/bios_6_76_03_01/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/hard\libc_nano.a(lib_a-nano-freer.o): In function `_free_r':
/db/ztree/library/trees/newlib/newlib-a00/src/linaro/gcc-arm-none-eabi-7-2017-q4-major/src/newlib/newlib/libc/stdlib/nano-mallocr.c:369: undefined reference to `__malloc_lock'
/db/ztree/library/trees/newlib/newlib-a00/src/linaro/gcc-arm-none-eabi-7-2017-q4-major/src/newlib/newlib/libc/stdlib/nano-mallocr.c:446: undefined reference to `__malloc_unlock'
C:/ti/bios_6_76_03_01/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/hard\libc_nano.a(lib_a-nano-mallocr.o): In function `_malloc_r':
/db/ztree/library/trees/newlib/newlib-a00/src/linaro/gcc-arm-none-eabi-7-2017-q4-major/src/newlib/newlib/libc/stdlib/nano-mallocr.c:267: undefined reference to `__malloc_lock'
/db/ztree/library/trees/newlib/newlib-a00/src/linaro/gcc-arm-none-eabi-7-2017-q4-major/src/newlib/newlib/libc/stdlib/nano-mallocr.c:313: undefined reference to `__malloc_unlock'
/db/ztree/library/trees/newlib/newlib-a00/src/linaro/gcc-arm-none-eabi-7-2017-q4-major/src/newlib/newlib/libc/stdlib/nano-mallocr.c:318: undefined reference to `__malloc_unlock'
collect2.exe: error: ld returned 1 exit status
gmake[1]: *** [GPIO_LedBlink_evmK2G_armTestProject3.out] Error 1
gmake: *** [all] Error 2
makefile:154: recipe for target 'all' failed
**** Build Finished ****
Please tell me how to resolve this issue.
Thank you.