{"id":7102,"date":"2021-01-07T10:58:45","date_gmt":"2021-01-07T10:58:45","guid":{"rendered":"https:\/\/www.fambach.net\/?p=7102"},"modified":"2026-10-03T20:14:41","modified_gmt":"2026-10-03T20:14:41","slug":"espressif-idf-projekt-erstellen","status":"publish","type":"post","link":"https:\/\/www.fambach.net\/en\/espressif-idf-projekt-erstellen\/","title":{"rendered":"Espressif IDF \u2013 Create Project"},"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\">Hier beschreibe ich, wie ein neues IDF-Projekt angelegt wird. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wie die IDF, auch in Verbindung mit VS-Code, genutzt und installiert wird, habe ich unter folgenden Links schon beschrieben und ist nicht Gegenstand dieses Beitrags. <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a href=\"https:\/\/www.fambach.net\/en\/espressif-idf-fuer-esp32-s2-installieren\/\" data-type=\"post\" data-id=\"6629\" class=\"ub-content-link__anchor\">Install Espressif IDF for ESP32-S2<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/li><li><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a href=\"https:\/\/www.fambach.net\/en\/vs-code-espressif-idf\/\" data-type=\"post\" data-id=\"6541\" class=\"ub-content-link__anchor\">VS-Code Espressif IDF<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/li><li><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a href=\"https:\/\/www.fambach.net\/en\/lilygo-ep32-s2-v1-1\/\" data-type=\"post\" data-id=\"6274\" class=\"ub-content-link__anchor\">LILYGO EP32 S2 V1.1<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span> (1. Anwendung)<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ein guter Start ist es, das IDF-Beispiel examples\/get-started\/sample_project aus dem esp-idf Ordner zu kopieren.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"199\" height=\"159\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-01-14_31_51.jpg\" alt=\"\" class=\"wp-image-6944\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-01-14_31_51.jpg 199w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-01-14_31_51-15x12.jpg 15w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\"><figcaption>IDF Beispiele \u2013 sample_project Ordnerinhalt<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dieser Ordner enth\u00e4lt fast alles, was f\u00fcr ein neues Projekt ben\u00f6tigt wird. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Den Unterordner components habe ich der Vollst\u00e4ndigkeit halber hinzugef\u00fcgt. Dieser enth\u00e4lt gekapselte Projekte wie zum Beispiel Bibliotheken. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die CMakeList.txt enth\u00e4lt einen Verweis auf die Standard-Make-Datei und den Projektnamen. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>include($ENV{IDF_PATH}\/tools\/cmake\/project.cmake)\nproject(main)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein \u00e4hnlicher Inhalt ist im Makefile zu finden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Readme.md beschreibt das Beispielprojekt, kann sp\u00e4ter aber zur Dokumentation des eigenen Projektes dienen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Ordner main ist die Spielwiese des neuen Projektes. Hier finden wir unser Hauptprogramm (main.c), eine weitere CMakeLists.txt Datei und die component.mk. Hier werden auch alle Unterprogramm-Dateien abgelegt. F\u00fcr das Hauptprogramm ist die component.mk nur ein Dummy, sie wird sp\u00e4ter f\u00fcr die \u201erichtigen\u201c Komponenten im Components-Ordner ben\u00f6tigt.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"291\" height=\"121\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-01-14_42_12.jpg\" alt=\"\" class=\"wp-image-6945\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-01-14_42_12.jpg 291w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-01-14_42_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\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Die CMakeLists.txt Datei enth\u00e4lt die Komponentenbeschreibung f\u00fcr unser Hauptprogramm. Sie setzt sich aus den verwendeten Quellcode-Dateien <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SRCS=\"main.c\" \"datei1.c\" \"datei2.c\" \"...\" <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">den Include-Pfaden<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INCLUDE_DIRS \".\" \"pfad2\" \"pfad ...\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">und optional aus den ben\u00f6tigten Komponenten zusammen. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>COMPONENTS \"Comp1\" \"Comp2\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Unsere initiale Version sieht wie folgt aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>idf_component_register(SRCS \"main.c\"\n INCLUDE_DIRS \".\" )<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die main.c Datei enth\u00e4lt nur eine Funktion, die main_app. Diese wird vom Controller aufgerufen und ist der Startpunkt f\u00fcr unser Programm. Die Standard IO wird auch schon referenziert.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"303\" height=\"198\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-02-14_40_10.jpg\" alt=\"\" class=\"wp-image-6947\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-02-14_40_10.jpg 303w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-02-14_40_10-300x196.jpg 300w, https:\/\/www.fambach.net\/wp-content\/uploads\/2021-01-02-14_40_10-18x12.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<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\">Das Projekt ist schnell kopiert und man hat fast alles, was man braucht. Je nachdem, welche Applikation erstellt werden soll, bietet es sich an, eines der anderen Projekte im Beispielordner zu kopieren.<\/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--unknown 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--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/div><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown 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--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/div><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown 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--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/div><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown 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--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/div><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown 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--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/div><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown 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--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/div><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown 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--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/div><div class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown 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--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/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 href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/get-started\/index.html#step-5-start-a-project\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ub-content-link__anchor\">IDF-Start a Project<\/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:\/\/docs.espressif.com\/projects\/esp-idf\/en\/latest\/esp32\/contribute\/creating-examples.html\" target=\"_blank\" class=\"ub-content-link__anchor\">IDF-Creating Examples<\/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>Hier beschreibe ich, wie ein neues IDF-Projekt angelegt wird. Wie die IDF, auch in Verbindung mit VS-Code, genutzt und installiert wird, habe ich unter folgenden Links schon beschrieben und ist nicht Gegenstand dieses Beitrags. Espressif IDF f\u00fcr ESP32-S2 Installieren VS-Code Espressif IDF LILYGO EP32 S2 V1.1 (1. Anwendung) Ein guter Start ist es, das IDF-Beispiel &#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":6947,"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,477,465,474,498,476,351],"class_list":["post-7102","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-esp-idf","tag-espressif","tag-espressif-idf","tag-framework","tag-idf","tag-programmierung","penguin-post","penguin-post-not-sticky"],"modified_by":"sfambach","_links":{"self":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/7102","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=7102"}],"version-history":[{"count":9,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/7102\/revisions"}],"predecessor-version":[{"id":17252,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/7102\/revisions\/17252"}],"wp:attachment":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media?parent=7102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/categories?post=7102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/tags?post=7102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}