US 12,321,739 B2
Microcontroller, computer program product, and method for adding an additional function to a computer program
Frederic Ruelle, Marigné-Laillé (FR)
Assigned to STMicroelectronics (Grand Ouest) SAS, Le Mans (FR)
Filed by STMicroelectronics (Grand Ouest) SAS, Le Mans (FR)
Filed on Apr. 21, 2022, as Appl. No. 17/660,092.
Claims priority of application No. 2104197 (FR), filed on Apr. 22, 2021.
Prior Publication US 2022/0342655 A1, Oct. 27, 2022
Int. Cl. G06F 8/65 (2018.01); G06F 8/41 (2018.01); G06F 12/14 (2006.01)
CPC G06F 8/65 (2013.01) [G06F 8/41 (2013.01); G06F 12/1408 (2013.01); G06F 2212/1052 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method, comprising:
configuring, by a microcontroller, a first memory to store a table to indicate whether one or more additional functions for a computer program installed on the microcontroller are stored in a second memory, the table comprising:
a first field for storing identifiers, each identifier associated with a respective additional function, and
a second field for storing pointers, each pointer associated with a starting memory address of the second memory in which a respective additional function is stored, the second field including a null pointer for each additional function not stored in the second memory;
obtaining, by the microcontroller, a compiled code of an additional function to the computer program and an identifier of the additional function, wherein obtaining the compiled code of the additional function causes the microcontroller to add functionality to the computer program installed on the microcontroller without modifying compiled code or without obtaining a new version of the computer program installed on the microcontroller;
storing, by the microcontroller, the compiled code of the additional function in the second memory, wherein the second memory is of a non-volatile memory type; and
storing, by the microcontroller in the first memory, a pointer in the second field of the table, the pointer pointing to a memory address of the second memory in which the compiled code of the additional function is stored, wherein the first memory is of a volatile memory type.