
Contents
Preface |
|
| 7 | ||
1 | Overview |
| 9 | ||
| 1.1 | Scope of the Standard | 10 | ||
|
| 1.1.1 | Rules and Guidelines | 11 | |
| 1.2 | Requirements of the Standard | 11 | ||
| 1.3 | Goals of the Standard | 12 | ||
| 1.4 | Intentional Omissions | 12 | ||
| 1.5 | System Architecture | 13 | ||
|
| 1.5.1 | Frameworks | 13 | |
|
| 1.5.2 | Algorithms | 14 | |
|
| 1.5.3 | Core | 14 | |
2 | General Programming Guidelines | 15 | |||
| 2.1 | Use of C Language | 16 | ||
| 2.2 | Threads and Reentrancy | 16 | ||
|
| 2.2.1 | Threads | 16 | |
|
| 2.2.2 Preemptive vs. | 17 | ||
|
| 2.2.3 | Reentrancy | 17 | |
|
| 2.2.4 | Example | 18 | |
| 2.3 | Data Memory | 19 | ||
|
| 2.3.1 | Memory Spaces | 20 | |
|
| 2.3.2 | Scratch versus Persistent | 20 | |
|
| 2.3.3 | Algorithm versus Application | 22 | |
| 2.4 | Program Memory | 23 | ||
| 2.5 | 23 | |||
| 2.6 | Use of Peripherals | 24 | ||
3 | Algorithm Component Model | 25 | |||
| 3.1 | Interfaces and Modules | 26 | ||
|
| 3.1.1 | External Identifiers | 27 | |
|
| 3.1.2 | Naming Conventions | 28 | |
|
| 3.1.3 Module Initialization and Finalization | 28 | ||
|
| 3.1.4 | Module Instance Objects | 28 | |
|
| 3.1.5 | 29 | ||
|
| 3.1.6 | 29 | ||
|
| 3.1.7 | Module Configuration | 30 | |
|
| 3.1.8 | Example Module | 30 | |
|
| 3.1.9 | Multiple Interface Support | 31 | |
|
| 3.1.10 | Interface Inheritance | 32 | |
|
| 3.1.11 | Summary | 32 | |
| 3.2 | Algorithms | 33 | ||
| 3.3 | Packaging | 34 | ||
|
| 3.3.1 | Object Code | 34 | |
|
| 3.3.2 | Header Files | 35 | |
|
| 3.3.3 | Debug Verses Release | 35 | |
SPRU352G | Contents | 3 |