FreeRTOS Lessons On ESP32 SDK
What you'll learn
- freeRTOS task create, delete, input parameter, priority, suspend and resume
- freeRTOS queue delivery data, queue multiple in single out mode, queue set, queue mailbox
- freeRTOS software timer
- freeRTOS binary semaphore and count semaphore
- freeRTOS mutex and recursive mutex
- freeRTOS event group wait and event group sync
- freeRTOS notify sync and notify value
- freeRTOS watch dog
- Basic c programming knowledge
The first question for the freeRTOS on ESP32 lessons is why we need to study freeRTOS. The most important reasons are probably as follows:
(1) First, it is totally free and open source. You no need to pay any fee for using it in your any projects. And you can get all the source code from it's official website;
(2) Second, it is a "RTOS". "RTOS" means "real time operating system". It can processes data and events that have critically defined time constraints.
(3) Third, it is very tiny and simple. The kernel resource files are only three c files. It is very fit for microcontroller which has limited ram or rom.
(4) Forth, it is well supported. It has been porting on lots of platform, even including xilinx FPGA.
The second question is why we study freeRTOS based on ESP32?
(1) The first reason is the original SDK software of ESP32 is using the freeRTOS as its operation system. We no need to port it again. We will have a very stable platform to study all kinds of software features of the freeRTOS.
(2) ESP32 is a very wonderful chip. It has internal flash and sram. It has the wifi and bluetooth function on the same chip. The wifi and bluetooth is a critical function for the "internet things" application. It also has other powerful peripheral interfaces, such as, I2C, SPI, I2S, UART, ADC, DAC, RTC, USB etc.
(3) It also has a very small package size and very low price compared with other similar function chips. It is very easy to DIY products by hobbyist.
(1) All the course examples have been tested on idf sdk ver4.4.1 software. For other versions, the code might be a little different.
(2) If you are using one regular ESP32 board, not one ESP32C3 board, you might need to change FreeRTOS running on two kernels to running on one kernel by setting "Run FreeRTOS only on first core" in menuconfig.
Who this course is for:
- the person who is interested in freeRTOS
- the person who is interested in ESP32
Work in embedded system development nearly 15 years;
Proficient in embedded software development by using C, C++, Verilog, familiar with operation system like Linux, Android, OpenWRT, Contiki, best at ARM/FPGA firmware and low level driver software development.
Proficient in embedded hardware design, multi-layer PCB layout, and signal-integrity simulation, master orCAD capture, Allegro, PADS, Hyperlynx; finished hardware system development in ARM, FPGA etc.