5 Replies Latest reply on Jul 24, 2018 11:49 PM by geon

    Network Bootloader

    sweeney_2578827

      I am working on a project that communicates via TCP/IP and I'm trying to implement a firmware upgrade functionality. My current approach is to have a dual application setup with a bootloader that operates as a launcher only (no communication) and an application that handles the network communication (this already exists for my actual application), this application will also have to handle the actual loading of the firmware from the host server into flash (this is the part I'm working on now).

       

      Are there any examples that work like this? It seems as though a lot of my task involves pulling out all of the existing bootloader generated source, cleaning it up and compiling it into my application (adjusting the communication interface stuff). I don't think I can incorporate the bootloader into my project and have it operate as a runtime component rather than an actual bootloader, is that correct? I'm basically implementing the following data flow (Ref: AN86526 Appendix C) but built on top of the TCP/IP communication interface, am I going in the right direction or is there an easier way?

       

      bootloader_flow.png

        • 1. Re: Network Bootloader
          geon

          Hello Patrick,

           

          Bootloader supports Custom Interface option which allows to add bootloader support to any existing communication component. As you have the network application up and running, you need to implement functions to support bootloading. They are used by the bootloader for setting up the communications interface and relaying packets back and forth with the host. Please make use of the details in Section 10.1.2 of PSoC Creator Component Author Guide and Custom communication interface support for PSoC 3/5 bootloaders

           

          Best Regards,

          Geona Mary

          • 2. Re: Network Bootloader
            sweeney_2578827

            This would mean the full communication would need to be supported in the bootloader correct? And I would have to exit the main program, enter the bootloader, reopen the network connection and setup a new socket to my server in order to receive the firmware. This is not desirable behaviour and I don't really want the bootloader to have to support that entire communication protocol as it's quite an involved process to setup the network and register with server that I will be communicating with. I'd prefer the main application to support reading the firmware over the existing open socket to the server, with the existing command infrastructure that has already been written into the application and simply write it to flash.

            • 3. Re: Network Bootloader
              geon

              Hello Patrick,

               

              It is possible to add bootloading functionality to a user application (without creating stand alone bootloader). This is defined through incorporation of a Bootloader Component, a Bootloadable Component, and a communication Component. This configuration is called Combination Project. As you have communication protocol already setup in your project, you can add a Bootloader component and use the Custom Interface instead of pulling out the bootloader functions.

               

              Thus, target flash will consist of launcher, combination project 1, combination project 2. One application is loaded into target flash by other combination project. Please let me know if it helps.

               

               

              Best Regards,

              Geona Mary

              • 4. Re: Network Bootloader
                sweeney_2578827

                This sounds like what I want, are there any example projects of this?

                • 5. Re: Network Bootloader
                  geon

                  Hello Patrick,

                   

                  There is no code example on Launcher+combination project with custom communication interface. Please make use of this Knowledge Base Article Custom communication interface support for PSoC 3/5 bootloaders

                   

                   

                  Best Regards,

                  Geona Mary