The foundation of the shared parameter module is a section in RAM that is accessible by both the bootloader and the user program. Note though that the general concept works for any type of microcontroller and development environment combination. The bootloader and user program in this demonstration are prepared for a ST Nucleo-F091RC board with Atollic TrueStudio as the development environment. The demonstration includes an example on how to perform the actual data exchange between the bootloader and user program. The first part of the article delves into the design of this shared parameter module, which is followed by a step-by-step demonstration on how to integrate and use the shared parameter module. Another example is to pass the IP-address on to the bootloader, which was assigned in your user program via DHCP. For example to change the CAN identifiers the bootloader uses during a firmware update, based on a node-address that was dynamically assigned in your user program. This data exchange is especially useful in a situation where you want to change the configuration and behavior of the bootloader in a way that was not yet known at the time that the bootloader was programmed into flash memory. This article presents a free-to-use software module that makes parameter exchange possible, by means of a shared section in RAM. Even though the bootloader and your firmware are two completely separate programs in flash memory, which never execute at the same time, such a data exchange is definitely possible. All type definitions are in stdint.h header file.Several OpenBLT bootloader users asked, if it is possible two exchange data between the bootloader and their firmware. If you write a program for STM32F1 even porting this program to STM32F4 can be pain in the ***.ĭon't get surprized when you see uint8_t, uint16_t etc. Preprocessor directives and preprocessor macros are a little tricky usually. Limited code and data memory restricts using big arrays. Probably you are not familiar with infinite while loop and RTOS (Real Time Operating System). Bitwise operations are not common, you don't have to worry about cpu type, pin configuration, enabling clocks. You don't have to know memory and peripheral addresses mostly. net and other dependencies are supplied of course). If you are designing windows applications in C, C++, C# data types are standard, your code can run on any machine running windows (if. If you are not familiar with embedded systems, when you look at a C code, you will notice some differences.īefore starting a programming tutorial i wanted to build a basic knowledge about embedded programming.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
January 2023
Categories |