Application programming interface with inverted memory protocol for embedded software systems
First Claim
1. A method for creating an algorithm module that can be used without change in a plurality of frameworks, the method comprising the steps of:
- designing the algorithm module in a manner that renders the algorithm module reentrant within a preemptive environment;
coding a plurality of data access instructions of the algorithm module in a manner that renders the algorithm module and the plurality of data access instructions relocatable; and
providing a memory interface within the algorithm module that supports both design-time object instantiation and dynamic object instantiation;
wherein the dynamic object instantiation comprises memory allocation by any framework in the plurality of frameworks in response to memory usage requirements reported to the framework by the algorithm module through the memory interface; and
wherein the design-time object instantiation comprises memory initiation by any framework in the plurality of frameworks in response to memory usage requirements reported to the framework by the algorithm module through the memory interface.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method is provided for enabling the reuse of algorithms in multiple application frameworks with no alterations required of the algorithm once it is developed. An inverted memory allocation mechanism enables various algorithm modules to be integrated into a single application without modifying the source code of the algorithm modules. An algorithm module is designed in a manner that renders the algorithm module reentrant within a preemptive environment. Each data access instruction of the algorithm module is coded in a manner that renders the algorithm module and all of the data access instructions relocatable. A memory interface is provided within the algorithm module that supports both design-time object instantiation and dynamic object instantiation.
47 Citations
11 Claims
-
1. A method for creating an algorithm module that can be used without change in a plurality of frameworks, the method comprising the steps of:
-
designing the algorithm module in a manner that renders the algorithm module reentrant within a preemptive environment; coding a plurality of data access instructions of the algorithm module in a manner that renders the algorithm module and the plurality of data access instructions relocatable; and providing a memory interface within the algorithm module that supports both design-time object instantiation and dynamic object instantiation; wherein the dynamic object instantiation comprises memory allocation by any framework in the plurality of frameworks in response to memory usage requirements reported to the framework by the algorithm module through the memory interface; and wherein the design-time object instantiation comprises memory initiation by any framework in the plurality of frameworks in response to memory usage requirements reported to the framework by the algorithm module through the memory interface. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for converting an existing algorithm to an algorithm module that can be used without change in a plurality of frameworks, the method comprising the steps of:
-
providing a memory interface for the existing algorithm to form the algorithm module such that the algorithm module supports both design-time object instantiation and dynamic object instantiation; wherein the dynamic object instantiation comprises memory allocation by any framework in the plurality of frameworks in response to memory usage requirements reported to the framework by the algorithm module through the memory interface; and wherein the design-time object instantiation comprises memory initiation by any framework in the plurality of frameworks in response to memory usage requirements reported to the framework by the algorithm module through the memory interface; revising the existing algorithm in a manner that renders the algorithm module reentrant within a preemptive environment; and verifying that a plurality of data access instructions of the algorithm module are coded in a manner that renders the algorithm module and the plurality of data access instructions relocatable. - View Dependent Claims (8, 9, 10, 11)
-
Specification