Embedded System String Logging via Non-Loadable Code Section
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Monitoring the progress of a program running on an embedded system typically requires the processor to halt processing excessively when transferring human-readable messages or strings to a host device, due to the need for storing these messages in the embedded system's memory.
Innovation Solution
Generating executable code that includes a special log section with references to human-readable messages or strings, marked as non-loadable, allowing the messages to be logged without being stored in the embedded system's memory, with the references stored in a log buffer and later transferred to a host device for logging.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If human-readable messages or strings are stored in the embedded system's memory for logging, then the messages can be transferred to the host device, but the processor must halt processing for excessive time during transfer
Solution Approach 1:
The patent extracts the string data from the embedded system's memory by storing strings in a non-loadable section of the executable code. Only references (pointers) to these strings are kept in the embedded system's memory, while the actual string data resides in the code section that is transferred to the host device. This extraction eliminates the need to transfer string data through memory, thereby reducing processor halts and improving processing continuity.
2Reliability
If human-readable messages or strings are stored in the embedded system's memory, then logging can be performed, but the memory resources are occupied
Solution Approach 1:
The patent extracts the string data from the embedded system's memory space by placing it in a non-loadable section of the executable code. Only references (pointers) to these strings are stored in the embedded system's memory, while the actual string data resides in the code section. This significantly reduces the memory footprint in the embedded system while maintaining full logging capability.
3Reliability
If the processor halts to transfer messages to the host device, then messages can be logged, but processing efficiency decreases
Solution Approach 1:
The patent extracts the string data from the embedded system's memory to a non-loadable code section, allowing the processor to transfer only compact references rather than full string data. This extraction approach minimizes the data transfer volume and time required, thereby reducing processor halts and maintaining processing efficiency.
Solution Approach 2:
The patent prepares the string data in advance by storing it in a non-loadable section of the executable code during the build process. The linker assigns addresses to these strings and embeds references in the code before execution. This preliminary preparation allows the runtime system to operate efficiently with minimal data transfer, reducing processor halt time during actual logging operations.
Data Source
AI summary
Methods for logging strings during execution of a program running on an embedded system without storing the strings in the memory of the embedded system include, during the build process, receiving source code for a program that comprises one or more log statements that identifies a string to be logged; generating object code based on the source code that comprises a special log section that includes the identified strings, and, for each log statement one or more instructions that cause a reference to the corresponding string to be stored in memory of the embedded system; generating execution code based on the object code wherein the special log section is marked as non-loadable and each reference is a location of the corresponding string in the special log section; and, loading the generated executable code into the memory of the embedded system such that the identified strings are not loaded into the memory of the embedded system.


