Advanced Search
Search Results
15 total results found
PlatformIO Guide
About PlatformIO is a versatile, open-source ecosystem designed for embedded development, providing a unified platform for building, managing, and debugging firmware across a wide range of microcontroller architectures. Integrated with popular IDEs like VSCode...
4.1 Learning Objectives
After completing this module, students are expected to be able to: Understand the importance of synchronization in multi-tasking systems and the risks of race conditions. Recognize and implement basic synchronization mechanisms: Mutexes and Semaphores in Free...
4.2 Introduction: The Problem of Shared Resource Access
In multi-tasking systems, multiple tasks often need to access the same resource simultaneously, such as a global variable, a sensor interface, or a data structure. If this access is not managed properly, it can lead to data corruption, inconsistencies, or unex...
4.3 Synchronization Mechanisms in FreeRTOS
FreeRTOS provides several synchronization primitives, the most common of which are Mutexes and Semaphores. Both are built upon a basic data structure called a queue. Mutex (Mutual Exclusion) A mutex can be thought of as a "key" to a resource. A task that wan...
4.4 Common Problems in Synchronization
Deadlock A deadlock is a situation where two or more tasks are blocked forever, each waiting for a resource that is held by another task in the cycle. Example Deadlock Scenario: Task A successfully locks Mutex 1. Task B successfully locks Mutex 2. Task A no...
4.5 Prevention and Handling Strategies
Overcoming Deadlock Since detecting and recovering from a deadlock in an embedded system is very difficult, the best approach is prevention. This is done by breaking one of the four Coffman conditions. Break Circular Wait: Enforce a strict lock ordering for...
7.1 Introduction: The IoT Communication Stack
For an IoT device to be useful, it needs to communicate. This communication happens in layers, much like a conversation. You need to have connectivity, then you need a common language to request things (web communication), and sometimes a specialized shorthand...
7.2 Local Network Connectivity with Wi-Fi
Wi-Fi is a technology based on the IEEE 802.11 standards that enables wireless data exchange. The ESP32 supports common standards like 802.11b, 802.11g, and 802.11n, operating in the 2.4 GHz frequency band. ESP32 Wi-Fi Modes Station Mode (STA): The ESP32 acts...
7.3 Web Communication with HTTP/HTTPS
HTTP HTTP (Hypertext Transfer Protocol) is the foundation of data communication on the World Wide Web. It operates on a request-response model. Client (ESP32): The client make a request to the server for a resource, like a webpage or data. Server (A Web Serve...
7.4 Efficient IoT Messaging with MQTT
MQTT (Message Queuing Telemetry Transport) is a lightweight messaging protocol designed for constrained devices and unreliable networks, making it perfect for IoT. Instead of the request-response model, MQTT uses a publish/subscribe (pub/sub) model. MQTT Compo...
1.1 Learning Objectives
After completing this module, students are expected to be able to: Understand the difference between a General-Purpose Operating System (GPOS) and a Real-Time Operating System (RTOS) Understand the differences and benefits of Multi-Threading on a Microcontrol...
1.2 Introduction to RTOS
GPOS The types of OS we often use (Windows, Linux, Mac, Android, iOS) can be classified as GPOS, which, as the name suggests, are designed for general purposes and typically utilize a GUI or CLI as the human interaction interface. GPOS systems are designed to ...
1.3 Microcontroller Architecture
Besides the differences in the type of OS used, there are also differences in the microcontrollers used. In this IoT lab, the ESP-32 microcontroller is used, which differs from the Arduino Uno used in the Embedded Systems lab. Look at the table below for a com...
1.4 FreeRTOS
So what is FreeRTOS? [4] FreeRTOS is one of the most widely used RTOS implementations in the world of embedded systems and IoT. As its name implies, FreeRTOS is open-source and free to use. Based on the previous explanation of RTOS, FreeRTOS acts as a lightwei...
1.5 Additional References
What Is a Real-Time Operating System (RTOS)? – DigiKey Maker.io Real-Time Operating System (RTOS): Components, Types, Examples – Guru99 RTOS Fundamentals – FreeRTOS Official Documentation