Post Go back to editing

Boot code on a ADSP-SC573-EZ without init block

Hi,

I use the simple LED-Blink example, running on the Cortex A5 core. Loader file generation with the provided init file delivers code which will boot flawlessly.

The same program will not boot when the init file is omitted.

I understand that the init code initializes the external DDR of the board, but why is this necessary when the example code is not accessing external RAM?

I also tried to generated an init code which initializes the CGU only, and not the DMC0 ( #define CONFIG_DMC0 (NONE) in config.h), which resulted in a code which will not boot.

Which steps are necessary to generate a loader file without an init block, which will boot succesfully code which does not use external memory ( for instance on a locked part for security reasons)?

Best regards,

Gerhard

  • Hi Gerhard,

    Please note that, by default the ARM default linker definition scripts for ADSP-SC5xx processors place the users' code and data in to L3(DDR) memory. In case, if you are not using INIT file/if the DDR configurations are removed from the INIT file, the boot fails.

    Regarding "Which steps are necessary to generate a loader file without an init block, which will boot succesfully code which does not use external memory ( for instance on a locked part for security reasons)?"
    >> Please find the attached example code where ARM code is mapped to L2, so need not to use init_code. You can refer the .ld file in the attachment and add it to Custom linker script(-T) option under project tool settings. This can be done as follows.
    Project Right click->Properties->C/C++ Build->Settings->Tool Settings->Cross Core ARM Bare metal C Linker->General->Custom Linker script(-T)-> Add the path of .ld file

    LED_Blink.zip

    Regards,
    Anand Selvaraj.

  • Thank you for your help, this worked.

    Gerhard