Using software IP: best practices for embedded systems design
When developing embedded software, a key decision that needs to be addressed is "Make or buy?" It is common practice to utilize proven software IP, such as real time operating systems, in modern designs. The scope for licensing software components is expanding as time-to-market pressures make their use more attractive.
The main concern of developers is the usability and quality of such IP. This article looks at the precautions that may be taken, the best practices for selecting IP, the role of standard validation suites, and where open source fits in.
For many engineers, the attraction of programming embedded systems is the opportunity to start from scratch – to write every last byte of software for a device and create something from nothing. I know that this was an incentive for me. However attractive this concept may be to an engineer, it does not really make business sense, partly because this will inevitably result in “reinventing the wheel” – developing something which has already been created – but also because time to market is always limited, so reducing development time is necessarily a priority.
Almost all embedded applications nowadays include some licensed software components. This may be as simple as a runtime library provided with a compiler, but can be as complex as an operating system, including networking stacks, a file system, and user interface. In any case, software intellectual property (IP) needs to be selected with care.
- IP Selection
- The selection process for software IP is subject to a long list of criteria including:
- Functionality
- Quality
- Price
- Commercial factors
- Licensing
Related Semiconductor IP
- AES GCM IP Core
- High Speed Ethernet Quad 10G to 100G PCS
- High Speed Ethernet Gen-2 Quad 100G PCS IP
- High Speed Ethernet 4/2/1-Lane 100G PCS
- High Speed Ethernet 2/4/8-Lane 200G/400G PCS
Related White Papers
- Designing low-energy embedded systems from silicon to software
- Self-testing in embedded systems: Software failure
- Yes, you can develop embedded software using agile methodology
- Managing the complexity of embedded software development through design automation tools
Latest White Papers
- New Realities Demand a New Approach to System Verification and Validation
- How silicon and circuit optimizations help FPGAs offer lower size, power and cost in video bridging applications
- Sustainable Hardware Specialization
- PCIe IP With Enhanced Security For The Automotive Market
- Top 5 Reasons why CPU is the Best Processor for AI Inference