Method of updating a program in a microcontroller
By separating and executing microcontroller programs into distinct regions, the method addresses memory inefficiencies in updating wireless protocols and applications, ensuring efficient memory utilization during updates.
Patent Information
- Application Number
- FR2024002992
- Authority / Receiving Office
- FR · FR
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-26
- Publication Date
- 2025-10-03
AI Technical Summary
Current methods for updating microcontroller programs require excessive memory space, particularly due to the need to update wireless communication protocols and applications, which are often stored together, leading to memory inefficiencies.
A method and microcontroller configuration that separates the program into regions, allowing the download protocol to function independently, enabling the deletion of unused parts and sequential execution of updated versions, thereby reducing memory requirements.
This approach conserves memory space by allowing the download protocol to operate autonomously, facilitating updates without relying on other program parts, thus optimizing memory usage.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Title of the invention: Method for updating a program in a microcontroller Technical field
[0001] The present description relates generally to methods for updating a program in a microcontroller and to microcontrollers implementing such methods. Prior art
[0002] Some microcontrollers use a program to implement wireless updates. This program must itself be able to be updated wirelessly.
[0003] However, current update methods require too much memory space. Summary of the invention
[0004] There is a need to provide a method for wirelessly updating a program of a microcontroller, which can limit the use of memory space of the microcontroller.
[0005] One embodiment overcomes all or part of the drawbacks of the known methods.
[0006] One embodiment provides a method of updating a program in a microcontroller, the program to be updated containing a first version of a first download protocol in the microcontroller and a first version of an application and the update containing a second download protocol and a second version of the application, the method comprising the following steps: - erasing the first version of the application from a first region; - downloading, in the first region, the second download protocol using the first version of the first download protocol present in a second region; - clear the contents of the second region; - download the second version of the application using the second download protocol.
[0007] One embodiment provides a microcontroller comprising a program containing a first version of a first download protocol in the microcontroller and a first version of an application, the microcontroller being configured to: - delete the first version of the application from a first region; - downloading, in the first region, a second download protocol using the first version of the first download protocol present in a second region; - clear the contents of the second region; - download a second version of the application using the second download protocol.
[0008] In one embodiment, the downloading of the second version of the application is done in the second region.
[0009] In one embodiment, after erasing the content of the second region and before downloading the second version of the application, the content of the first region is transferred to the second region and then the content of the first region is erased.
[0010] In one embodiment, the downloading of the second version of the application is done in the first region.
[0011] In one embodiment, the first and second regions are regions of a memory of the microcontroller.
[0012] In one embodiment, said memory has a size less than the sum of the size of the first and second versions of the first download protocol.
[0013] In one embodiment, the first version of the first download protocol or the second download protocol comprises a wireless update download protocol and a wireless communication protocol.
[0014] In one embodiment, the wireless update download protocol and the wireless communication protocol are configured so that, when an update is requested, they can be executed completely without relying on elements contained in the first region.
[0015] In one embodiment, the wireless communication protocol is configured to, when executing the application, call upon elements from a region different from that where it is stored.
[0016] In one embodiment, said elements are parts of the wireless communication protocol that are not needed during an update.
[0017] In one embodiment, said second region is delimited by at least two memory addresses.
[0018] In one embodiment, the second region comprises several non-contiguous segments of the memory, each delimited by at least two addresses of the memory.
[0019] In one embodiment, a processing unit of the microcontroller is configured to, when an update is requested, execute instructions of the download protocol written in the second region.
[0020] In one embodiment, said first region is delimited by at least two memory addresses.
[0021] In one embodiment, the first region comprises several non-contiguous segments of memory each delimited by at least two memory addresses.
[0022] In one embodiment, a processing unit of the microcontroller is configured to, when an update is requested, execute instructions of the download protocol written in the first region.
[0023] In one embodiment, the program to be updated is in the form of a first binary image containing the first version of the first download protocol and the first version of the application; and the update is in the form of a second binary image containing the second download protocol and the second version of the application.
[0024] In one embodiment, the second download protocol is a second version of the first download protocol.
[0025] In one embodiment, downloading the second download protocol comprises downloading an alternative download protocol used by the first version of the first download protocol to download the second download protocol.
[0026] One embodiment provides a system comprising an update unit and a microcontroller as described above, the update unit being configured to transmit, to the microcontroller and during an update, sequentially, the second download protocol and the second version of the application. Brief description of the drawings
[0027] These characteristics and advantages, as well as others, will be explained in detail in the following description of particular embodiments given without limitation in relation to the attached figures among which:
[0028] [Fig.l] illustrates very schematically and in the form of blocks, a system of the type to which the embodiments apply;
[0029] [Fig.2] illustrates an example of a program update method;
[0030] [Fig.3] illustrates an example of a program update method;
[0031] [Fig.4] illustrates an example of a program update method;
[0032] [Fig.5] illustrates a program updating method according to a mode of realization; and
[0033] [Fig.6] illustrates a program updating method according to one embodiment;
[0034] [Fig.7] illustrates steps of the program updating method of [Fig.5] according to one embodiment;
[0035] [Fig.8] illustrates steps of the program updating method of [Fig.5] according to one embodiment;
[0036] [Fig.9] illustrates steps of the program update method of [Fig.5] according to one embodiment. Description of the embodiments
[0037] The same elements have been designated by the same references in the different figures. In particular, the structural and / or functional elements common to the different embodiments may have the same references and may have identical structural, dimensional and material properties.
[0038] For the sake of clarity, only the steps and elements useful for understanding the described embodiments have been shown and are detailed.
[0039] Unless otherwise specified, when referring to two elements connected to each other, this means directly connected without intermediate elements other than conductors, and when referring to two elements connected (in English "coupled") to each other, this means that these two elements can be connected or be connected by means of one or more other elements.
[0040] In the following description, when reference is made to absolute position qualifiers, such as the terms "front", "back", "top", "bottom", "left", "right", etc., or relative position qualifiers, such as the terms "above", "below", "upper", "lower", etc., or to orientation qualifiers, such as the terms "horizontal", "vertical", etc., reference is made unless otherwise specified to the orientation of the figures.
[0041] Unless otherwise specified, the expressions "about", "approximately", "substantially", and "of the order of" mean to within 10% or 10°, preferably to within 5% or 5°.
[0042] [Fig.l] illustrates very schematically and in block form, a system 80 of the type to which the embodiments apply.
[0043] The system 80 comprises for example a microcontroller 100 capable of communicating wirelessly with an update unit 150 (PROGRAM UPLOAD UNIT).
[0044] The microcontroller 100 comprises a non-volatile memory 104 (MEM WITH BOOT MANAGER), for example of the FLASH memory type, capable of communicating, via a communication bus 114, with a non-volatile memory interface 106 (MEM INTERFACE) configured to write or read data in and from the non-volatile memory 104. In one example, system programs and / or applications, such as boot programs, are implemented in the memory 104. The memory 104 comprises, for example, a program configured to manage other programs stored within the memory 104. These other programs are, for example, applications developed by users of the microcontroller, or even wireless communication protocols (Wireless Protocol Stack in English) which, when executed, allow data communication to be implemented with the update unit 150. The memory 104 may also comprise a program allowing the implementation of updating data, programs or applications present, for example, in the memory 104.
[0045] The microcontroller 100 further comprises, for example, a processing unit 110 (CPU) comprising one or more processors under control of instructions stored in a system instruction memory 112 (INSTR MEM). The instruction memory 112 is, for example, a volatile memory of the random access type (Random Access Memory, RAM). The processing unit 110 and the memory 112 communicate, for example, via a system bus 140 (data, address and command). The FLASH memory 104 is connected to the system bus 140 via the non-volatile memory interface 106 and via the bus 114. The microcontroller 100 further comprises an input / output interface 108 (I / O INTERFACE) connected to the system bus 140 to communicate with the outside.
[0046] The microcontroller 100 further comprises, for example, another memory 120 (USER MEM) of non-volatile type or RAM type. This memory 120 is connected to the system bus 140 directly or via a memory interface (not shown) whose role is, for example, similar to the interface 106.
[0047] The microcontroller 100 can integrate other circuits implementing other functions (for example, one or more volatile and / or non-volatile memories, other processing units), symbolized by a block 116 (FCT) in [Fig.l].
[0048] The microcontroller 100 may further integrate other circuits, such as wireless communication circuits 118 (RF) having for example impedance matching circuits and which are configured to be connected to one or more antennas.
[0049] It may be necessary to update the program(s) present in memory 104.
[0050] [Fig.2] illustrates an example of a program update method.
[0051] In the example shown, a wireless communication protocol program 218 (Wireless Protocol Stack) is stored between an address 0x01000 and an address 0x2A000 of the memory 104, a program management program 216 (BOOT MANAGER) is stored within the memory 104 between an address 0x00000 and the address 0x01000, and an application 220 (User App), for example developed by a user who is a subcontractor or integrator of the microcontroller 100, is stored between the address 0x2A000 and the address 0x60000.
[0052] When an update is requested, for example by an order received from the unit 150, the microcontroller 100 communicates, for example wirelessly, with the unit 150 so that the protocol 218 and / or for example also the application 220, are updated and replaced in the memory 104, respectively, by a new version of the protocol 238 (New Wireless Protocol Stack) and a new version of the application 230 (New User App). In the example shown, the program management program 216 remains unchanged.
[0053] An update implementation program is necessary to wirelessly update the programs or applications. This update implementation program, called Over The Air (OTA) in English, is for example stored in the memory 104. In certain cases where the memory space is limited, such as for example the case for communicating objects, it is necessary to be able to also update the update implementation program while using itself to download a new version of this implementation program from the unit 150.
[0054] [Fig.3] illustrates an example of a program update method.
[0055] In the example shown, the wireless communication protocol 218 (Wireless Protocol Stack) is stored between an address 0x02000 and an address 0x20000 of the memory 104 and an update implementation program 348 (OTA App) is stored between the address 0x01000 and the address 0x02000. The programs 218 and 348 form a wireless update implementation program 308 (OTA Loader). The program management program 216 (BOOT MANAGER) is stored within the memory 104 between an address 0x00000 and the address 0x01000. An application 328 (User App), including another wireless communication protocol program 338 (Wireless Protocol Stack 2) which benefits for example from corrected errors or improvements, is stored between address 0x20000 and address 0x60000.
[0056] When an update is requested, the wireless update implementation program 308 downloads from the unit 150 a new application 368 which includes another wireless communication protocol 378 (New Wireless Protocol Stack 2) and with the help, for example, of the program 216, replaces the application 328 with the application 368.
[0057] This example has the disadvantage that applications 328 or 368 have their own wireless communication protocol which requires a significant amount of memory space because a wireless communication protocol 218 is already present in memory 104.
[0058] [Fig.4] illustrates an example of a program update method.
[0059] In the example shown, the wireless communication protocol 218 (Wireless Protocol Stack) is stored between an address 0x02000 and an address 0x20000 of the memory 104 and the update implementation program 348 (OTA App) is stored between address 0x01000 and address 0x02000. Programs 218 and 348 form the over-the-air update implementation program 308 (OTA Loader). The program management program 216 (BOOT MANAGER) is stored within memory 104 between address 0x00000 and address 0x01000. An application 420 (User App), constructed using a catalog 408 including all the symbols of the application programming interfaces (APIs) located in the program 308, is stored for example between address 0x20000 and address 0x60000.
[0060] When an update is requested, the wireless update implementation program 308 downloads from the unit 150 a new application 430 built using the same catalog 408.
[0061] This example does not allow program 308 to call application programming interfaces from application 420, only the opposite is possible.
[0062] To overcome these drawbacks, the embodiments provide a method for updating a program in a microcontroller, the program to be updated containing a first version of a download protocol in the microcontroller and a first version of an application, and the update containing a second version of the download protocol and a second version of the application, the method comprising the following steps: - delete the first version of the application from a first region; - downloading, in the first region, the second version of the download protocol using the first version of the download protocol present in a second region; - clear the contents of the second region; - download the second version of the application using the second version of the download protocol.
[0063] In the text, the terms “method for updating a program in a microcontroller” mean, equivalently, “method for updating a program stored in a microcontroller”.
[0064] An advantage of this method is that it becomes possible to separate a single program into several parts so that the part which contains the download protocol forms an update program, functional in itself without having to call elements contained in other parts of the program. It is thus possible to remove a part of the program, for example that containing the application, without jeopardizing the possibility of downloading, wirelessly, an update of a part of the program from the unit 150 by executing the download protocol. The memory space obtained when a part of the program is removed then becomes available to store the downloaded part of the program.
[0065] Another advantage is that it is possible to envisage that the part containing the download protocol can call elements of another part.
[0066] An additional advantage is that the first or second versions of the application do not need to contain a download protocol or a wireless communication protocol itself.
[0067] These advantages result in a saving in the memory space required for updates.
[0068] The program to be updated, as well as its update, are for example each in the form of a binary image.
[0069] The embodiments thus propose to execute the program to be updated or the updated program while their respective binary image includes missing parts. Indeed, the parts corresponding to the download protocol and to the application are downloaded and executed sequentially.
[0070] [Fig.5] illustrates a program updating method according to one embodiment.
[0071] In a step 500 of [Fig. 5], the program to be updated contains a first version of a first download protocol 308 in the microcontroller and a first version of the application which is for example similar to the application 220 (User App). The first version of the first download protocol 308 comprises the wireless communication protocol 218 similar, for example, to that of FIGS. 2 to 4 as well as the update implementation program 348 (OTA App) similar, for example, to that of FIGS. 3 or 4. The first version of the application 220 is stored for example in a first region 510 of the memory 104. The first version of the first download protocol 308 is stored in a second region 520 of the memory 104 for example.In the example shown, the first region is between address 0x2A000 and address 0x60000 of memory 104, and the second region is between address 0x01000 and address 0x2A000 of memory 104.
[0072] In one example, the program to be updated consists of the first version of the first download protocol 308 in the microcontroller and a first version of the application 220. This program is for example in the form of a single binary image. A binary image is a sequence of binary instructions, for example in hexadecimal form, which is executable for example by the processing unit 110. It is possible to request the processing unit 110 to execute the instructions included between two addresses of the memory 104 or to execute the instructions present in several regions each defined by two addresses. By constructing the program to be updated in the form of a single binary image, and by grouping in a region the instructions of the download protocol 308 necessary at least for the implementation of an update, it is then possible to delete a part of the binary image which is not used during a phase of the update.
[0073] In a step 502, which is subsequent to step 500, the instructions corresponding to the first version of the application are deleted for example using the program 216. The first region 510 of the memory 104 is therefore free for the storage of new data.
[0074] In a step 504, which is subsequent to step 502, an update is requested. Instructions of the first version of the first download protocol 308 contained in the second region are executed with, for example, the processing unit 110. The first download protocol 308 being autonomous with respect to the first region to implement update phases, a second download protocol 508 is downloaded from the unit 150 and stored in the first region 510 of the memory 104.
[0075] The second download protocol 508 contains for example a second version of the wireless communication protocol 518 (New Wireless Protocol Stack) as well as a second version of the update implementation program 548 (New OTA App).
[0076] The second download protocol 508 corresponds for example to a second version of the first download protocol 308.
[0077] In a step 506, subsequent to step 504, the second region of the memory 104 is erased, for example with the program 216 so that new data can be stored in this second region.
[0078] In a step 507, subsequent to step 506, instructions of the second download protocol 508, contained in the first region, are executed with for example the processing unit 110. The second download protocol 508 contains all the instructions for implementing the update phases. The second download protocol 508 downloads the second version of the application 230 from the unit 150 and then it is stored in the second region 510 of the memory 104.
[0079] In another example, after step 502, the second download protocol used may be an alternative download protocol differing from a second version of the first download protocol 508. This alternative protocol may be smaller in size than the first and / or second versions of the first protocol 308. In this example, after step 502, the alternative download protocol is downloaded into region 510 by the first version of the download protocol 308. This is followed by an erasure of the first version of the first download protocol 308 from region 520 and then the download of the second download protocol by the alternative download protocol in region 520. The alternative download protocol is then deleted from region 510. The alternative download protocol is intended to allow the download of the second version of the first download protocol, i.e. the second download protocol, which will be responsible for downloading the new version of the application.
[0080] The use of the alternative download protocol, which is for example completely different from a second version of the first download protocol 308 but which is smaller in size, makes it possible to carry out an update even if the memory 104 is smaller than the sum of the sizes of the first and second versions of the first download protocol 308,508. In one example, the alternative download protocol uses a different radio frequency communication protocol than that used by the first or second version of the first main download protocol 308,508. In one example, the alternative protocol is a binary image that does not work with an application.
[0081] [Fig.6] illustrates a program updating method according to one embodiment. The method of the figure comprises steps 500 to 506 of [Fig.5] as well as successive steps 610, 612 and 614.
[0082] In the example of [Fig.6], the processing unit 110 is configured to execute, when an update is requested, the instructions of the download protocol which are present only in the second region 520.
[0083] In step 610, which is subsequent to step 506, the program 216 copies the second version of the download protocol 508, which is present in the first region, so that it is stored in the second region 520.
[0084] In step 612, the first region is erased for example with the program 216.
[0085] In step 614, the second version of the application 230 is downloaded, from the unit 150, by executing the second version of the download protocol 508 stored in the second region 520. The second version of the application 230 is then stored in the first region 510.
[0086] In the examples of Figures 5 and 6, the storage space of the memory 104 may be equal to or greater than twice the size of the download protocol 308 and / or 508.
[0087] In the case where the download protocol that is downloaded after step 502 is different from a second version of the first download protocol then the size of the downloaded download protocol may be smaller. In this case, the size of the storage space of the memory 104 is potentially less than twice the size of one of the versions of the first download protocol 308.
[0088] [Fig.7] illustrates steps of the program update method of [Fig.5] according to one embodiment.
[0089] The example shown illustrates, for reasons of clarity, more particularly an additional embodiment of step 500.
[0090] In the example of step 500 of [Fig.7], the wireless communication protocol 218 only comprises a minimal part 718 (Wireless Protocol Stack (minimal)) of the first version of the communication protocol.
[0091] A complementary part of the wireless communication protocol 710 (Wireless Protocol Stack (extension)) is, in this example, stored in the first region with the first version of the application 220. In the example shown, the minimum part 718 of the wireless communication protocol is stored between addresses 0x02000 and 0x13800 and the complementary part of the wireless communication protocol 710 is stored between addresses 0x13800 and 0x2A000.
[0092] This minimal part 718 is configured so as, during the update phases, not to call elements present outside the first download protocol 308. However, during a phase where the application is executed, this minimal part 718 of the communication protocol can call application programming interfaces (APIs) of the complementary part of the wireless communication protocol 710.
[0093] The example of [Fig.7] makes it possible to reduce the memory size taken by the wireless communication protocol and therefore of the first download protocol 308 and / or of the second download protocol 508.
[0094] This can be useful in the case where the download protocol requires more memory space than the application. In this case, by removing a part of the communication protocol 710 which is not necessary for the update steps, it is thus possible, during an update, to be able to store the second version of the download protocol in the space freed by the first version of the application.
[0095] Even if the example of [Fig.7] is only applied to step 500, the person skilled in the art will be able to apply this embodiment to the other steps of [Fig.5] or also to the example of [Fig.6].
[0096] [Fig. 8] illustrates steps of the program update method of [Fig.5] according to one embodiment.
[0097] More particularly, [Fig.8] represents an embodiment of step 500 of [Fig.5].
[0098] In the example shown, the first and second regions 510, 520 and respectively the binary image stored therein, comprise several segments, in other words non-contiguous fragments, of the memory 104, each delimited by at least two addresses of the memory 104. Thus, the first version of the download protocol is stored in several segments 808a (OTA App(1 / 2)) and 808b (OTA App(2 / 2)) which are non-contiguous in the memory 104, in other words the segments 808a and 808b do not touch each other in the memory 104. The first version of the application is stored in three non-contiguous segments 820a (User App(1 / 3)), 820b (User App(2 / 3)), and 820c (User App(3 / 3)). The first version of the wireless communication protocol is stored in the form of two non-contiguous segments 818a (Wireless Protocol Stack (1 / 2)) and 818b (Wireless Protocol Stack (2 / 2)).
[0099] In the example of [Fig.8], segment 820b is included, at the level of its memory addresses, between segment 808a and segment 818b. Segment 820c is included between segment 818b and segment 808b. Segment 818a is included between segments 808b and 820a.
[0100] In the example shown, the first region 510 is formed by the segments 820a, 820b, 820c and the second region 520 is formed by the segments 818a, 818b, 808a and 808b.
[0101] Even if the example of [Fig.8] only represents step 500, the person skilled in the art will be able to apply this embodiment to the other steps of [Fig.5] or also to the example of [Fig.6].
[0102] An advantage of [Fig.8] is that it is compatible with the use of the symbol lists used in [Fig.4]. Another advantage is that it is possible to store all the secure fragments in one region and the fragments with a different security level in other regions.
[0103] [Fig.9] illustrates steps of the program update method of [Fig.5] according to one embodiment.
[0104] More particularly, [Fig.9] represents an embodiment of step 500 of [Fig.5].
[0105] In the example shown, fragments (1 / 7), (2 / 7) and (3 / 7) respectively comprising segments 808a, 808b, and 818a are stored in a first region of the memory 104. In the example shown, fragments (4 / 7), (5 / 7), (6 / 7) and (7 / 7) respectively comprising segments 818b, 820a, 820b and 820c are stored in a second region of the memory 104.
[0106] In the example of [Fig.9], the binary image which comprises the program to be updated is formed by different segments separated from each other. The first download protocol 308 contained in the binary image of the program to be updated must contain at least all the segments required to implement an update, for example wirelessly. On the other hand, the first download protocol 308 contained in the binary image of the program to be updated may contain segments other than those required at a minimum to implement the update of the first version of the program.
[0107] Even if the example of [Fig.9] only represents step 500, the person skilled in the art will be able to apply this embodiment to the other steps of [Fig.5] or also to the example of [Fig.6].
[0108] The described microcontroller can be used for the automotive industry. The electrification of motor vehicles generates high levels of microcontrollers in vehicles. Driving automation also includes the use of microcontrollers.
[0109] The microcontroller described can also be used in personal electronic equipment, for example for the purpose of increasing the radio frequency content, in devices with a 5G connection or more generally in connected devices. The device is for example a so-called smartphone or is part of an Internet of Things network. The microcontroller is for example integrated into a radio frequency communication product connected in 5G, NFC, WIFI, UWB (ultra wide band in English), near field type NFC (Near Field Communication in English), LORA, SIGFOX or even Bluetooth®. The product integrating the microcontroller potentially includes filters or protections against magnetic fields or electric discharges.
[0110] Various embodiments and variations have been described. Those skilled in the art will understand that certain features of these various embodiments and variations could be combined, and other variations will occur to those skilled in the art. In particular, even if the first and second regions have been described for the memory 104, other non-volatile memories could be used. In addition, even if only two regions have been described, the update could involve more than two regions as long as one or more regions includes a version of the download protocol which allows, when executed alone, to download portions of the update from the unit 150. Thus, several downloads separated in time of different portions of the update can be envisaged. In addition, the described update methods can be repeated to allow several successive updates.
[0111] Finally, the practical implementation of the embodiments and variants described is within the reach of the person skilled in the art from the functional indications given above. In particular, with regard to the download protocol which, even if it has been described in the text as being configured for wireless updating, could be adapted for wired updates. In this case, communication with the unit 150 will be done by wire.
Claims
Claims
1. A method of updating a program in a microcontroller (100), the program to be updated containing a first version of a first download protocol (308) in the microcontroller and a first version of an application (220) and the update containing a second download protocol (508) and a second version of the application (230), the method comprising the following steps: - erasing the first version of the application (220) from a first region (510); - downloading, in the first region (510), the second download protocol (508) using the first version of the first download protocol (308) present in a second region (520); - erasing the content of the second region (520); - downloading the second version of the application (230) using the second download protocol (508).
2. The method of claim 1, wherein the downloading of the second version of the application (230) is done in the second region (520).
3. The method of claim 1 or 2, wherein, after erasing the content of the second region (520) and before downloading the second version of the application (230), the content of the first region (510) is transferred to the second region (520) and then the content of the first region (510) is erased.
4. The method of claim 3, wherein the downloading of the second version of the application (230) is done in the first region (510).
5. The method of claim 1 to 4, wherein the first and second regions (510,520) are regions of a memory (104) of the microcontroller.
6. The method of claim 5, wherein said memory (104) has a size less than the sum of the size of the first and second versions of the first download protocol (308,508).
7. The method of claim 1 to 6, wherein the first version of the first download protocol (308) or the second download protocol (508) includes a wireless update download protocol (348,548) and a wireless communication protocol (218,518).
8. The method of claim 7, wherein the wireless update download protocol (348,548) and the wireless communication protocol (218,518) are configured so that, when an update is requested, they are completely executable without using elements contained in the first region (510).
9. The method of claim 7 or 8, wherein the wireless communication protocol (218,518) is configured to, when executing the application (220,230), call upon elements from a region different from that where it is stored.
10. The method of claim 9, wherein said elements are parts of the wireless communication protocol (218,518) that are not needed during an update.
11. A method according to any one of claims 5 to 10, as dependent on claim 2, wherein said second region (520) is delimited by at least two addresses of the memory (104).
12. A method according to any one of claims 5 to 10, as dependent on claim 2, wherein the second region (520) comprises several non-contiguous segments of the memory (104), each delimited by at least two addresses of the memory.
13. A method according to any one of claims 1 to 12, wherein a processing unit (216) of the microcontroller is configured to, when an update is requested, execute instructions of the download protocol (308, 508) written in the second region (520).
14. A method according to any one of claims 5 to 13 as dependent on claim 4, wherein said first region (510) is delimited by at least two memory addresses.
15. A method according to any one of claims 5 to 14 as dependent on claim 4, wherein the first region (510) comprises several non-contiguous segments of memory each delimited by at least two memory addresses.
16. A method according to any one of claims 1 to 12, or 14 to 15, wherein a processing unit (216) of the microcontroller is configured to, when an update is requested, execute download protocol instructions (308,508) written in the first region (510).
17. A method according to any one of claims 1 to 16, wherein: the program to be updated is in the form of a first binary image containing the first version of the first download protocol (308) and the first version of the application (220); and the update is in the form of a second binary image containing the second download protocol (508) and the second version of the application (230).
18. The method of any one of claims 1 to 17, wherein the second download protocol (508) is a second version of the first download protocol (308).
19. The method of any one of claims 1 to 18, wherein downloading the second download protocol (508) comprises downloading an alternative download protocol used by the first version of the first download protocol (308) to download the second download protocol (508).
20. A microcontroller (100) comprising a program containing a first version of a first download protocol (308) in the microcontroller and a first version of an application (220), the microcontroller (100) being configured to implement the method according to any one of the preceding claims.
21. System (80) comprising an update unit (150) and a microcontroller (100) according to claim 20, the update unit (150) being configured to transmit, to the microcontroller (100) and during an update, sequentially, the second download protocol (508) and the second version of the application (230).
Citation Information
Patent Citations
Method for updating a firmware on a low memory device
US10564873B2
System for downloading software
US6047128A
Software update method, apparatus and system
WO2003025742A2