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.

CCS/AM5728: Adding IPC to DSP example

Part Number: AM5728


Tool/software: Code Composer Studio

Hi, I followed the step-by-step procedure on your website for adding IPC to an existing RTOS application on DSP http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_how_to_guides.html#adding-ipc-to-an-existing-ti-rtos-application-on-slave-cores.

However, I get errors when I'm trying to build the example. First of all, in main_led_blink.c:

if (callIpcStartup) {
IpcMgr_ipcStartup();
}

Description Resource Path Location Type
#20 identifier "callIpcStartup" is undefined main_led_blink.c /LINUX_GPIO_LedBlink_evmAM572x_c66xTestProject_v2 line 423 C/C++ Problem

When I try to get over this by simply calling IpcMgr_ipcStartup() without IF statement, I get this:

<Linking>
"configPkg/linker.cmd", line 240: error #10099-D: program will not fit into available memory. run placement with alignment fails for section ".fardata" size 0x4001b0a . Available memory ranges:
EXT_DATA size: 0x100000 unused: 0xfe6dc max hole: 0xfe6be 
error #10010: errors encountered during linking; "LINUX_GPIO_LedBlink_evmAM572x_c66xTestProject_v2.out" not built

I know that the instructions say that I'm supposed to use XDC tools 3.32.0.06_core and following libraries:

  • IPC 3.43.2.04
  • SYS/BIOS 6.45.1.29
  • am57xx PDK 1.0.4

but I don't want to develop my application based on obsolete libraries. Instead, I want to use those contained in Processor SDK RTOS 6.00.00.07.

Any help is appreciated,

Filip

  • Hello Filip.

    This is a known issue, the guide needs to be refreshed. I'm sorry for any inconvenience.

    In the meantime, please use the example project attached to the guide or the one below.

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/GPIO_5F00_LedBlink_5F00_evmAM572x_5F00_c66xExample_5F00_w_5F00_ipc.zip

    Regards,
    Sahin

  • Hi, thanks for the example you provided, but I'm getting the same error message during linking:

    "configPkg/linker.cmd", line 240: error #10099-D: program will not fit into available memory. run placement with alignment fails for section ".fardata" size 0x4001801 . Available memory ranges:
    EXT_DATA size: 0x100000 unused: 0xfe9d0 max hole: 0xfe9ae
    error #10010: errors encountered during linking; "GPIO_LedBlink_evmAM572x_c66xExample_w_ipc.out" not built

    Here are the packages I'm using (basically the only differences are the versions of IPC and NDK)... 

     

    Any ideas?

    Filip

  • Hi Filip,

    It appears the profiling package has increased in size since this project was created which is causing the error you are seeing. The section .fardata (size 0x4001801) cannot fit in the "EXT_DATA" section (size 0x100000).

    You will need to increase the size of EXT_DATA in the config.bld to fit the entire .fardata section (be sure to not trample over other sections). Then make the corresponding size change to DSP_MEM_DATA in rsc_table_vayu_dsp.c.

    If you do not care for profiling, you can remove it from the project by removing the following lines of code from the .cfg file. 

    /* Load Profiling package */
    var Utils = xdc.loadPackage('ti.utils.profiling');
    Gpio.Settings.enableProfiling = true;
    /* Define and add one Task Hook Set */
    Task.addHookSet({
    	registerFxn: '&TaskRegisterId',
    	switchFxn: '&mySwitch',
    });

    And remove the following compiler options as well.

    --entry_hook=ti_utils_entry --exit_hook=ti_utils_exit --entry_parm=address --exit_parm=address 

    Hope this helps.

    Regards,
    Sahin

  • Hello, thanks for answering, now it works fine.

    Regards,

    Filip