-
1- Introduction
-
Hardware
-
Constraints
- Memory
- Speed
- Code space
- Power consumption
-
Software
-
Performance
- Deterministic
- Realtime
- Cross-compiled
-
Cross-debugged
-
Breakpoint
- Software
- 1- Modify memory loaded code
- 2- Insert 'stop' instruction
- RAM execution
- Hardware
- ROM/Flash execution
- 1- Load breakpoint into an internal register
- 2- Compare it with at each execution
- 3- Stop if matched.
- Side-effects
- Change
- Timing
- Bugs
- Intermittent
-
Documentation
- What code does
- Not How it does
-
Optimization
- Later
- Implement, test, then optimize
-
Challenges
-
Largest
- Change
-
Design
-
Principles
- Predict changes
- Flexibility
-
Modularity
- How to break up a system
- Which part can change independently
- Example
- Sensor X talks over communication channel Y
- Both independent
- Hence separate sub-systems
- Encapsulation
-
Life
- Conception
- Prototyping
- Board bring up
- Debugging
- Testing
- Release
- Maintenance