Incremental updates in static libraries
AssigneeTrillium, Inc.
InventorsAaron Sanjaya Benedek, Samir Kumar Mishra
Life of this patent
Estimating the term…
Abstract
A limited memory system uses statically linked code from different entities, with each entity having a fixed code space. Entry points for each code space are located at a fixed external address and referenced to a jump address inside each code space. Dummy code containing relevant entry point addresses is used to simulate the code of other entities for compilation and linking. Each entity is able to update its own code without the need for source code from the other entities that would typically be required in traditional statically-linked code.
Claims20
A method of updating an electronic control unit having a partitioned memory, each partition of the partitioned memory having a partition address space and a virtual mapping table, the method comprising:
- receiving a payload via a network connection;
- decrypting the payload;
- extracting from the payload a partition identifier indicating which partition in the memory is to receive the update;
- extracting from the payload a code update reference, the code update reference having at least memory starting location within the partition address space;
- extracting from the payload the code update;
- extracting from the payload an updated virtual mapping table;
- installing the code update at the memory starting location;
- and
- updating the virtual mapping table of the partition with the updated virtual mapping table.
A memory for an electronic control unit comprising:
- a plurality of partitions, each partition including:
- a predefined first memory address corresponding to a top address of the partition;
- a predefined second memory address corresponding to a bottom address of the partition, the top address and the bottom address defining a partition address space that is non-overlapping with any other partition of the plurality of partitions;
- a virtual mapping table having a fixed size and located at a predetermined memory area within the partition address space;
- and
- an application range located between the top address and the bottom address excluding the virtual mapping table, the application range storing coded data having at least one entry point referenced in the virtual mapping table.
A system that generates and installs incremental updates to a memory in a controller, the system comprising:
- a host system including:
- a first processor and first memory that execute a compiler, the compiler generating updated code from a source file and pseudo-static links to external resources;
- a package builder that generates an update package including the updated code and a reference table associated with installing the updated code at the controller;
- the controller including:
- a network interface;
- a second processor and second memory, the second memory including a plurality of predetermined partitions having fixed boundaries of non-overlapping address ranges, each partition including a virtual mapping table and code space that is non-overlapping with the virtual mapping table;
- and
- an installer that receives the update package, installs the updated code in the code space and updates the virtual mapping table in accordance with the reference table.
Dependencies are inferred from the claim text.