Course Outline
Introduction
- The concept of design
- Differences between standard C and Embedded C
The Lifecycle of an Embedded Application
- The development workflow
- The maintenance phase
- The extended lifecycle perspective
Design Tools and Infrastructure
- Comparing open source and proprietary solutions
- Compilers, assemblers, and linkers
- Libraries
- Debugging tools
- Simulators
- Integrated Development Environments (IDEs)
Challenges in Embedded Design
- Constraints in embedded computing design
- Cost impact analysis
- Performance and efficiency optimization
- Power consumption management
- Thermal control strategies
Establishing Design Objectives
- Embracing simplicity in design
- Specifying system functionality
- Structuring program logic and architecture
Ensuring System Reliability
- Inspection and maintenance protocols
- Uptime expectations
- Identifying potential failure points
Enhancing Code Reusability
- Designing without redundancy
Implementing Code Abstraction
- Strategies for information hiding
- Creating context-free modules
Modularizing Code Architecture
- System decomposition
- Achieving loose coupling
- Ensuring strong cohesion
- Maintaining acyclic dependencies
Improving Code Maintainability
- Enhancing readability
- Improving testability
- Increasing configurability
- Facilitating performance upgrades
Hardware-Specific Considerations
- Scalable Thermal Design Power (TDP)
- Integrated graphics capabilities
- Additional hardware factors
Summary and Final Thoughts
Requirements
- Fundamental knowledge of embedded systems
- Practical experience with Embedded C programming
- Proficiency in basic electronics concepts
Intended Audience:
- Software Developers
Testimonials (2)
The explanations and interactivity of the trainer, he really brought the subject well; and even-though I was probably not experienced enough, I did learn a lot from it!
Pieter Bruynseels - Spot Buy Center BV
Course - Design Patterns
I liked the platform we used. It was really nice and easy to use. I liked the typescript section, the part about namespaces and modules.