Given the close interaction of the software stack with the hardware development flow, this section covers the special considerations to be aware of for embedded system designs. Following are the key steps in this development flow. Each step has unique challenges depending on whether a system is embedded or server attached.
- Hardware and software co-development
- Architecture
- Datapath and transport layer
- Control plane
- Memory hierarchy
- Software development for effective use of hardware acceleration
- Boot and OS considerations
- Software application development
- Software debug