Unified Bootloader Host Application Download

0 views
Skip to first unread message

Casio Bauman

unread,
Aug 4, 2024, 5:21:28 PM8/4/24
to kaapewharneck
Asembedded devices evolve in both capability and connectivity, so does the need to enable remote application updates. Not limited to a single communications protocol, embedded connectivity takes many forms and is essential in growing markets including the Internet of Things (IoT). Remote firmware updates allow for simplified and efficient upgrades to an existing application while increasing a product's useful life. The addition of new features to a product can be used to maintain a competitive advantage against new market offerings or unlock existing fee-based premium content. Additionally, software fixes can be quickly propagated to ensure reliable system operation.

To take advantage of this connectivity, bootloader firmware must reside within memory to provide self-programming capability to the microcontroller. Developing custom bootloader code can be a complex and time-consuming process. We provide a 16-bit bootloader to assist developers using PIC24 microcontrollers (MCUs) and dsPIC33 Digital Signal Controllers (DSCs). The simple GUI interface enables you to create bootloader firmware designed to suit your application needs. We also provide application firmware configuration that enables you to easily customize the bootloader with your application.


To complement the bootloader generator, we also provide a unified bootloader host application. This tool is used to transfer new application code to the embedded device that contains the bootloader code. This GUI application can communicate with the target device using the bootloader command protocol through any of the supported physical layer interfaces.


Refer to the MPLAB Code Configurator (MCC) 16-bit Bootloader release notes for the list of supported devices. Future releases of the MCC 16-bit Bootloader will include support for additional PIC24 MCUs and dsPIC33 DSCs and features.


For devices and communication interfaces that are not yet supported by the MCC 16-bit Bootloader, please use Easy Bootloader (EZBL). For advanced Live Update feature support to update firmware in real time, please refer to Online Firmware Updates in Timing-Critical Applications (AN2601) along with Easy Bootloader (EZBL).


The software in this section is subject to the U.S. Export Administration Regulations and other U.S. law, and may not be exported or re-exported to certain countries or to persons or entities prohibited from receiving U.S. exports (including Denied Parties, entities on the Bureau of Export Administration Entity List, and Specially Designated Nationals).


If you can use an editor or write an AWK script, or a basic C program app on the host system, you can probably just merge the two, striping the terminating line on the first, and appending the second file.


STMCubeIDE is multiproject Eclipse envi , then you have one project for bootloader in same workspace next project app. What you setup into build or run sequence result to create one hex for every project or more hex based on scripting etc.


We would like to use the flash bootloader available to update firmware using CAN interface, but I'm not sure how to develop the host side to send the bytes (read the image file, prepare packages with described protocol, etc). Would it be something similar to the sflash and eflash tools located under TivaWare/tools folder? Just in case, I'm aware CAN interface requires an CAN transciever and appropriate library.


I think you will not only need the the software tool on the host side but also the adapter (e.g. serial to CAN adapter) on the hardware side. If you have a serial to CAN adapter I think you use the LM flash programmer on the PC to bootload the MCU on CAN interface.


Please also refer to the CAN bootloader app note for TM4C device in the below link. Here you will find a TM4C device used as a serial to CAN adapter that takes the serial commands from the LM flash program in seral mode and translate to the CAN packets for bootloading another MCU on CAN interface.


I'll have F28M36 devices (Concerto) working as main controllers, connected via CAN interface to several TM4C's (from one up to eight, depending on the case) working as nodes. The Concerto devices are also connected to a RS485 control network, from which I would update firmware from both types of devices. So the F28M36 will work as this "serial-to-CAN" adapter when I need to update the TM4C's nodes.


However, it seems I couldn't use the LM Flash Programmer, because our RS485 network runs over 6 Mbps through a custom Ethernet/Serial converter solution implemented using BeagleBone Black's (BBB). We can create virtual serial ports for them, which could be displayed on the LM Flash GUI as normal serial ports, but it's not possible to set such baudrate, right?


Furthermore, It seems I couldn't use the LM Flash to update firmware for the F28M36 itself. In this case, my only option is to write my own host application for it, since Uniflash doesn't solve this problem either, right?


