3 Replies Latest reply on Feb 26, 2019 9:25 PM by GeonaP_26

    PSoC 5 LP Dual Application Bootloader Checksums

    jagic_3937361

      We are using PSoC Creator 4.1 and converted our test application to bootloadable.

       

      When we flash over JTAG either  app_1.hex or app_2.hex the bootloader checksum verification fails for both apps.

      If we flash the combined app.hex, the bootloader detects that both applications have good checksums and it runs the first one.

      Why do the single application packages fail?

        • 1. Re: PSoC 5 LP Dual Application Bootloader Checksums
          GeonaP_26

          Bootloader_Start() transfer control to one of the applications based on active and valid characteristics of each apps. The Switching Logic Table is available in Bootloader datasheet.

           

          Please change Bootloader_Start() to Bootloader_Exit(Bootloader_EXIT_TO_BTLDB_1), if you are programming Bootloadable_1.hex or vice versa to test this behavior. It will validate and load single application right away.

          • 2. Re: PSoC 5 LP Dual Application Bootloader Checksums
            jagic_3937361

            When I call the Bootloader_Exit() API it works as I would have expected.

            App_1.hex will boot when Bootloader_EXIT_TO_BTLDB_1 is used, and not boot when Bootloader_EXIT_TO_BTLDB_2 is used.

            App_2.hex will boot when Bootloader_EXIT_TO_BTLDB_2 is used, and not boot when Bootloader_EXIT_TO_BTLDB_1 is used.

             

            So, it appears that the bootloader switching logic is not able to handle the single app bootloadable hex packages in a dual app boot configuration.

            From what I can see when cyelftool -B app_1.elf is called the generated hex file is complete.

            Is the elf merge step (cyelftool -M) necessary for creating a valid dual app hex file?

            • 3. Re: PSoC 5 LP Dual Application Bootloader Checksums
              GeonaP_26

              Yes. Both applications needs to be valid and present in the bootloadable.hex file.