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.

AM5728: About Board_Init() for DSP

Part Number: AM5728

Hi experts,

Does the DSP need to call Board_Init?

I believe that if ARM calls Board_Init and does the necessary initialization, the DSP does not need to call Board_Init.

I have tested the following two projects with EVM.

  • GPIO_LedBlink_evmAM572x_armTestProject
  • GPIO_LedBlink_evmAM572x_c66xTestProject

In the default project, both ARM and DSP call Board_Init. And if I use this default project, the ARM and DSP can control the GPIO.

I figured the DSP didn't need Board_Init, so I commented out the Board_Init for this default DSP project and tested it again.
But I can't control the GPIOs from the DSP. The two projects I used in this case are as follows.

  • GPIO_LedBlink_evmAM572x_armTestProject  → default setting
  • GPIO_LedBlink_evmAM572x_c66xTestProject → commented out the Board_Init()

Do I need Board_Init for the DSP to control the GPIOs? If this is necessary, I would like to know why it is necessary.

Best regards,
Sasaki

  • Hi Sasaki,

    AM572 board lib has C6x specific pinmuxes and pad delays

    See the log below

    :~/ti/pdk/packages/ti/board/src/idkAM572x$ grep C6X . -Isr

    ./iodelay_config.h:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./iodelay_config.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./iodelay_config.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./iodelay_config.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./iodelay_config.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./iodelay_config.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./iodelay_config.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./iodelay_config.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./iodelay_config.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./iodelay_config.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./iodelay_config.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./iodelay_config.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelay.h:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelay.h:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayInit.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayInit.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayInit.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./boardPadDelayDevice.c:#if defined(_TMS320C6X) || defined(__TI_ARM_V7M4__)

    ./idkAM572x_pinmux.c:#if defined(_TMS320C6X)

    ./idkAM572x_pinmux.c:#if defined(_TMS320C6X)

    ./idkAM572x_pinmux.c:#if defined(_TMS320C6X)

    ./idkAM572x_pinmux.c:#if defined(_TMS320C6X)

    ./idkAM572x_pinmux.c:#if defined(_TMS320C6X)

    ./idkAM572x_lld_init.c:#if defined (_TMS320C6X)

    It's probably why you need to call Board_init() from DSP.

    Regards

    Vineet

  • Hi Vineet-san,

    Thank you for your reply.

    The problem was Uart_Printf().
    When I commented out the Uart_Printf() line in the DSP side, it worked fine without calling Boart_Init().

    Best regards,
    Sasaki