首页 > 其他分享 >ESP-IDF 学习 1 工程文件管理

ESP-IDF 学习 1 工程文件管理

时间:2024-10-07 17:33:26浏览次数:8  
标签:文件 CMakeLists include ESP espressif init IDF main My

最小项目目录结构

├── CMakeLists.txt
├── main
│ ├── CMakeLists.txt
│ └── main.c
└── README.md

  • ESP-IDF 给用户的函数入口在 void app_main(void)
  • ./CMakeLists.txt管理整个工程
  • ./main/CMakeLists.txt管理./main文件夹中的所有文件

若要将 .c & .h 文件区分开,往往会创建一个或多个目录来装载它们。

如以下目录( 该树状图经过裁剪,尽可能只保留了用户创建的目录 )

├───.devcontainer
├───.vscode
├───main
│ └───include
└───managed_components
├───espressif__esp_tinyusb
│ ├───include
│ ├───include_private
│ ├───test
│ │ └───local
│ └───test_app
│ └───main
└───espressif__tinyusb

有以上目录,以下是我在./main/CMakeLists.txt的配置

idf_component_register(SRCS "My_mcu_sleep_init.c" "My_WIFI_init.c" "led_strip_encoder.c" "My_LED_init.c" "My_https_request.c" "My_timer_init.c" "My_GPIO_init.c" "My_usb_device.c" "app_main.c"
                       INCLUDE_DIRS "./include"
                       EMBED_TXTFILES server_root_cert.pem local_server_cert.pem)

于是我们的 .h 文件就都被装到 ./main/include 这个目录里头了,但是这些 .c 文件还是逐个添加,虽然我创建文件写好以后直接编译,它就自动写入./main/CMakeLists.txt,但是这样确实也不方便阅读。
于是我又尝试把 .c 文件都装到同一目录中,就有了以下./main/CMakeLists.txt

idf_component_register(#SRCS "My_mcu_sleep_init.c" "My_WIFI_init.c" "led_strip_encoder.c" "My_LED_init.c" "My_https_request.c" "My_timer_init.c" "My_GPIO_init.c" "My_usb_device.c" "app_main.c"
                       SRC_DIRS "./source"
                       INCLUDE_DIRS "./include"
                       EMBED_TXTFILES server_root_cert.pem local_server_cert.pem)

↑ 但这样的 cmake 是大错特错的 ↑

这样会导致编译的时候一直找不到 void app_main(void) 这个函数入口

↓ 最后是这样解决的 ↓

file(GLOB_RECURSE SOURCES "./source/*.c")
idf_component_register(
                    SRCS ${SOURCES}
                    INCLUDE_DIRS "./include/")

这才算是编译成功了,没有弹出找不到 void app_main(void) 的错误

添加组件

├───.devcontainer
├───.vscode
├───main
│ └───include
└───managed_components
├───espressif__esp_tinyusb
│ ├───include
│ ├───include_private
│ ├───test
│ │ └───local
│ └───test_app
│ └───main
└───espressif__tinyusb

↑ 见以上目录,可以看见./managed_components

有时候某些功能 ESP-IDF 并不会内置,因此需要添加外置的组件才能使用相应的 API,如:TinyUSB
鉴于楼主才疏識浅,是用 ESP-IDF terminal 输入指令 idf.py add-dependency esp_tinyusb一键生成的


参考网站:

标签:文件,CMakeLists,include,ESP,espressif,init,IDF,main,My
From: https://www.cnblogs.com/JPW-2024/p/18450356

相关文章

  • 文件上传各路径【合集】
    @action(detail=False,methods=['post'],url_path='upload')defupload(self,request):upload_obj=request.FILES.get('file')#print(upload_obj)#178bb3d5cfc06006d1d884951a20ff3.jpg#print(upload......
  • 在浏览器上访问媒体资源配置【文件上传】
    1.根urls.py文件中fromdjango.contribimportadminfromdjango.urlsimportpath,include,re_pathfromdjango.views.staticimportservefromdjango.confimportsettingsurlpatterns=[#path('admin/',admin.site.urls),path('api/shipp......
  • Centos linux6 中/etc/rc.d/rc.sysinit配置文件的作用
    系统初始化脚本功能设置主机名设置欢迎信息激活udev和selinux挂载/etc/fstab文件中定义的文件系统检测根文件系统,并以读写方式重新挂载根文件系统设置系统时钟激活swap设备根据/etc/sysctl.conf文件设置内核参数激活lvm及softwareraid设备加载额外设备的驱动程序清理操作......
  • php网站怎么连接数据库配置文件
    在PHP网站中连接数据库通常需要一个配置文件来存储数据库连接信息。以下是创建和使用数据库配置文件的详细步骤:1.创建数据库配置文件创建配置文件:在项目的根目录或适当的位置创建一个配置文件,例如 config.php。编写配置信息:在 config.php 文件中编写数据库连接......
  • 网站连接数据库配置文件
    网站连接数据库的配置文件通常包含数据库连接所需的各项参数。这些参数包括数据库类型、主机地址、端口号、数据库名称、用户名和密码等。下面是一些常见的数据库配置文件示例:MySQL配置文件示例假设你使用的是PHP语言,以下是一个典型的MySQL数据库配置文件(db_config.php)......
  • 如何去除Windows10文件资源管理器上的6个文件夹:桌面、视频、图片、文档、下载、音乐和
    尽管 Win10 提供了迄今为止最先进和丰富的功能,但并不是每一个人都希望其预装那么多的组件。长期以来,微软通常会在Windows资源管理器中包含6个“桌面、文档、下载、音乐、图片和视频”的默认存储位置。在2017年10月的“秋季创意者更新”之后,它又增加了“3D对象”。其旨在为......
  • POI导出excel文件加水印
    百分百能用,我用的POI版本是5.2.3,效果如下importlombok.extern.slf4j.Slf4j;importorg.apache.poi.openxml4j.opc.PackagePartName;importorg.apache.poi.openxml4j.opc.PackageRelationship;importorg.apache.poi.openxml4j.opc.TargetMode;importorg.apache.poi.xss......
  • 【主机持久化】启动文件夹
    用户每次登录时,启动文件夹中的应用程序、文件和快捷方式会自动启动,通常用来引导用户的环境配置(设置壁纸、快捷方式等),可以通过CobaltStrike客户端中执行beacon>execute-assemblyC:\Tools\SharPersist\SharPersist\bin\Release\SharPersist.exe-tstartupfolder-c"C:\Windows......
  • 织梦数据库配置一个典型的 common.inc.php 文件中的数据库配置示例
    <?php//数据库配置$cfg_dbhost='localhost';//数据库服务器地址$cfg_dbport=3306;//数据库端口$cfg_dbase='your_database_name';//数据库名称$cfg_dbuser='your_username';//数据库用户名$cfg_dbpw='your_password';......
  • 织梦网站迁移后如何修改数据库配置文件?
    准备数据库:登录到数据库管理界面(如phpMyAdmin或其他数据库管理工具)。新建一个数据库用于织梦CMS。导入数据库文件:在数据库管理界面中选择新建的数据库。导入之前下载或获取的SQL文件。执行导入过程以填充数据库表结构及数据。修改数据库配置文件:找到织梦CMS安......