Course Outline
Introduction
- Concepts of design
- Distinguishing C from Embedded C
The Lifecycle of an Embedded Application
- The development workflow
- Maintenance procedures
- Extended lifecycle phases
Design Tooling
- Comparison of open-source and proprietary solutions
- Compilers, assemblers, and linkers
- Libraries
- Debugging tools
- Simulation environments
- Integrated Development Environments (IDEs)
Challenges in Embedded Design
- Constraints in embedded computing architecture
- Budget and cost analysis
- Performance and efficiency metrics
- Power consumption management
- Thermal control strategies
Establishing Design Objectives
- Simplicity in design
- Specifying system functionality
- Structuring program logic and flow
Ensuring System Reliability
- Inspection and upkeep protocols
- Uptime expectations
- Identification of failure points
Enhancing Code Reusablility
- Designs that avoid redundancy
Implementing Code Abstraction
- Hiding information where appropriate
- Creating context-independent modules
Modularizing Code
- System decomposition
- Loose coupling strategies
- Strong cohesion principles
- Ensuring acyclic dependencies
Improving Code Maintainability
- Readability standards
- Testability considerations
- Configurability options
- Performance enhancement pathways
Hardware-Specific Factors
- Scalable Thermal Design Power (TDP)
- Integrated graphics capabilities
- Additional relevant considerations
Conclusion and Recap
Requirements
- Fundamental understanding of embedded systems
- Practical experience with Embedded C programming
- Knowledge of basic electronics principles
Target Audience:
- Software Developers
Testimonials (3)
Seeing aspects of idea generation, especially during the activity where we first listed bad ideas and then made the list of good ideas. I found it actually helped to get the bad ideas out as it got me into the swing of coming up with ideas, regardless of whether they were good or bad.
William Boscher - Bank Julius Baer Guernsey
Course - Design Thinking: Innovation & Creative Problem Solving
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
That we could you real life examples