Embedded System Programming via Gateway Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Embedded systems, such as sensor nodes, typically require specialized programming skills due to the use of low-level languages like C/C++ or domain-specific languages, which limits their programming efficiency and accessibility.
Innovation Solution
Programming embedded systems using high-level languages like C# or Java within a software development framework that includes class libraries and tools, allowing applications to be executed on a gateway computing device rather than the embedded system itself, thereby avoiding the need for a virtual execution system and providing a more accessible programming model.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If low-level languages like C/C++ are used for programming embedded systems, then the system can be programmed with direct hardware control, but the programming requires specialized skill set and reduces accessibility
Solution Approach 1:
The patent introduces an intermediary layer consisting of a high-level programming language runtime environment and a compilation system that translates high-level code into low-level machine code. This intermediary allows programmers to use accessible high-level languages while the system executes efficient low-level code on the embedded device, resolving the contradiction between programming accessibility and execution efficiency.
2Ease of operation
If a virtual execution system is deployed on the embedded system to enable high-level language execution, then programming accessibility is improved, but the embedded system's limited resources are consumed
Solution Approach 1:
The patent segments the execution environment by separating the high-level language runtime and virtual machine from the embedded system. The runtime environment is deployed on a development or gateway system with sufficient resources, while the embedded system only receives compiled machine code. This segmentation allows high-level programming accessibility without consuming the embedded system's limited resources.
3Productivity
If high-level languages are used for embedded system programming, then programming efficiency and accessibility are improved, but the application requires a virtual execution system on the embedded device which consumes resources
Solution Approach 1:
The patent uses copying by compiling high-level language source code into machine code that can be executed directly on the embedded system without requiring the original high-level runtime environment. The compiled code is a self-contained copy of the application that runs natively on the resource-constrained device, maintaining programming efficiency benefits while eliminating the need for complex virtual execution systems on the embedded device.
Data Source
AI summary
The disclosure describes a method for programming applications for embedded systems such as sensor nodes. In an embodiment, this comprises writing embedded system applications in a high-level language such as C# or Java using a software development framework which includes a set of tools and class libraries. The class libraries contain pre-written code to carry out tasks which may be required of an embedded system. The class libraries may be extended following identification of a need for a particular function in an embedded system. Developed applications may be subsequently stored on the embedded system but executed on a gateway computing device which interacts with the embedded system. This means that the application(s) can be executed without requiring the presence of a virtual execution system located on the embedded system while allowing a high-level programming model for application programmers.


