[极核教学]esp32IDF通过idf命令新建工程并往里移植代码
仓库:https://gitee.com/karlkenneth/esp32_learn
2.2新建工程并往里移植代码
上一期是拷贝helloworld工程拿来用,这一期呢是自建工程并往里移植代码,废话不多说,发车
准备
1、存放工程的文件夹
2、esp32s3N16R8_devkit开发板
3、想要移植进esp32的代码文件
从idf新建工程
1、我准备在D:\ESP\project\practice目录新建名叫main的工程,从idf进入到想要创建工程的目录

PS:从idf桌面快捷方式进来也行,我这是IDE终端直接加载idf环境,想实现这个功能的去看我第一期教程
2、输入idf.py create-project main(注意这个main是工程名,文件夹名和main文件名会叫这个,因为我希望主函数文件生成时就叫main.c所以直接创建叫main的工程)

3、工程文件夹名改了以免误会,这里就改成idfCreateProj

4、在终端输入
cd idfCreateProj
进入idfCreateProj工程,然后输入设置,配置,编译烧录三部曲
idf.py set-target esp32s3
idf.py menuconfig (Flash->QIO,80Mhz,16M;PSRAM->Octal,80Mhz;主频->240Mhz)
idf.py build flash
重启后出现下面的打印是正常的,因为main里面啥也没做,从main里面跳出来了

将代码文件拷贝进工程
1、在工程main文件夹下新建文件夹(我喜欢叫custom)

2、拷贝头文件和源文件到custom(我的叫fmw_base,是打印工程信息和做版本管理的文件,是工程的基础)

修改main文件夹下的CMakeLists.txt使文件纳入编译范围
1、打开main文件夹下的CMakeLists

2、添加需要编译的源文件和新增的头文件路径(注意每次新增源文件都要在这里添加源文件,每次新增文件夹都要在这里新增头文件路径)

调用移植过来的代码
这个时候文件已经能被编译器找到了,如果你的代码依赖于别的东西那就把移植过来的代码改好,如果不依赖别的东西比如我的代码只是纯打印一些内容,那直接引用头文件然后调用就行
1、引入头文件并调用

2、编译烧录查看结果

cmake自动搜索源文件
一个个添加需要编译的源文件比较麻烦,改成以下这样可以自动搜索custom文件夹下的所有源文件加入到编译。需要避坑的点是每次新增文件,都要在cmake增删一下空内容并保存,用cmake被修改去触发cmake重新配置,才能触发搜索文件,否则cmake会用原来编译的缓存导致识别不到新拷贝进来的源文件
file(GLOB_RECURSE CUSTOM_SRCS "custom/*.c")
idf_component_register(SRCS "main.c"
${CUSTOM_SRCS}
INCLUDE_DIRS "."
"custom"
)

结束!喜欢就赞我
更多推荐


所有评论(0)