[极核教学]esp32IDF向helloworld工程移植自己的代码文件
仓库:https://gitee.com/karlkenneth/esp32_learn
2.1向helloworld工程移植代码
准备
1、存放工程的文件夹
2、esp32s3N16R8_devkit开发板
3、想要移植进esp32的代码文件
跑通helloworld工程
1、将helloworld复制到喜欢的目录。不要直接在idf文件夹编译,保持idf和例程的原生态,保持清爽

2、打开复制出来的工程,在终端输入idf加载环境(不知道这个功能怎么配置的去看我第一期教程)

3、关掉最小编译(这样才能设置PSRAM提升性能)

4、设置芯片,配置菜单,编译烧录三部曲(这部分不懂的也可以翻我以前的教程)
idf.py set-target esp32s3
idf.py menuconfig (Flash->QIO,80Mhz,16M;PSRAM->Octal,80Mhz;主频->240Mhz)
idf.py build flash

5、查看打印,正常跑起来就行

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

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

修改main文件夹下的CMakeLists.txt使文件纳入编译范围
1、打开main文件夹下的CMakeLists,将PRIV_REQUIRES spi_flash这行删掉(因为main组件作为特殊的组件默认就依赖了公共组件,这里例程添加依赖是为了编程规范,我们简洁点把它删掉)

2、添加需要编译的源文件(注意要带路径,后续有新增需要编译的源文件都要记得在这里添加,不然调用的函数未定义编译不过)

3、添加头文件路径(如果你不继续新增文件夹,这一项就不咋动,应该没有人天天新建文件夹来放新代码吧)

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