8.4 Choosing a High-Level Language for Embedded Systems
8.4.1 Basic Requirements
Before choosing a high-level programming language, four fundamental questions need to be answered:
- Which language features do we really need (essential requirements)?
- Which language features are needed to produce high-quality software (primary requirements)?
- Which language features would be really useful (secondary requirements and performance assessment)?
- Which language features would be nice to have (flavor of the month (take your pick))?
(a) Essential Features
Essential features are those needed for the development of application software for loading onto a "bare-bones" embedded machine. A minimal set of requirements includes:
- Assembly language and machine code interfacing
- Absolute addressing
- Access to and control of hardware
- Interrupt handling
- Bit manipulation
- Processor (or environment) specific extensions to the core language ...