Other Parts Discussed in Thread: AM6548
I am trying to run FreeRTOS which comes with the pdk_am65xx_08_02_00_21 on the R5F processor of the AM6548 on the TMDX654IKEVM board.
I can build the application, however it will not load on the R5 and run into an issue. I figured this is because of the plenty of linker warnings I get.
The linker warnings look like this:
#99922 C:/ti/pdk_am65xx_08_02_00_21/packages/ti/osal/lib/freertos/am65xx/r5f/release/ti.osal.aer5f<Arch_util.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta)
This is not only with this library, but with many other libraries. This is the full error message:
warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/kernel/lib/am65xx/mcu1_0/release/ti.kernel.freertos.aer5f<tasks.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/kernel/lib/am65xx/mcu1_0/release/ti.kernel.freertos.aer5f<timers.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/kernel/lib/am65xx/mcu1_0/release/ti.kernel.freertos.aer5f<queue.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/osal/lib/freertos/am65xx/r5f/release/ti.osal.aer5f<HwiP_freertos.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/osal/lib/freertos/am65xx/r5f/release/ti.osal.aer5f<Arch_util.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/osal/lib/freertos/am65xx/r5f/release/ti.osal.aer5f<TimerP_nonos.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/osal/lib/freertos/am65xx/r5f/release/ti.osal.aer5f<RegisterIntr_nonos.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/osal/lib/freertos/am65xx/r5f/release/ti.osal.aer5f<TaskP_freertos.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #16032-D: object files have incompatible wchar_t types ("printf.c.obj in C:\ti\ccs1200\ccs\tools\compiler\ti-cgt-arm_20.2.7.LTS\lib\rtsv7R4_A_le_v3D16_eabi.lib" = --wchar_t=16, "./hello.obj" = --wchar_t=32) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/board/lib/am65xx_idk/r5f/release/ti.board.aer5f<board_pll.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/board/lib/am65xx_idk/r5f/release/ti.board.aer5f<board_lld_init.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/board/lib/am65xx_idk/r5f/release/ti.board.aer5f<board_ethernet_config.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/board/lib/am65xx_idk/r5f/release/ti.board.aer5f<board_clock.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/csl/lib/am65xx/r5f/release/ti.csl.aer5f<interrupt.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/csl/lib/am65xx/r5f/release/ti.csl.aer5f<timer.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/csl/lib/am65xx/r5f/release/ti.csl.aer5f<csl_serdes3.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/csl/lib/am65xx/r5f/release/ti.csl.aer5f<csl_serdes3_ethernet.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/csl/lib/am65xx/r5f/release/ti.csl.aer5f<csl_serdes3_pcie.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/drv/uart/lib/am65xx/r5f/release/ti.drv.uart.aer5f<UART_v1.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/osal/lib/freertos/am65xx/r5f/release/ti.osal.aer5f<SemaphoreP_freertos.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/drv/sciclient/lib/am65xx/mcu1_0/release/sciclient.aer5f<sciclient.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/drv/sciclient/lib/am65xx/mcu1_0/release/sciclient.aer5f<sciclient_indirect.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/drv/sciclient/lib/am65xx/mcu1_0/release/sciclient.aer5f<sciclient_secureproxy.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/csl/lib/am65xx/r5f/release/ti.csl.aer5f<csl_sec_proxy.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta) warning #99922: C:/ti/pdk_am65xx_08_02_00_21/packages/ti/csl/lib/am65xx/r5f/release/ti.csl.aer5f<uart.oer5f>: Invalid meta-info kind encountered in symbol metadata section (.symtab_meta)
This is the full source code of my file:
#include "board/board.h" #include "FreeRTOSConfig.h" #include "FreeRTOS.h" #include "task.h" #include <FREERTOS_log.h> #define MAIN_TASK_PRI (configMAX_PRIORITIES-1) #define MAIN_TASK_SIZE ((32 * 1024U)/sizeof(configSTACK_DEPTH_TYPE)) StackType_t gMainTaskStack[MAIN_TASK_SIZE] __attribute__((aligned(32))); StaticTask_t gMainTaskObj; TaskHandle_t gMainTask; void freertos_main(void *args) { printf("Ran into freertos_main\n"); vTaskDelete(NULL); } int main() { Board_initCfg boardCfg; Board_STATUS status; boardCfg = BOARD_INIT_PINMUX_CONFIG | BOARD_INIT_UART_STDIO; status = Board_init(boardCfg); DebugP_assert(status == BOARD_SOK); /* This task is created at highest priority, it should create more tasks and then delete itself */ gMainTask = xTaskCreateStatic( freertos_main, /* Pointer to the function that implements the task. */ "freertos_main", /* Text name for the task. This is to facilitate debugging only. */ MAIN_TASK_SIZE, /* Stack depth in units of StackType_t typically uint32_t on 32b CPUs */ NULL, /* We are not using the task parameter. */ MAIN_TASK_PRI, /* task priority, 0 is lowest priority, configMAX_PRIORITIES-1 is highest */ gMainTaskStack, /* pointer to stack base */ &gMainTaskObj ); /* pointer to statically allocated task object memory */ configASSERT(gMainTask != NULL); /* Start the scheduler to start the tasks executing. */ vTaskStartScheduler(); /* The following line should never be reached because vTaskStartScheduler() will only return if there was not enough FreeRTOS heap memory available to create the Idle and (if configured) Timer tasks. Heap management, and techniques for trapping heap exhaustion, are described in the book text. */ DebugP_assert(0); return 0; }
I used the linker file which came with the PDK (<pdk-install-path>\packages\ti\build\am65xx\linker_r5_freertos.lds).
The tutorials on how to run everything and especially the RTOS did not work, because the driver need to be built by some weird XDC tools or something. That won't work because of reasons I don't know, and thus I try to make a barebone minimal FreeRTOS example.
In general I would also like to complain that the support for this product (AM6548, PDK) is very bad and it seems to be in a semi-stable, not fully functional state when downloading. Many tutorials fail to deliver basic information and it is in general a pain to navigate through everything. Also, I was often referred to the AM64xx, which is not even available yet (pre production!?!) and also is not automotive certified, which my processor needs to be. I am very dissappointed in TI products and would probably not use them again, if I wouldn't be stuck with them in this project. Also, there is no info on the error #99922 at all. In general, the documentation lacks a lot.
Anyways, I hope I can get a bit help here. Thank you very much in advance.