{"id":6527,"date":"2017-07-22T10:05:18","date_gmt":"2017-07-22T10:05:18","guid":{"rendered":"http:\/\/blog.bachi.net\/?p=6527"},"modified":"2020-08-31T09:51:59","modified_gmt":"2020-08-31T09:51:59","slug":"freertos-2","status":"publish","type":"post","link":"https:\/\/blog.bachi.net\/?p=6527","title":{"rendered":"FreeRTOS"},"content":{"rendered":"<h1>ESP32<\/h1>\n<blockquote><p>ESP-IDF FreeRTOS is based on the Xtensa port of FreeRTOS v8.2.0, however some functions of FreeRTOS v9.0.0 have been backported. See the Backported Features for more information.<\/p><\/blockquote>\n<p><a href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/api-reference\/system\/freertos.html\">ESP32 FreeRTOS<\/a><\/p>\n<h1>Task\/Thread Analysis and Visualization<\/h1>\n<h4>FreeRTOS Support<\/h4>\n<p><code>jtag_debugging_for_esp32_en.pdf<\/code><br \/>\nOpenOCD has explicit support for the ESP-IDF FreeRTOS; FreeRTOS detection can be disabled in esp32.conf. When enabled, gdb can see FreeRTOS tasks as threads. Viewing them all can be done using the gdb <code>i threads<\/code> command; changing to a certain task is done with <code>thread x<\/code>, with <code>x<\/code> being the number of the thread. All threads can be switched to except for a thread actually running on the other CPU; please see the following section ESP32 Quirks for more information<\/p>\n<p><a href=\"https:\/\/mcuoneclipse.com\/2016\/06\/13\/adding-freertos-thread-awareness-to-gdb-and-eclipse\/\">Adding FreeRTOS Thread Awareness to GDB and Eclipse<\/a><br \/>\n<a href=\"https:\/\/mcuoneclipse.com\/2016\/04\/09\/freertos-thread-debugging-with-eclipse-and-openocd\/\">FreeRTOS Thread Debugging with Eclipse and OpenOCD<\/a><br \/>\n<a href=\"https:\/\/mcuoneclipse.com\/2015\/10\/03\/freertos-arm-thread-debugging-with-eclipse-and-gdb\/\">FreeRTOS ARM Thread Debugging with Eclipse and GDB<\/a><br \/>\n<a href=\"https:\/\/mcuoneclipse.com\/2015\/11\/16\/segger-systemview-realtime-analysis-and-visualization-for-freertos\/\">Segger SystemView: Realtime Analysis and Visualization for FreeRTOS<\/a><\/p>\n<h4>Non-Free<\/h4>\n<p><a href=\"http:\/\/www.freertos.org\/FreeRTOS-Plus\/FreeRTOS_Plus_Trace\/FreeRTOS_Plus_Trace.shtml\">FreeRTOS+Trace<\/a><\/p>\n<h1>API Reference<\/h1>\n<h3>Task Creation<\/h3>\n<p><a href=\"https:\/\/github.com\/espressif\/esp-idf\/blob\/master\/components\/freertos\/readme_smp.txt\">esp-idf\/components\/freertos\/readme_smp.txt<\/a><br \/>\n<a href=\"http:\/\/www.freertos.org\/a00125.html\"><code>xTaskCreate<\/code><\/a><\/p>\n<h3>RTOS Kernel Control<\/h3>\n<p><a href=\"http:\/\/www.freertos.org\/a00020.html\">Kernel Control<\/a><br \/>\n<a href=\"http:\/\/www.freertos.org\/taskENTER_CRITICAL_taskEXIT_CRITICAL.html\"><code>taskENTER_CRITICAL()<\/code><\/a><\/p>\n<h3>Queue Management<\/h3>\n<p><a href=\"https:\/\/www.freertos.org\/a00018.html\">Queue Management<\/a><br \/>\n<a href=\"http:\/\/www.freertos.org\/a00118.html\"><code>xQueueReceive<\/code><\/a><\/p>\n<h3>Event Groups<\/h3>\n<p><a href=\"http:\/\/www.freertos.org\/xEventGroupWaitBits.html\"><code>xEventGroupWaitBits()<\/code><\/a><\/p>\n<h1>YouTube<\/h1>\n<h3>RenesasPresents<\/h3>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=ECEvUEkSSLg\">RTOS Tutorial (1\/5) : Why is RTOS required?<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=3mu-2pM04xE\">RTOS Tutorial (2\/5) : Task, handler and API<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=firiu8_3DZA\">RTOS Tutorial (3\/5) : Semaphore and event flag<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=f_Y95tUFnUo\">RTOS Tutorial (4\/5) : Architecture and Performance of RTOS<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=-j2vWXMpTEc\">RTOS Tutorial (5\/5) : RTOS for Multi-core systems<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ESP32 ESP-IDF FreeRTOS is based on the Xtensa port of FreeRTOS v8.2.0, however some functions of FreeRTOS v9.0.0 have been backported. See the Backported Features for more information. ESP32 FreeRTOS Task\/Thread Analysis and Visualization FreeRTOS Support jtag_debugging_for_esp32_en.pdf OpenOCD has explicit support for the ESP-IDF FreeRTOS; FreeRTOS detection can be disabled in esp32.conf. When enabled, gdb [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6527","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/6527","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6527"}],"version-history":[{"count":14,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/6527\/revisions"}],"predecessor-version":[{"id":11316,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/6527\/revisions\/11316"}],"wp:attachment":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6527"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6527"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6527"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}