Embedded System- BU
Course Description: This course delves into the design and implementation of real-time embedded systems, focusing on the challenges of meeting strict timing requirements in resource-constrained environments. Students will gain an in-depth understanding of real-time operating systems (RTOS), scheduling algorithms, inter-process communication, and hardware considerations. Through practical examples and projects, students will apply these concepts to develop real-time applications on ARM-based microcontrollers.
Topics to be Covered:
Module 1: Foundations
Real-time systems: definitions, characteristics, and applications
Hard vs. soft real-time constraints
Task analysis and timing requirements
Module 2: Real-time Operating Systems (RTOS)
RTOS architecture and functions
Task management (scheduling, synchronization, communication)
Memory management in an RTOS environment
Module 3: Hardware for Real-time
ARM Cortex-M architecture and peripherals
Timers, real-time clocks, and interrupts
Interfacing with sensors and actuators
Module 4: Real-time Application Development
Building real-time applications with FreeRTOS
Real-time communication protocols (CAN, MQTT)
Debugging and testing real-time systems
Case studies: Real-time control systems
Tools and Resources:
ARM Cortex-M development board (e.g., STM32 Nucleo board)
FreeRTOS (or another suitable RTOS)
Embedded C development environment (e.g., Keil MDK, IAR Embedded Workbench)
Debugging tools (e.g., JTAG debugger)
Books:
"FreeRTOS: A Practical Guide (3rd Edition)" by Richard Barry
ISBN-13: 978-1839212100
Publisher: Independently published (December 20, 2020)
Note: This edition is updated for FreeRTOS v10. While newer versions of FreeRTOS exist, this provides a solid foundation.
"Building Embedded Systems: An Introduction to Processes, Tools, and Techniques (1st Edition)" by Karim Yaghmour
ISBN-13: 978-0596809560
Publisher: O'Reilly Media (June 2005)
Note: Although this book is older, it covers fundamental concepts that are still relevant.
"Making Embedded Systems: Design Patterns for Great Software (1st Edition)" by Elecia White
ISBN-13: 978-0596154478
Publisher: O'Reilly Media (April 2011)
Note: This book provides valuable guidance on software design principles for embedded systems.
Online Resources:
FreeRTOS Official Website: The official FreeRTOS website (www.freertos.org) is a treasure trove of documentation, tutorials, example code, and community support.
Zephyr Project: Zephyr (www.zephyrproject.org) is another powerful open-source RTOS with a strong focus on real-time capabilities and IoT applications. Their website provides comprehensive documentation, API references,and sample projects.
ARM Cortex-M documentation: The ARM website offers detailed documentation on Cortex-M architectures,including programmer's guides, technical reference manuals, and application notes.
Online Courses and Tutorials: Platforms like Coursera, edX, and Udemy offer various courses on embedded systems and real-time operating systems, often including open-source tools and examples.
Research Papers and Articles:
Real-Time Scheduling Theory: Search for seminal papers on scheduling algorithms like Rate Monotonic Analysis (RMA) and Earliest Deadline First (EDF) to understand the theoretical foundations.
Real-time Communication Protocols: Explore research papers and articles on CAN bus, MQTT, and other protocols relevant to real-time applications.
Open-Source Communities:
FreeRTOS Forums: Engage with the FreeRTOS community to ask questions, share knowledge, and find solutions to common challenges.
Zephyr Project Mailing Lists: Participate in the Zephyr Project mailing lists to connect with developers and stay updated on the latest developments.
EvaluationÂ
20% Midterm exam
20% Projects and reports
60% Final Exam