Course Outline
Introduction
- What is design?
- C vs Embedded C
The Life-Cycle of an Embedded Application
- The development process
- The maintenance process
- The extended life cycle
Design Tools
- Open source vs proprietary
- Compiler, assemblers and linkers
- Libraries
- Debuggers
- Simulators
- IDEs
Embedded Design Challenges
- Embedded computing design constraints
- Cost considerations
- Performance and efficiency
- Power consumption
- Thermal management
Defining the Design Goals
- Keeping it simple
- Defining the functionality
- Defining the program logic and structure
System Reliability
- Inspection and maintenance
- Uptime requirements
- Points of failure
Code Reusablility
- Redundancy-free design
Code Abstraction
- Information hiding
- Context-free modules
Code Modularization
- Decomposition
- Loose coupling
- Strong cohesion
- Acyclic dependencies
Code Maintainability
- Readability
- Testability
- Configurability
- Performance upgrades
Hardware Considerations
- Scalable Thermal Design Power (TDP)
- Integrated graphics
- Other
Summary and Conclusion
Requirements
- Basic embedded system knowledge
- Embedded C programming experience
- An understanding of electronics fundamentals
Audience:
- 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
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.