Course Outline
Introductory Concepts
- Defining design in context
- Comparing Standard C with Embedded C
Lifecycle Management of Embedded Applications
- The development workflow
- Maintenance strategies
- The extended lifecycle perspective
Essential Design Tools
- Open-source versus proprietary solutions
- Compilers, assemblers, and linkers
- Utilizing libraries
- Debugger techniques
- Simulation environments
- Integrated Development Environments (IDEs)
Tackling Embedded Design Challenges
- Addressing embedded computing constraints
- Evaluating cost-effectiveness
- Optimizing performance and efficiency
- Managing power consumption
- Thermal control strategies
Establishing Clear Design Objectives
- Simplifying complexity
- Specifying system functionality
- Structuring program logic and architecture
Ensuring System Reliability
- Inspection and upkeep protocols
- Meeting uptime standards
- Identifying potential failure points
Enhancing Code Reusability
- Implementing redundancy-free architectures
Mastering Code Abstraction
- Principles of information hiding
- Creating context-independent modules
Advanced Code Modularization
- Decomposition techniques
- 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 solutions
- Additional hardware factors
Summary and Concluding Remarks
Requirements
- Foundational knowledge of embedded systems
- Hands-on experience with Embedded C programming
- Familiarity with basic electronics principles
Who This Is For:
- 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
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.