Post Go back to editing

using second stage loader bf607

Category: Software
Product Number: ADSP-BF60x

Hi,

I am working with BF607 secondary stage loader..

I have a LED blink program , which is programmed at offset 0x100000 and SSL which is programmed at 0x0.SSL has the rom_boot functon :rom_Boot((void*)App1_startaddress,0,0,0,0x20210002,0).//App1_startaddress=0x100000

After flashing ssl is loaded but not able to jump to application.

*both ldr files are created in reference with application notes EE364

*both are dual core application, i added adi_core_1_enable() in both ssl and application program

* used -MaxBlockSize 0xFFF0  while creating ldr files.

can you help with 1. why my rom_boot fuction does not jump to application??

                                 is there any other way to debug rom_boot function?

  • Hi,

    Are you already aware that when programming the flash using CLDP, you need to use the offset value in decimal format, not hexadecimal?

    Please refer to the below CLDP command and modify it according to your application:

    "C:\Analog Devices\CrossCore Embedded Studio 2.11.0\cldp.exe" -proc ADSP-BF609 -cmd prog -driver "C:\Analog Devices\ADSP-BF609_Evaluation_Board-Rel1.1.0\BF609_EZ-Board\Blackfin\Examples\Device_Programmer\serial\bf609_w25q32bv_dpia.dxe" -erase affected -emu 1000 -format bin -offset 1048576 -file "BF609_LED_1.ldr"

    Please follow the guidelines in the "Creating LDR Files" and "Programming Multiple LDR Files to SPI Flash Memory" sections of the EE-364 application note.
    https://www.analog.com/media/en/technical-documentation/application-notes/EE-364.pdf

    Are you using the INIT code while creating the LDR in your LED blink application? If yes, please remove and check whether it works.

    Regards,
    Nandini C

  • Hi,

    yes. I am using the offset in decimal form and there is no init file while creating application ldr .

    For my led blink application ,

    if i use rom_Boot(App1_startaddress,0,16,0,0x20210002,0), it successfully  jump to the application .However if i  use rom_Boot(App1_startaddress,0,0,0,0x20210002,0),it does not  jump to the  application.

    and also when i try to boot my actual project instead of led blinking project  by changing the dblockcount it does not work.

    do we need to change dblockcount parameter?

    when dblockcount=0, it will do a full boot to the end, why my application does not work with dblockcount=0?

    can you help me with this?

  • Hi,

    From your response we understand that SSL booting works with led code when the dblockcount is set to 16. When you try with your application with dblockcount as 16,it's not working, and both applications are not working when you set the dblockcount as 0. Please confirm whether our understanding is correct.

    Are you using L3 memory in your application? If so, please add the initialization code when creating the LDR for the SSL code. This is not necessary for the secondary application.

    Regarding "when dblockcount=0, it will do a full boot to the end, why my application does not work with dblockcount=0?"
    >>>If we configured the dblockcount =0, it should work. The blockCount argument specifies the number of blocks to be processed before terminating the boot process. The default would normally be 0x00000000. A value of 0x00000000 instructs the boot software to continue processing a boot stream until the ROM_BFLAG_FINAL flag is set. Should users wish to load only a specified number of blocks they can instruct the boot kernel to do so via this parameter.

    In your case, we need to isolate the issue. Please try to connect the processor in DND(Do Not Disturb) mode and check. This would help to isolate whether the issue is with booting or the application. Please refer to the below FAQ for connecting the processor in DND mode.
    CCES: https://ez.analog.com/dsp/software-and-development-tools/hardware-tools/w/documents/6749/how-to-debug-a-target-board-which-boots-from-flash-using-crosscore-embedded-studio

    Regards,
    Nandini C