Embedded Software Design and Development
The embedded system software development has the same Software Development Life Cycle (SDLC) just like any other software development, plus special consideration for resource constraints, including CPU, time, memory, operating system, multi-tasking concurrency, and many other non-functional attribute constraints. In order to reduce the time-to-market and guarantee the reliability of the embedded system product, software engineering methodology is recommended for the software design and development. Because the embedded software is not deployed on a general purpose computer system, the embedded software in C/C++ or other high level programming languages must be developed and tested on a cross-platform machine such as a PC, and then loaded to a target microcontroller memory to be tested as shown in Figure 2.1.
For a successful embedded system development, embedded system hardware and software co-design based on the system specification is also very necessary to get the prototype working smoothly. In the co-design phase, software analysts/designers need to work with hardware team members to decide on the type of microcontrollers and microprocessors in accordance with the requirements of the speed and memory, power consumption, the number of I/O devices such as ADC, cost per unit, size and packaging, and others. Also, software development tools must be selected and the partition between software and hardware implementation should be decided in the co-design phase, as well as decisions such as time delay implementation by software program or with a hardware timer.
KeywordsEmbed System Finite State Machine Earliest Deadline First Context Switch Embed Software
- 1.D. Harel, State Charts: A visual Formalism for Complex Systems, Science of Computer Programming, 1987Google Scholar
- 2.Rajesh Gupta, mesl.ucsd.edu - /gupta/cse237b-f07/Lectures/, 2007Google Scholar
- 3.Michael Point, Embedded C, Addison Wesley, 2002Google Scholar
- 4.C51 Primer, www.esacademy.com/automation/docs/c51primer/
- 5.Embedded software design tutorial, www.freertos.org/tutorial/solution1.html, 2007
- 6.RTX51 Tiny User’s Guide, http://www.keil.com/support/man/docs/tr51/
- 7.μVision®; User’s Guide, http://www.keil.com/support/man/docs/uv3/