Ethernet Flash Boot Loader

Hi guys,

I just started to build an app on PE-HMI1 (SSP 1.2.1).

I want know if there are some example of BootLoader work on ethernet like the old RX62N/RX63N ( www.renesas.com/.../D3007836.html )

Somebody knows something already implemented.

Thank you.

Parents Reply Children
  • Hi james,

    Are you using bootloader for downloading the new BCH file? If yes then can you please show me how you have setup the configuration for firmware flash internal in bootloader and also in the application code.
    Also please tell me how you have created the BCH file?

    Regards,

    Mohammad Hashir
  • Hi Mohammad ,

    I did not change any bootloader code.

     Setting of Bootloader below:

     

     

    My 2nd slot Firmware Image setting below:

  • Hi james,

    Give Address/Pointer for firmware image record to 0x800.
    in bootloader client thread change
    sf_firmware_image_erase_cfg_t erase_cfg =
    {
    .slot_number = 0
    };
    sf_firmware_image_erase_cfg_t erase_cfg =
    {
    .slot_number = 1
    };

    also thing to be noted is that the current bootloader code does not search for new images.
    so you have to change the configuration.

    sf_bootloader_cfg_t my_cfg;

    memcpy(&my_cfg, g_sf_bootloader_mcu0.p_cfg, sizeof(my_cfg));
    my_cfg.new_image_check = true;

    please check these things.

    regards

    Mohammad Hashir
  • Hi james

      Just to confirm regarding this image : are debugging two codes at a time?.. please can you tell me whether you are using the TFTP boot example or any other codes? 

    regards

  • Hi james,

    For your update, i have finished the OTA for 2 slots by combining both the examples(USB_CDC_blocking and TFTP boot).
    I use bootloader code of USB_CDC_blocking example and in application program i added image download and blockWrite method of client_thread_entry which you will get in TFTP_boot example.
    In this case Address/Pointer for firmware image record is 0x500.
    some changes to noted in boot loader for this case is that:
    1)my_entry(g_sf_bootloader_mcu0.p_ctrl, g_sf_bootloader_mcu0.p_cfg, true);//make it true to check new images

    2) //comment out 'if' statment and its starting and ending braces in my_entry() for checking new image
    // if(check_for_new_images == false)
    // {
    /** Since we are not checking for new images, only initialize the sf_firmware_mcu_flash interface*/
    //ssp_err = g_sf_bootloader_mcu0.p_api->open(p_ctrl, p_cfg, false);
    ssp_err = g_sf_bootloader_mcu0.p_api->open(p_ctrl, &my_cfg);

    if (ssp_err != SSP_SUCCESS)
    {
    //break;
    }
    //ssp_err = 1;
    /** Jump to the app */
    ssp_err = g_sf_bootloader_mcu0.p_api->appStart(p_ctrl);

    if (ssp_err != SSP_SUCCESS)
    {
    // break;
    }

    ssp_err = g_sf_bootloader_mcu0.p_api->close(p_ctrl);

    return SSP_SUCCESS;
    // }

    make sure that you have changed the following in application code accordingly:
    1) starting address in linker script and clean before build ,
    2)slot_number to be erased
    3)version number
    Its working fine for me.

    Best Regards

    Mohammad Hashir
  • Hi Mohammad,

    I try to give the MCU init application. After test had done, I will only the bootloader application only.
  • Hi Mohammad,

    Thanks, I will change the code and try again.