{"id":7159,"date":"2021-01-08T08:12:55","date_gmt":"2021-01-08T08:12:55","guid":{"rendered":"https:\/\/www.fambach.net\/?p=7159"},"modified":"2026-10-15T23:25:15","modified_gmt":"2026-10-15T23:25:15","slug":"espressif-idf-menuconfig","status":"publish","type":"post","link":"https:\/\/www.fambach.net\/en\/espressif-idf-menuconfig\/","title":{"rendered":"Espressif IDF \u2013 Menuconfig"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Contents\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks-2\/#Fazit\" >Conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks-2\/#Verwandte_Beitrage\" >Related Posts<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks-2\/#Quellen\" >Sources<\/a><\/li><\/ul><\/nav><\/div>\n\n<p class=\"wp-block-paragraph\">Eine der sch\u00f6nen Errungenschaften der IDF ist die men\u00fcgesteuerte Konfiguration. Noch sch\u00f6ner finde ich, dass eigene Konfigurationspunkte erstellt werden k\u00f6nnen. Diese werden dann automatisch in das Hauptmen\u00fc eingeh\u00e4ngt. Vorab:<\/p>\n\n\n\n<ul class=\"wp-block-list\" id=\"block-3dde12cd-cce1-40f1-a48a-a1733b32ddea\"><li>Die Bibliothek \u201eesp_system.h\u201c wird im Quellcode ben\u00f6tigt, sonst klappt\u2019s nicht<\/li><li>After making changes to the menu, perform an idf.py clean.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"646\" height=\"337\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_29_05.jpg\" alt=\"\" class=\"wp-image-7077\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_29_05.jpg 646w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_29_05-300x157.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_29_05-18x9.jpg 18w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Zur Erstellung solch eines Konfigurationspunktes nehme ich das Programm aus dem Beispiel <a href=\"#Konsolenausgabe\" data-type=\"internal\" data-id=\"#Konsolenausgabe\">Console output<\/a> und ersetze den Text durch einen Konfigurationspunkt. Benannt werden diese grunds\u00e4tzlich mit CONFIG_ , gefolgt von einem sprechenden Namen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Source code <code>main.c<\/code> (<span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/github.com\/sfambach\/espressif-idf\/tree\/master\/L5_Menuconfig\/main\" class=\"ub-content-link__anchor\">GitHub<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span>)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"c\" class=\"language-c\">\/** idf example\n *\n * Example 5 for custom configuration for menuconfig\n *\n * Some parts are copied from the official idf examples found on \n * https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/\n * \n * Modified by SteFam @ http:\/\/www.fambach.net\n *\n * GPLv3 \n * Blah blah blah, free to use. \n * I invested some time and money in those examples if you want to delete this header \n * please do not forget to mention at least my website, thanks!\n*\/\n\n\n#include &lt;stdio.h&gt;\n#include \"esp_system.h\"\n\nstatic const char* text = CONFIG_OUTPUT_TEXT;\n\nvoid app_main(void)\n{\n    \/\/ single console output \n\tprintf(\"%s \\n\",text);\n\t\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Damit diese Konfiguration im Menuconfig angezeigt wird, muss noch eine Datei \u201eKconfig.projbuild\u201c erstellt werden. Diese enth\u00e4lt zus\u00e4tzliche Informationen zum Konfigurationspunkt:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Source code <code>Kconfig.projbuild<\/code> (<span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/github.com\/sfambach\/espressif-idf\/tree\/master\/L5_Menuconfig\/main\" class=\"ub-content-link__anchor\">GitHub<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span>)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">menu \"L5_Menuconfig\"\n\n    config OUTPUT_TEXT\n        string \"Output Text\"\n        default \"www.fambach.net!\"\n        help\n            Enter the text, that will be shown in the program.\n\n\nendmenu<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nun einmal Menuconfig starten (&gt;idf.py menuconfig) :<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"352\" height=\"264\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_52_42.jpg\" alt=\"\" data-id=\"7084\" data-full-url=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_52_42.jpg\" data-link=\"https:\/\/www.fambach.net\/?attachment_id=7084\" class=\"wp-image-7084\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_52_42.jpg 352w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_52_42-300x225.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_52_42-16x12.jpg 16w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption class=\"blocks-gallery-item__caption\">Choose your own menu item<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"425\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_53_34.jpg\" alt=\"\" data-id=\"7079\" data-full-url=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_53_34.jpg\" data-link=\"https:\/\/www.fambach.net\/?attachment_id=7079\" class=\"wp-image-7079\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_53_34.jpg 768w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_53_34-300x166.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_53_34-18x10.jpg 18w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption class=\"blocks-gallery-item__caption\">Konfiguration ausw\u00e4hlen<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"292\" height=\"152\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_58_11.jpg\" alt=\"\" data-id=\"7078\" data-full-url=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_58_11.jpg\" data-link=\"https:\/\/www.fambach.net\/?attachment_id=7078\" class=\"wp-image-7078\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_58_11.jpg 292w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-15_58_11-18x9.jpg 18w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption class=\"blocks-gallery-item__caption\">Konfigurationstext \u00e4ndern<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"528\" height=\"196\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-16_13_12.jpg\" alt=\"\" data-id=\"7085\" data-full-url=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-16_13_12.jpg\" data-link=\"https:\/\/www.fambach.net\/?attachment_id=7085\" class=\"wp-image-7085\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-16_13_12.jpg 528w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-16_13_12-300x111.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-16_13_12-18x7.jpg 18w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption class=\"blocks-gallery-item__caption\">Amended text<\/figcaption><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Noch bauen und schauen, wie es aussieht (idf.py build flash -p COM7 monitor )<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"479\" height=\"163\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-17_04_42.jpg\" alt=\"\" class=\"wp-image-7086\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-17_04_42.jpg 479w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-17_04_42-300x102.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-04-17_04_42-18x6.jpg 18w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption>Output with configured text.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Es gibt nicht nur die M\u00f6glichkeit, Text zu formatieren, Zahlen und Auswahllisten sind ebenfalls m\u00f6glich. Hier ein paar Beispiele<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>menu \"Example Configuration\"\nconfig MOSI_GPIO\n       int \"MOSI GPIO number\"\n       range 0 46\n       default 23 if IDF_TARGET_ESP32\n       default 35 if IDF_TARGET_ESP32S2\n       help\n           GPIO number (IOxx) to SPI MOSI. ...\n\nconfig INVERSION\n       bool \"Enable Display Inversion\"\n       default false\n       help\n           Enable Display Inversion.\n\nchoice\n      bool \"Mesh AP Authentication Mode\"\n      default WIFI_AUTH_WPA2_PSK\n      help\n          Authentication mode.\n\n      config WIFI_AUTH_OPEN\n          bool \"WIFI_AUTH_OPEN\"\n      config WIFI_AUTH_WPA_PSK\n          bool \"WIFI_AUTH_WPA_PSK\"\n      config WIFI_AUTH_WPA2_PSK\n          bool \"WIFI_AUTH_WPA2_PSK\"\n      config WIFI_AUTH_WPA_WPA2_PSK\n          bool \"WIFI_AUTH_WPA_WPA2_PSK\"\nendchoice\n\nconfig MESH_GLOBAL_DNS_IP\n       hex \"Global DNS\"\n       depends on MESH_USE_GLOBAL_DNS_IP\n       default 0x08080808\n       help\n           The IP address of global DNS server that is used\n           for internal IP subnet formed by the mesh network\n           if MESH_USE_GLOBAL_DNS_IP is enabled.\n           Note: The IP address is in platform (not network)\n           format.\n...\n\nendmenu<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Es sind auch Abh\u00e4ngigkeiten zwischen Konfigurationspunkten m\u00f6glich. Diese werden mit den Schl\u00fcsselw\u00f6rtern \u201edepends on\u201c, gefolgt von einem oder mehreren Konfigurationsnamen mit logischen Verkn\u00fcpfungen, angegeben. Logische Verkn\u00fcpfungen sind || (oder) oder &amp;&amp; (und).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.config SW1_PIN\n\t\tint \"SW1 pin\"\n\t\trange 0 39\n        default 36\n\t\tdepends on SW1_ENABLE\n\t\thelp\n\t\t\tSwitch 1 Gpio pin\nconfig SW2_ENABLE\n\t\tbool \"SW2 Enable\"\n        default false\n\t\thelp\n\t\t\tEnable Switch 2\nconfig SW2_PIN\n\t\tint \"SW2 pin\"\n\t\trange 0 39\n        default 35\n\t\tdepends on SW2_ENABLE\n\t\thelp\n\t\t\tSW2 Gpio pin\nconfig LONG_PRESS_ENABLED\n\t\tbool \"Long press enabled\"\n        default false\n\t\tdepends on (SW1_ENABLE || SW2_ENABLE)\n\t\thelp\n\t\t   If this is enabled the system\n\t\t   distinguishes between long pressed buttons\n                   and short pressed buttons\n\tconfig LONG_PRESS_TIME_MS\n\t\tint \"Long press time ms\"\n\t\trange 1000 8000\n        default 2000\n\t\tdepends on LONG_PRESS_ENABLED\n\t\thelp\n\t\t  How long should a button be pressed to be\n                  marked as a long press; if it is not long pressed\n                  it is a short press\n...\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fazit\"><span class=\"ez-toc-section\" id=\"Fazit\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die Idee, Konfigurationen auszulagern, ist nicht neu. Sie aber mit einem Men\u00fc zu versehen, finde ich sehr charmant gel\u00f6st.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"verwandte-beitraege\"><span class=\"ez-toc-section\" id=\"Verwandte_Beitrage\"><\/span>Related Posts<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--broken ub-content-link--status-after is-broken\"><a href=\"https:\/\/www.fambach.net\/en\/?p=6943\" class=\"ub-content-link__anchor\" title=\"This link appears to be broken.\">Main contribution<\/a><span class=\"ub-status ub-status--broken\" title=\"Link status: Broken\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Broken<\/span><\/span><\/span><\/p>\n\n\n<div class=\"display-posts-listing\"><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-projekt-erstellen\/\">Espressif IDF \u2013 Projekt erstellen<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/div><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-konsolenausgabe\/\">Espressif IDF \u2013 Konsolenausgabe<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/div><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-fehlerbehandlung\/\">Espressif IDF \u2013 Fehlerbehandlung<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/div><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-log-nachrichten\/\">Espressif IDF \u2013 Lognachrichten<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/div><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-timer\/\">Espressif IDF \u2013 Timer<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/div><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-menuconfig\/\">Espressif IDF \u2013 Menuconfig<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/div><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/\">Espressif IDF \u2013 Tasks<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/div><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks-2\/\">Espressif IDF \u2013 GPIOs<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"quellen\"><span class=\"ez-toc-section\" id=\"Quellen\"><\/span>Sources<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a rel=\"noreferrer noopener\" href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/api-reference\/system\/freertos.html#\" target=\"_blank\" class=\"ub-content-link__anchor\"><\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a rel=\"noreferrer noopener\" href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/api-reference\/kconfig.html?highlight=config\" target=\"_blank\" class=\"ub-content-link__anchor\">IDF \u2013 Konfiguration<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a rel=\"noreferrer noopener\" href=\"https:\/\/www.kernel.org\/doc\/Documentation\/kbuild\/kconfig-language.txt\" target=\"_blank\" class=\"ub-content-link__anchor\">KConfig Guide<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/pypi.org\/project\/kconfiglib\/#kconfig-extensions\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ub-content-link__anchor\">KConfig Extensions<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>Eine der sch\u00f6nen Errungenschaften der IDF ist die men\u00fcgesteuerte Konfiguration. Noch sch\u00f6ner finde ich, dass eigene Konfigurationspunkte erstellt werden k\u00f6nnen. Diese werden dann automatisch in das Hauptmen\u00fc eingeh\u00e4ngt. Vorab: Die Bibliothek &#8222;esp_system.h&#8220; wird im Quellcode ben\u00f6tigt, sonst klappt&#8217;s nicht Nach \u00c4nderungen am Men\u00fc ein idf.py clean durchf\u00fchren Zur Erstellung solch eines Konfigurationspunktes nehme ich das &#8230;<\/p>\n<a href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks-2\/\" class=\"read-more-link\">Carry on reading <span class=\"screen-reader-text\">\"Espressif IDF &#8211; GPIOs\"<\/span> <span class=\"meta-nav\">\u2192<\/span><\/a>","protected":false},"author":1,"featured_media":7084,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"no","_lmt_disable":"no","footnotes":""},"categories":[184,188,472,473,496],"tags":[497,148,499,465,474,492,476,500,491],"class_list":["post-7159","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-c","category-esp-32","category-esp32-s2","category-espressif-idf","category-how-to","tag-c-2","tag-esp32","tag-esp32s2","tag-espressif","tag-espressif-idf","tag-howto","tag-idf","tag-shulung","tag-tutorial","penguin-post","penguin-post-not-sticky"],"modified_by":"sfambach","_links":{"self":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/7159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/comments?post=7159"}],"version-history":[{"count":9,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/7159\/revisions"}],"predecessor-version":[{"id":19679,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/7159\/revisions\/19679"}],"wp:attachment":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media?parent=7159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/categories?post=7159"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/tags?post=7159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}