We squeeze your software until it fits onto your embedded target. Whether it is working memory (RAM), program storage (ROM), or any other kind of memory resource that is scarce, our experts have years of experience in optimizing software for memory-constrained targets.
Where we can Help
Whether you are looking to transition to a smaller, more cost-effective device, or you want to free up space on your current device for new features, we bring together the essential knowledge of hardware, software design, and understanding of compiler behavior to achieve that goal.
Here are specific ways we help:
- Analyze how memory-efficient the compiler translates and lays out your algorithms and data structures in your binary.
- Refactor and optimize existing implementations to minimize memory footprint.
- Devise guidelines for your developers on how to program memory-efficiently.
- Implement a measurement system as part of your continuous integration (CI) environment to effectively monitor memory-related requirements.
- Create static analysis tools to catch inefficient C/C++ constructs before they enter your code base.