Software Abstraction Layers Facilitate HW/SW Co-Development
Using a custom SoC to give your product a competitive edge is a proven winning strategy, but concomitant risks must be managed. HW/SW co-development has long held the promise of shortening product schedules and reducing program risk by running software on a SoC as it is being developed, and today's HW/SW co-development tools are delivering on that promise. But being productive using an adhoc suite of non-interoperable tools can still be challenging.
This article presents a methodology that enables software engineers to use complex HW/SW co-development tools for ARM core-based solutions without having to learn how the hardware tools work. The software team is provided a HW/SW co-development platform consisting of an operating system and an SoC abstraction layer. This platform presents a consistent interface to the software while running on the various execution environments that model different aspects of the SoC under development, such as HDL, mixed C/HDL, and gate-level models.