1 Reply Latest reply on May 9, 2019 11:39 PM by GeonaP_26

    PSoC 4 as FOTA host bootloader

    BiKa_2115371

      Hello,

       

      I have a project based on PSoC 4200 BLE CPU. The project consists of a

      BLE smart sensor (based on PSoC 4200 BLE CPU) and

      a BLE module -also based on PSoC 4200 BLE CPU) embedded another  bigger device.

      The Smart sensor must have OTA firmware update capability. The Host device for the bootloading must be the embedded PSoC 4200 BLE module. The new firmware should transferred on PSoC BLE400 module via UART in *.elf format.

       

      So two question arose:

       

      1. How can the elf file converted in cyacd format? Is there any available source code for this? and

      2. Is there a firmware example for the PSoC 4 BLE FOTA host?

       

      Best Regards

      Bill

        • 1. Re: PSoC 4 as FOTA host bootloader
          GeonaP_26

          1. cyelftool.exe part of PSoC Creator converts <Project_Name>.elf to <Project_Name>.cyacd. The command to create bootloadable output file:

          cyelftool -B/--build_bootloadable file.elf --flash_size <num>  --flash_array_size <num> --flash_row_size <num>  [--ee_row_size <num> --ee_array <num>] [--offset]
          

           

          • You can find cyelftool.exe at: C:\Program Files (x86)\Cypress\PSoC Creator\4.2\PSoC Creator\bin\cyelftool.exe. Please modifyy according to the PSoC Creator version used at your end.
          • Please modify the command according to the device specific flash_size, flash_array_size etc. For CY8C4247LQI-BL483, this command translates:
          cyelftool.exe -B ".....Bootloadable01.elf" --flash_row_size 128 --flash_size 131072 --flash_offset 0x00000000 --flash_array_size 65536
          

           

          • If you would like to generate the same, please refer to the bootloader application and code data (.cyacd) file format provided in Bootloader component datasheet (page no: 51).

           

          2. We do not have reference example for embedded OTA host. Whereas, we have embedded bootloader host examples for basic communication protocol such as UART, I2C etc. Please refer to Application Note links here: Bootloader Code Examples for PSoC® 3/PSoC 4/ PSoC 4BLE/PSoC 5LP

           

          CySmart andriod /iOS application supports OTA. Please refer to CySmart source code to understand the bootloader commad-response flow for OTA: https://www.cypress.com/documentation/software-and-drivers/cysmart-mobile-app