Beschreibung
Programming embedded systems is difficult because of resource constraints and limited debugging facilities. Why develop your own Real-Time Operating System (RTOS) as well as your application when the proven FreeRTOS software is freely available? Why not start with a validated foundation? Every software developer knows that you must divide a difficult problem into smaller ones to conquer it. Using separate preemptive tasks and FreeRTOS communication mechanisms, a clean separation of functions is achieved within the entire application. This results in safe and maintainable designs. Practicing engineers and students alike can use this book and the ESP32 Arduino environment to wade into FreeRTOS concepts at a comfortable pace. The well-organized text enables you to master each concept before starting the next chapter. Practical breadboard experiments and schematics are included to bring the lessons home. Experience is the best teacher. Each chapter includes exercises to test your knowledge. The coverage of the FreeRTOS Application Programming Interface (API) is complete for the ESP32 Arduino environment. You can apply what you learn to other FreeRTOS environments, including Espressif's ESP-IDF. The source code is available from GitHub. All of these resources put you in the driver's seat when it is time to develop your next uber-cool ESP32 project. What you will learn: How preemptive scheduling works within FreeRTOSThe Arduino startup "loopTask"Message queuesFreeRTOS timers and the IDLE taskThe semaphore, mutex, and their differencesThe mailbox and its applicationReal-time task priorities and its effectInterrupt interaction and use with FreeRTOSQueue setsNotifying tasks with eventsEvent groupsCritical sectionsTask local storageThe gatekeeper task
Autorenportrait
Warren Gay is a datablocks.net senior software developer, writing Linux internet servers in C++. He got involved with electronics at an early age, and since then he has built microcomputers and has worked with MC68HC705, AVR, STM32, ESP32 and ARM computers, just to name a few.