This content is not included in your SAE MOBILUS subscription, or you are not logged in.
Program Overlay Mechanism for Engine Control Module
ISSN: 0148-7191, e-ISSN: 2688-3627
Published October 06, 2010 by SAE International in United States
Annotation ability available
As the complexity and size of algorithms dedicated to EMS continually grows more hardware resources, like processing speed and memory are demanded, increasing the cost of the final product (ECUs in this case). This paper presents a technique aimed at saving flash memory space by pulling pieces of executable binary code out of the microprocessor's flash area and storing them in an external device like an EEPROM. When the application needs to execute that piece of code stored at EEPROM, it will request it to be downloaded into an available RAM memory area and run it from there. For such it is required that some sort of allocation technique be applied once the RAM size is by far much smaller than the EEPROM storage device's size meaning that the whole content of EEPROM cannot be downloaded single shot into RAM. It happens to be necessary a strategy to break the flash application code down in smaller pieces to be stored at EEPROM.
This technique can be summarized in 6 steps:
Software development at the host platform phase: 1. Provide a strategy to decide what part of the current implementation is worth to be moved to EEPROM. 2. Separate that part of code by redesigning and refactoring the current application. 3. Compile and link that code so it can be separately stored at EEPROM.
Software running at the target platform phase: 4. Check if the code has been already downloaded in to RAM. 5. If not, look up the RAM and find a free space to house the code. 6. Download the code from EEPROM to RAM. 7. Execute it in RAM.
This algorithm is an alternative approach to the very well known industry standard memory managers base on the implementations of "Best Fit," "Worst Fit," "Sequential Fit," as well as the combination of them.
CitationCruz, R. and Filho, O., "Program Overlay Mechanism for Engine Control Module," SAE Technical Paper 2010-36-0157, 2010, https://doi.org/10.4271/2010-36-0157.
- Page-Jones, Meilir, “Practical Guide to Structured Systems Design”, 2nd. Ed. Prentice Hall, ISBN 978-8120314825, May 14, 1988.
- Tenenbaum, Aaron M., “Data Structures using C”, Prentice Hall; Facsimile edition (December 11, 1989)
- Blunden, William. “Memory Management: Algorithms and Implementations in C/C++”. Jones & Bartlett Publishers; 1st. ed. 2002. ISBN: 978-1556223471.
- Jones, Richard and Lins, Rafael D. “Garbage Collection: Algorithms for Automatic Dynamic Memory Management”. Wiley, 1996, ISBN: 978-0471941484.