Home      Company      Customers      Solutions      Technology      Products      Publications      Press      Contact Us    
  orange box ACG STACK-LESS CODE GENERATION

Proprietary and patent pending technology analyzes the program after it is compiled to a specific target processor. C code is then generated with identified essential OS system services fused with it. The C program is then compiled for a low power and generally lower cost target processor. A small footprint executable is thus generated with essential OS services embedded in the executable. 

We refer to the executables created with this technology as soft chips: compact "soft" embodiments of embedded intelligence.
 
Removing a generic OS from the equation, results in far lower resource overheads (CPU, memory). Software can now use lower cost, 8 bit or 16 bit  processors, less RAM required and  lower leakage currents from less hardware overhead support.
 
Example: software for a 2 radio wireless AP and bridge can run on a 8 bit low cost processor within its 128kB onboard RAM. A generic OS based approach would required a 32 bit processor and at least 2Mb RAM. Power consumption is estimated to be reduced by a third, based on reduced transistors, RAM and clock speed. 
   
Extensions of soft chips technology include splitting up the threads of a multi-threaded process so resource intensive threads may run on separate processors. Code is automatically generated to enable each thread to contain OS service components required to run separately. Intra-thread communication and shared resource access code is automatically inserted in the code generation process. 

See also: Features and Benefits and  White Paper

orange box ACG CODE DEVELOPMENT  METHODOLOGY

To perform an accurate analysis of complex embedded systems, we model behavior expected of embedded device by building a custom simulation environment to "run" a virtual model of the device. Control algorithms are tested first in simulation - on the virtual device - and later by hooking the simulation inputs to the real device. Both the real and its virtual counterpart are fed the same set of inputs. Outputs were compared to determine errors in either real devices or virtual models. 

We have implemented several special purpose simulation environments with a common communications framework for the real and virtual device. We have performed extensive performance analysis in the simulation environment - with the virtual device- to accelerate the embedded code development process. On deployment, the simulation environment becomes the system controller for the real device. This re-usable rapid prototyping approach has enabled us to deploy complete embedded systems in 2-4 months. 

[Features and Benefits]