IoT Foundations: Operating Systems Fundamentals (2018)
1h 59mIntermediate2018-03-02
Authors

Ryan Hu
Professor at the Seneca College of Applied Arts and Technology
Course details
The Internet of Things (IoT) offers developers an array of exciting possibilities to explore. But building systems solutions for IoT can be challenging, and such systems may not be equipped to effectively manage resources and schedule tasks for modern IoT devices. Using an operating system (OS) can help you solve some of these issues. In this course, join Ryan Hu as he reviews the basics of using an operating system for IoT, and explores OS-related concepts and examples using an OS kernel, FreeRTOS. Learn about characteristics and technical requirements of OSs, and explore task management, intertask communication, memory management, and more.
Learning objectives
OS characteristics for IoT
OSs for resource-constrained devices
Linux OSs and Windows 10 IoT Core
Main features of FreeRTOS
Task schedulers and task management
Intertask communication
Allocating dynamic memory
Debugging your OS-based applications
Learning objectives
OS characteristics for IoT
OSs for resource-constrained devices
Linux OSs and Windows 10 IoT Core
Main features of FreeRTOS
Task schedulers and task management
Intertask communication
Allocating dynamic memory
Debugging your OS-based applications
Skills covered
Internet of ThingsHardwareFoundationsSoftware Development
Concepts
Introduction
- Welcome
- What you should know
- Using the exercise files
Introduction to Operating Systems for IoT
- Why we need operating systems
- OS characteristics for IoT
- General-purpose OS vs. embedded OS
Overview of Existing Operating Systems for IoT
- OSs for resource-constrained devices
- Linux OSs
- Windows 10 IoT Core
Introduction to FreeRTOS
- Overview of FreeRTOS
- System architecture
- Get started with FreeRTOS
- Run FreeRTOS on the nRF51 DK board
Tasks
- Task execution parallelism
- Task scheduler
- Task management
- Thread safety
- Deadlock
Intertask Communication
- Queue
- Semaphore and mutex
Memory Management
- Memory allocation
- First fit algorithm
Timers
- Use software timers
Inputs and Outputs
- I O devices and peripherals
- Interrupts
Debugging
- Debug your OS-based applications
Conclusion
- Next steps