US 12,135,874 B2
Live firmware update of flash memory
Sira Parasurama Rao, Richmond, TX (US)
Assigned to TEXAS INSTRUMENTS INCORPORATED, Dallas, TX (US)
Filed by Texas Instruments Incorporated, Dallas, TX (US)
Filed on Mar. 23, 2022, as Appl. No. 17/702,561.
Prior Publication US 2023/0315284 A1, Oct. 5, 2023
Int. Cl. G06F 8/654 (2018.01); G06F 3/06 (2006.01); G06F 8/656 (2018.01)
CPC G06F 3/0604 (2013.01) [G06F 3/0632 (2013.01); G06F 3/0659 (2013.01); G06F 3/0679 (2013.01); G06F 8/654 (2018.02); G06F 8/656 (2018.02)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
performing a live firmware update (LFU) of a single memory bank in an integrated circuit (IC) using the single memory bank without power reset of the IC between receipt by the IC of a command to perform the LFU and a re-enabling of interrupt response after the LFU;
wherein performing the LFU comprises:
receiving, using a memory bank, first instructions to be executed by a processor to perform an interrupt service routine;
writing the first instructions to an application portion of the memory bank to replace second instructions previously stored by the memory bank;
executing the first instructions to perform the following steps in order:
in a first step, while maintaining an interrupt response, initializing a variable specified by the first instructions and not specified by the second instructions, and not changing a variable specified by the first instructions;
in a second step, after determining that there is no interrupt response in process, disabling the interrupt response and proceeding to a third step:
in the third step, initializing a stack used to save and restore context, updating an interrupt vector, and updating a function pointer; and
in a fourth step, re-enabling the interrupt response.