 Welcome on this free RTOS on STM for Tutorial Training session. This session is based on CMC Source API Inversion Tool. My name is Erdor and I'm an application engineer at STMicroelectronics working with the Thomas MCU support team. The goals of this session are understanding what are the main concept behind operating system-based applications, being familiar with main components of current operating systems, understanding what is the connection between free RTOS and STM32, practicing with STM32 development tools and libraries, getting some knowledge about typical mistakes which can be done during the development of operating system-based application. We'll try to answer all of those points within this session. Complete session will be based on CMC's OS version 2 layer, which will use free RTOS operating system as a base. As a hardware platform, STM32-L476 or GT6 has been selected. It is Cortex-M4 based STM32 MCU, but it is possible to use any other STM32 MCU as well. Some differences could be visible within low-layer porting files, system interrupt code for example. As a development tool, STM32-QPIDE with STM32-L4-QP library has been used, but it is possible to use as well STM32-QBMIX with the tool chain selected for its supported list, so for example IRK or SW for STM32. Complete training is a combination of the theoretical parts and hands-on sessions to illustrate the described topic. Each lab will be described in two ways. On the slides, with the detailed description of the process what to do and an explanation of the final result, those videos' names contain suffix lab, as a live session with step-by-step operations on STM32-QPIDE and Nucleo-L476-LG board, those videos' names contain suffix live lab. At the end of the theory videos, in case there is a lab assigned to it, there would be a suggestion with an additional material connected to this part. You can select which version is more suitable for you, slides-based step-by-step or live one. Additionally, within the description of each video, you will find link to the landing page, which contains complete set of information concerning the session, including link to materials and detailed list of prerequisites, link to the ST community, where you can post your questions, link to anonymous survey when you can pass your opinion or remarks about this session. All materials related to this session has been stored on dedicated repository mentioned within ST landing page for this session. The link to this is visible in the description of each video. The following list of materials are available for this training. Complete set of slides in PDF format, those are stored within slides subfolder, solution of each lab part, those are stored within labs underscore solutions folder. And within the solutions, you can find a complete set of examples, which are present within all underscore freeRTOS underscore v2 underscore labs dot zip file. And you can find a single examples, which are additionally stored in dedicated folders in the zip format as well. To use solutions, you can import them to your STM32QPID workspace using file import general existing projects into workspace select archive file. Let's have a look on agenda for this training. We can list here 23 components. We'll start with some preparation. Within this part will create a simple application, which would be the base for all of our hands on within the complete training. Then we'll discuss basic features of freeRTOS, its various APIs. Next point will be an integration of freeRTOS with STM32QPAMIX and STM32QPIDE and its basic configuration. Further, we'll discuss different memory allocation schemes available in freeRTOS. After this part will present a scheduler and its main features. Our next point will be discussion about freeRTOS and its connection to the hardware, STM32 device in our case. Another point is about freeRTOS startup process step by step. Then we'll discuss on context switching in details. After this we'll start to explain freeRTOS components one by one starting from tasks. After task there would be a time for intern task communication, so queues, semaphores, event flags and thread flags. After the task communication we will switch shortly to resource management. Then we'll discuss mutexes and software timers. After this point there would be a part called advanced topics concerning some components mechanisms within freeRTOS which could help us during development process. Then we'll discuss in details low power support which is available within freeRTOS. It is so-called tickless mode. In next point I would like to discuss shortly some typical mistakes and possible problems which may face during operating system-based application development. At the end we will summarize all points covered within this session. Let me wish you a fruitful session. I would be glad to know your opinion about this. I have prepared an anonymous survey for this training where you can leave your remarks. You can find the link in the description of each of the videos. Thank you for watching this introduction video.