Thanks for your feedback on this, we will see about adding that as an improvement for TivaWare. This app note released after the latest TivaWare update and the User's Guides are generated along side releases so it would need to be done when we make the next released update. Perhaps we can put an E2E FAQ for this though to help make it easier to find.


Gabriel Brunheira said:Furthermore, It seems I couldn't use the LM Flash to update firmware for the F28M36 itself. In this case, my only option is to write my own host application for it, since Uniflash doesn't solve this problem either, right?


LM Flash Programmer will take a binary file and send out packets of data to a serial bootloader. It does not care what is in the binary file. I do not have any experience with F28M36. I suspect that if you created a serial bootloader for the F28M36 that uses the same protocol as the TM4C, it would work. I cannot address how well LM Flash Programmer will work with your RS485 network.


Bob Crosby said:LM Flash Programmer will take a binary file and send out packets of data to a serial bootloader. It does not care what is in the binary file. I do not have any experience with F28M36. I suspect that if you created a serial bootloader for the F28M36 that uses the same protocol as the TM4C, it would work. I cannot address how well LM Flash Programmer will work with your RS485 network.


Bob Crosby said:If you would like more information on programming the F28M36 I can move this thread over to an expert on that device. However, I doubt that they will have any knowledge of LM Flash Programmer.


To use an Edge host with a host cluster, you must first register it with Palette. A registration token in the user datais required to complete the registration process. Review the Create Registration Tokenguide for steps on how to create a tenant registration token.


To register the Edge host, you are required to use a registration token with all three registration options. Edge hostsare registered under the default project chosen for the registration token. You can override the default project byspecifying the project in the Edge Installer user data configurationfile.


By default, devices automatically register during the on-site deployment process when a tenant registration token valueis present. Set the parameter disableAutoRegister to true in the Edge Installer configuration to disable autoregistration and require manual device registration.


If you selected a default project for the registration token, that is the project the Edge host will be registeredunder. You can override the default project by providing a project name in the user data.


In this mode, you must manually register the Edge host in Palette by providing the Edge host's unique identifier.Optionally, you can specify a project name to associate the Edge host with a particular project.


Access to the Edge host's unique identifier. You can get the unique identifier or machine ID from the console outputas the Edge host powers on. The Edge host unique identifier has the default prefix edge-. Example Output:


You can also specify an Edge host's unique identifier in the user data by using the stylus.site.Name parameter. Referto the Installer Configuration resource to learn more about availableconfiguration parameters.


Site operators scan the QR code to visit the registration page. This web page pre-populates the Edge host's unique ID inthe web app and provides a list of edge sites they can associate with this edge host.


Site operators can select a site and submit a registration request. The web application automatically creates the Edgehost entry in Palette and defines a cluster with that Edge host. This workflow also supports adding Edge hosts to anexisting host cluster.


Update the sample site provided with your site names and locations. Make the required changes in thepages/index.js file. The readme file provides additional details about the files to be changed andinstructions on how to build and test the application locally.


Your next step is to decide how you want to provide the registration URL value. You can include the registration URLin the user data added to the device before shipping. Or you can create a user data ISO and have the registration URLin the secondary user data. Check out the Perform Site Install to learn more about creating sitespecific user data.


The next step in the installation process is to add the Edge host to a cluster or to create an Edge Native host cluster.Check out the Create Cluster Definition guide to complete the last step of the installationprocess.


The MCU bootloader is a configurable flash programming utility that operates over a serial connection on supported NXP MCUs. It enables quick and easy programming through the entire product lifecycle -- from application development to final product manufacturing and beyond -- for updating applications in the field with confidence.


The bootloader is delivered in two ways: as full source code that is highly configurable; or pre-programmed by NXP into ROM or flash on select NXP MCUs. Host-side command line and GUI tools are available to communicate with the bootloader. The MCU bootloader uses startup, header files, and peripheral drivers from MCUXpresso SDK.

3a8082e126
Reply all
Reply to author
Forward
0 new messages