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.

AM6442: Build error with Sample code

Part Number: AM6442
Other Parts Discussed in Thread: SYSCONFIG

Hi,

My cusstomer successfully implemented and verified the sample application (hello_world_am64x-EVM_r5fss0-0_freertos_TI-arm-clang) on the R5F of AM6442. In order to run the implemented application from A53 (OS: Linux), he is trying to implement it according to the following URL, 
https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__AeMVTHckwFDmFoNkRHpRPw__AM64-ACADEMY__WI1KRXP__LATEST

But it's not going well with following errors. What is wrong? How should customer fix?

The Syscinfig setting;

Best Regards

M.Konishi

  • Hi Konishi-san,

    Have you followed the instructions provided in the MCU+SDK Documention under Getting Started to Build and Flash the Hello world example:

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/09_01_00_41/exports/docs/api_guide_am64x/index.html

    Best Regards,

    Suren

  • Hi Suren,

    No, customer is following TI Academy. Can you check the error with following;

    https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__AeMVTHckwFDmFoNkRHpRPw__AM64-ACADEMY__WI1KRXP__LATEST

    Best Regards

    M.Konishi

  • Hi Konishi-san,

    Routed your query to our expert. Expect a response soon.

    Best Regards,

    Suren

  • Hello Konishi-san,

    Let's run a test. Can you get the customer to disable IPC with the other R5F cores and the M4F core, so that Linux RPMsg is the only IPC that is enabled? After they do that, does the example build?

    I.e., set all of these entries to "ALL IPC DISABLED"

    It sounds like there was some behavior that changed going from SDK 9.0 to SDK 9.1. Based on your customer's tests, I may need to update the academy page.

    Thanks for your assistance,

    Nick

  • Hi Nick,

    Customer already try to disable IPC. 

    Could you update exact instructions in academy page?

    Customer is asking another issue with academy's instructions in "Update the linker.cmd file".

    They can't find the linker command file "examples/hello_world/am64x-sk/r5fss0-0_freertos/ti-arm-clang/linker.cmd".

    Best Regards

    M.Konishi

  • Hi Konishi-san,

    Nick is Out of Office today and will respond later this week.

  • Hello Konishi-san,

    Did disabling all the other IPC entries allow the customer to successfully build the example, or not?

    For AM64x & AM24x (but NOT for AM62x, AM62Ax, AM62Px) in SDK 9.1, it looks like the SDK team moved the memory region definitions from the linker.cmd file into the example.sysconfig file. The memory regions should be visible in the text file, or within the SysConfig GUI, memory configuration tool.

    Please use the examples/drivers/ipc/ipc_rpmsg_echo_linux project as a template for what the settings should look like.

    Regards,

    Nick

  • Hi Nick,

    No, they can't successfully build the example.

    Did you build successfully?

    If so could you send me the project file?

    Best Regards

    M.Konishi

  • Hello Konishi-san,

    Yes, I successfully built the example by making the change that I requested the customer to make in my response here:
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1320475/am6442-build-error-with-sample-code/5024151#5024151

    The test and the output 

    I ran this test with the examples/drivers/ipc/ipc_rpmsg_echo_linux example.

    Here's the output before making any changes:

    :~/rtos-sdks/am64x/mcu_plus_sdk_am64x_09_01_00_41$ make -s -C examples/drivers/ipc/ipc_rpmsg_echo_linux/am64x-evm/r5fss0-0_freertos/ti-arm-clang/
    Generating SysConfig files ...                                                                                                                                               Running script...
    ...
    Compiling: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: ../../../ipc_rpmsg_echo.c
    Compiling: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: ../main.c
    Compiling: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_drivers_config.c
    generated/ti_drivers_config.c:193:88: error: expected expression
            rpmsgParams.vringTxBaseAddr[CSL_CORE_ID_R5FSS0_1] = (uintptr_t)(&gIpcSharedMem[]);
                                                                                           ^
    generated/ti_drivers_config.c:194:88: error: expected expression
            rpmsgParams.vringTxBaseAddr[CSL_CORE_ID_R5FSS1_0] = (uintptr_t)(&gIpcSharedMem[]);
                                                                                           ^
    generated/ti_drivers_config.c:195:88: error: expected expression
            rpmsgParams.vringTxBaseAddr[CSL_CORE_ID_R5FSS1_1] = (uintptr_t)(&gIpcSharedMem[]);
                                                                                           ^
    generated/ti_drivers_config.c:196:88: error: expected expression
            rpmsgParams.vringTxBaseAddr[CSL_CORE_ID_M4FSS0_0] = (uintptr_t)(&gIpcSharedMem[]);                                                                                                                                                                          ^
    4 errors generated.
    make: *** [makefile:159: ti_drivers_config.obj] Error 1        

    Then I set every entry in the red box of my previous response to "ALL IPC DISABLED" for the r5fss0-0_freertos project. Don't forget to go FILE > Save to actually save the changes.

    $ make -s -C examples/drivers/ipc/ipc_rpmsg_echo_linux/am64x-evm/r5fss0-0_freertos/ti-arm-clang/ syscfg-gui

    Here is the updated example.syscfg file:
    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/5355.example.syscfg

    And now the build of that specific core works fine:

    :~/rtos-sdks/am64x/mcu_plus_sdk_am64x_09_01_00_41$ make -s -C examples/drivers/ipc/ipc_rpmsg_echo_linux/am64x-evm/r5fss0-0_freertos/ti-arm-clang/ clean
    Cleaning: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out ...                                                                                          :~/rtos-sdks/am64x/mcu_plus_sdk_am64x_09_01_00_41$ make -s -C examples/drivers/ipc/ipc_rpmsg_echo_linux/am64x-evm/r5fss0-0_freertos/ti-arm-clang/
    Generating SysConfig files ...                                                                                                                                               Running script...
    ...
    Compiling: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: ../../../ipc_rpmsg_echo.c
    Compiling: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: ../main.c
    Compiling: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_drivers_config.c
    Compiling: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_drivers_open_close.c
    Compiling: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_board_config.c
    Compiling: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_board_open_close.c
    Compiling: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_dpl_config.c
    Compiling: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_pinmux_config.c
    Compiling: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out: generated/ti_power_clock_config.c
    .
    Linking: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out ...
    Linking: am64x:r5fss0-0:freertos:ti-arm-clang ipc_rpmsg_echo_linux.release.out Done !!!
    .
    Boot image: am64x:r5fss0-0:freertos:ti-arm-clang /home/a0226750local/rtos-sdks/am64x/mcu_plus_sdk_am64x_09_01_00_41/examples/drivers/ipc/ipc_rpmsg_echo_linux/am64x-evm/r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linux.release.appimage ...
    Generating certificate for ipc_rpmsg_echo_linux.release.appimage ...
    Boot image: am64x:r5fss0-0:freertos:ti-arm-clang /home/a0226750local/rtos-sdks/am64x/mcu_plus_sdk_am64x_09_01_00_41/examples/drivers/ipc/ipc_rpmsg_echo_linux/am64x-evm/r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linux.release.appimage.hs_fs Done !!!
    

    Regards,

    Nick

  • Please let me know once the customer is successfully building on their side. After that point, I can reassign your thread to a team member who can discuss how to create and build a project with multiple MCU+ cores, and then build all those cores at the same time.

    If there is IPC enabled between two MCU+ cores, starting in SDK 9.1 you need to build the firmware for those cores at the same time in order to avoid the error that your customer is observing.

    Regards,

    Nick