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.

TMDXIDK5718: Board support issue in CCS

Part Number: TMDXIDK5718
Other Parts Discussed in Thread: SYSBIOS

Hi

According to the description on this web site

processors.wiki.ti.com/.../Processor_SDK_RTOS_Board_Support

I tried to use the Board_init() function.
As written there I included "ti/board/board.h in my project.
When I try to use the Board_init() function I get a linker error saying that this function could not be found, see screenshot
The mentioned documentation does not say what has to be done additionally to work properly.

How can I use Board_init()?

Regards
Markus

  • The RTOS team have been notified. They will respond here.
  • Hi,

    Adding include path "ti/board/board.h" is for compiling the code. To generate the .out file, you need to add the library that containing the Board_init() implementation for the linker.

    You can refer to any .cfg under TI processor SDK RTOS driver example, typically we have:

    /* Load the Board package and set the board name */
    var Board = xdc.loadPackage('ti.board');
    Board.Settings.boardName = "idkAM571x"; ====> this is the board name to specify which board library to link. Those libraries reside at pdk_am57xx_1_0_x\packages\ti\board\lib

    Regards, Eric
  • Hi Eric

    Thank you for this answer.
    Is it allowed to manually edit the .cfg file in the script editor or are those settings lost after I change some settings via the GUI?

    In the mentioned documentation there is also a requirement for AM5x processors.
    I sould set:

    Program.sectMap["BOARD_IO_DELAY_DATA"] = "OCMC_RAM1";
    Program.sectMap["BOARD_IO_DELAY_CODE"] = "OCMC_RAM1";

    Has this also to be done in the same .cfg file?

    Regards,
    Markus
  • Markus,


    You can right click on the .cfg and open it in a text Editor by selecting the Open With -> Text Editor to add this configuration. you are correct, the pinmux configuration that sets the IO_Delay parameters needs to be done from OCMC memory hence it is mandatory to place that code in OCMC RAM for all configurations so add the configuration in the .cfg file.

    For reference you can refer to the any of the PDK examples for AM571x: for Eg:
    pdk_am57xx_1_0_6\packages\ti\drv\uart\example\sample\am57x\armv7\bios\uart_arm.cfg

    Hope this helps.

    Regards,
    Rahul
  • Rahul

    Editing the .cfg file did work and the original errors have gone.
    Unfortunately new errors arise while compiling:

    After adding this to the .cfg file:

    * Load the OSAL package */
    var osType = "tirtos";
    var Osal = xdc.loadPackage('ti.osal');
    Osal.Settings.osType = osType;

    /*use CSL package*/
    var socType = "am571x";
    var Csl = xdc.loadPackage('ti.csl');
    Csl.Settings.deviceType = socType;

    /* Load the uart package */
    var Uart = xdc.loadPackage('ti.drv.uart');
    Uart.Settings.socType = socType;

    /* Load the I2C package */
    var I2c = xdc.loadPackage('ti.drv.i2c');

    /* Load the SPI package */
    var Spi = xdc.loadPackage('ti.drv.spi');

    /* Load the Board package and set the board name */
    var Board = xdc.loadPackage('ti.board');
    Board.Settings.boardName = "idkAM571x";

    /* ================ Memory sections configuration ================ */
    Program.sectMap["BOARD_IO_DELAY_DATA"] = "OCMC_RAM1";
    Program.sectMap["BOARD_IO_DELAY_CODE"] = "OCMC_RAM1";


    I get these errors while linking:

    undefined first referenced
    symbol in file
    --------- ----------------
    ti_sysbios_family_c64p_EventCombiner_disableEvent__E
    C:\ti\pdk_am57xx_1_0_6\packages\ti\osal\lib\tirtos\c66\release\ti.osal.ae66<EventCombinerP_tirtos.oe66>
    ti_sysbios_family_c64p_EventCombiner_dispatchPlug__E
    C:\ti\pdk_am57xx_1_0_6\packages\ti\osal\lib\tirtos\c66\release\ti.osal.ae66<EventCombinerP_tirtos.oe66>
    ti_sysbios_family_c64p_EventCombiner_dispatch__E
    C:\ti\pdk_am57xx_1_0_6\packages\ti\osal\lib\tirtos\c66\release\ti.osal.ae66<RegisterIntr_tirtos.oe66>
    ti_sysbios_family_c64p_EventCombiner_enableEvent__E
    C:\ti\pdk_am57xx_1_0_6\packages\ti\osal\lib\tirtos\c66\release\ti.osal.ae66<EventCombinerP_tirtos.oe66>

    How do I solve this?

    Regards,
    Markus
  • Hi Rahul

    Any ideas how I can fix this problem?

    Regards,
    Markus
  • Have you added the Event combiner module in the BIOS configuration. Try to confirm that you have the following in your configuration file.

    var ECM                         =   xdc.useModule('ti.sysbios.family.c64p.EventCombiner'); 
    
    /*
     * Enable Event Groups here and registering of ISR for specific GEM INTC is done
     * using EventCombiner_dispatchPlug() and Hwi_eventMap() APIs
     */
    var exception			                =	xdc.useModule('ti.sysbios.family.c64p.Exception');
    exception.enablePrint = true;

  • Hi Rahul

    Your first line helped, tank you!

    Interesstingly when I copied my original line from the TI example

    C:\ti\pdk_am57xx_1_0_6\packages\ti\drv\uart\example\sample\am57x\armv7\bios\uart_arm.cfg

    there is no such line present and I also cannot find anything with "combiner" within the uart_arm.cfg file.

    Regards,
    Markus