# US 12,217,057 B2 · Embedded system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,217,057 B2
- Document ID: US12217057B2
- Status: Granted
- Kind: B2
- Application number: 18/342,150
- Filed: 2023-06-27
- Published: 2023-10-26
- Granted: 2025-02-04
- Earliest claimed: 2019-12-31
- Assignees: STMicroelectronics Belgium NV
- Applicants: Stmicroelectronics Belgium
- Inventors: Youssef Ahssini; Guy Restiau
- Web page: https://patentgrep.com/patent/US12217057B2

## CPC

- G06F 9/30043: {LOAD or STORE instructions; Clear instruction}
- G06F 9/44505: {Configuring for program initiating, e.g. using registry, configuration files}
- G06F 9/44557: {Code layout in executable memory}
- G06Q 20/10: specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Embedded systems and methods of reading or writing data or instructions of at least one application in a non-volatile memory are disclosed. A method includes reading or writing data or instructions of at least one application in a non-volatile memory of an embedded system. The data or instructions transit through a memory area and are interpreted by a distinct program of an operating system of the embedded system.

## Claims

### Claim 1

A method, comprising:
storing first initialization instructions associated with a first application in a first area of a non-volatile memory of an embedded system, the embedded system having a microprocessor, the first initialization instructions being separate from instructions of the first application and being separate from instructions of an operating system of the embedded system; and
executing the first initialization instructions to initialize the first application, the initializing the first application including storing instructions, data, or instructions and data associated with the first application in one or more addresses of one or more second areas of the non-volatile memory, the one or more addresses being determined under control of the first application, wherein the first initialization instructions include configuration instructions.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the initializing the first application comprises transferring instructions, data or instructions and data associated with the first application from a volatile memory of the embedded system to the one or more addresses determined under control of the first application.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the initializing the first application comprises transferring instructions, data or instructions and data associated with the first application from a third area of the non-volatile memory of the embedded system to the one or more addresses determined under control of the first application.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the first application is implemented by the operating system.

### Claim 5 (depends on 1)

The method according to claim 1, wherein the first application is configured to store data into the non-volatile memory.

### Claim 6 (depends on 5)

The method of claim 5, wherein the data includes a cipher key.

### Claim 7 (depends on 1)

The method of claim 1, wherein,
the first area stores second initialization instructions associated with a second application; and
in an application initialization phase of operation, processing circuitry of the microprocessor executes the second initialization instructions to initialize the second application, the initializing the second application including storing instructions, data, or instructions and data associated with the second application in one or more addresses of the one or more second areas of the non-volatile memory, the one or more addresses into which the instructions, data or instructions and data associated with the second application are stored being determined under control of the second application.

### Claim 8 (depends on 1)

The method of claim 1, comprising:
responding, by the operating system of the embedded system, to a request to update the first application by writing instructions associated with the update into the first area of the non-volatile memory; and
updating, by an interpreter of the non-volatile memory separate from the operating system, the first application based on the instructions associated with the update stored in the first area of the non-volatile memory, the updating including executing, by the interpreter of the non-volatile memory, the instructions associated with the update stored in first area of the non-volatile memory.

### Claim 9

An embedded system, comprising:
a non-volatile memory having a plurality of memory areas including:
a first area storing first initialization instructions associated with a first application; and
one or more second areas, the first initialization instructions being separate from instructions of the first application and being separate from instructions of an operating system of the embedded system; and
processing circuitry coupled to the non-volatile memory, wherein in an application initialization phase of operation, the processing circuitry executes the first initialization instructions to initialize the first application, the initializing the first application including storing instructions, data, or instructions and data associated with the first application in one or more addresses of the one or more second areas of the non-volatile memory, the one or more addresses being determined under control of the first application.

### Claim 10 (depends on 9)

The embedded system according to claim 9, comprising a volatile memory area, wherein the initialization comprises transferring instructions, data or instructions and data associated with the first application from the volatile memory area to the one or more addresses determined under control of the first application.

### Claim 11 (depends on 9)

The embedded system according to claim 9, wherein,
the first area stores second initialization instructions associated with a second application; and
in the application initialization phase of operation, the processing circuitry executes the second initialization instructions to initialize the second application, the initializing the second application including storing instructions, data, or instructions and data associated with the second application in one or more addresses of the one or more second areas of the non-volatile memory, the one or more addresses into which the instructions, data or instructions and data associated with the second application are stored being determined under control of the second application.

### Claim 12

A chip card, comprising:
a microprocessor having an operating system; and
a non-volatile memory having:
a first non-volatile memory area storing first initialization instructions associated with a first application, the first initialization instructions being separate from instructions of the first application and being separate from instructions of the operating system of the microprocessor; and
a second non-volatile memory area, wherein execution of the first initialization instructions initializes the first application, the initializing the first application including storing instructions, data, or instructions and data associated with the first application in one or more addresses of the second non-volatile memory area, the one or more addresses being determined under control of the first application.

### Claim 13 (depends on 12)

The chip card according to claim 12, wherein
the first non-volatile memory area stores second initialization instructions associated with a second application, the second initialization instructions being separate from instructions of the second application and being separate from instructions of the operating system, wherein execution of the second initialization instructions initializes the second application, the initializing the second application including storing instructions, data, or instructions and data associated with the second application in one or more addresses of the second area of the non-volatile memory, the one or more addresses being determined under control of the second application.

### Claim 14 (depends on 13)

The chip card according to claim 13, wherein, in operation, data or instructions transit from the first application to the second application via a volatile memory area.

### Claim 15 (depends on 12)

The chip card of claim 12, wherein the operating system of the microprocessor, in operation:
responds to a request to update the first application by writing instructions associated with the update into the first non-volatile memory area; and
updating, by an interpreter of the non-volatile memory separate from the operating system, the first application based on the instructions associated with the update stored in the first non-volatile memory area, the updating including executing, by the interpreter of the non-volatile memory, the instructions associated with the update stored in first area of the non-volatile memory.

### Claim 16

A non-transitory computer-readable medium having contents which cause an embedded computing system to perform a method, the method comprising:
storing first initialization instructions associated with a first application in a first non-volatile memory area of an embedded system, the first initialization instructions being separate from instructions of the first application and being separate from instructions of an operating system of a microprocessor of the embedded system; and
executing the first initialization instructions to initialize the first application, the initializing the first application including storing instructions, data, or instructions and data associated with the first application in one or more addresses of one or more second non-volatile memory areas of the embedded system, the one or more addresses being determined under control of the first application.

### Claim 17 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the first non-volatile memory area is an area of a non-volatile memory of a chip card of the embedded system.

### Claim 18 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the method comprises:
responding to a request to update the first application by writing instructions associated with the update into the first non-volatile memory area; and
updating, by an interpreter of the non-volatile memory separate from the operating system, the first application based on the instructions associated with the update stored in the first non-volatile memory area, the updating including executing, by the interpreter of the non-volatile memory, the instructions associated with the update stored in first area of the non-volatile memory.

### Claim 19

A non-transitory computer-readable medium having contents which cause an embedded computing system to perform a method, the method comprising:
responding, by an operating system of the embedded system, to a request to update an application stored in a first area of a non-volatile memory of the embedded system by writing instructions associated with the update into a second area of the non-volatile memory; and
updating, by an interpreter of the non-volatile memory separate from the operating system, the application stored in the first area of the non-volatile memory based on the instructions stored in the second area of the non-volatile memory, the updating including executing, by the interpreter of the non-volatile memory, the instructions stored in second area of the non-volatile memory.

### Claim 20 (depends on 19)

The non-transitory computer-readable medium of claim 19, wherein the instructions include configuration instructions.
