Page 1 of 1

除了使用idf.py set-target 指令,还能用别的方法修改目标芯片吗?

Posted: Fri Jul 02, 2021 1:32 pm
by joseph_ji
我使用官方的方法选择了芯片,使用命令idf.py set-target esp32c3;接下来,我想直接使用makefile编译,而不使用idf.py build,但是使用工程下面的makefile去make后,是不是又是使用默认的esp32芯片的配置;
所以我想请问一下:
1.是不是有其他方法可以修改目标芯片?
2.或者使用idf.py build之后,工程下面的makefile文件有被更新吗?我修改的是工程目录下main/里面的CMakeLists.txt,但是并没有看到工程下的makefile更新?

使用的工程是官方的esp-hosted例程

请帮忙回复下,谢谢!

Re: 除了使用idf.py set-target 指令,还能用别的方法修改目标芯片吗?

Posted: Mon Jul 05, 2021 2:08 am
by ESP_Gargamel
c3 应该是不支持 make 了,请使用 idf.py。

Re: 除了使用idf.py set-target 指令,还能用别的方法修改目标芯片吗?

Posted: Mon Jul 05, 2021 7:25 am
by joseph_ji
你好,再请教个问题:
我在esp-hosted的工程下,自己增加了两个文件test.c和test.h;简单写了一个test()函数;然后到app_main.c的主函数app_main()里面去调用test();但是编译报错如下,能否告知一下该如何解决?
M%OC1~P(G1F3S14)UXK[W9S.png
M%OC1~P(G1F3S14)UXK[W9S.png (26.76 KiB) Viewed 8431 times

Re: 除了使用idf.py set-target 指令,还能用别的方法修改目标芯片吗?

Posted: Mon Jul 05, 2021 7:59 am
by joseph_ji
ps:我在app_main.c里面是有加#include "test.h"的

Re: 除了使用idf.py set-target 指令,还能用别的方法修改目标芯片吗?

Posted: Mon Jul 05, 2021 8:17 am
by ESP_Gargamel
你的 test.c 放到哪个目录了?你也需要修改 CMakeLists.txt,否则,你新加的源文件不会被编译。比如你放在 main 目录,那你就需要修改该目录下的 CMakeLists.txt,添加你自己的 .c 进去。

Re: 除了使用idf.py set-target 指令,还能用别的方法修改目标芯片吗?

Posted: Mon Jul 05, 2021 9:38 am
by joseph_ji
感谢回复!已经在CMakeLists.txt添加了"test.c",确实是这个问题;
但我有一个新的疑问:
就是我在test.c里面包含了components里的头文件(比如#include "esp_gap_ble_api.h"),且调用了你们封装的api函数(比如esp_ble_get_bond_device_num(),定义在esp_gap_ble_api.c里面),那我也需要在CMakeLists.txt里添加头文件路径和esp_gap_ble_api.c文件吗?那esp_gap_ble_api.c里面链接到的更多的库文件,我岂不是都要一个一个加到CMakeLists.txt里面?

麻烦回复一下我的疑问,谢谢!

Re: 除了使用idf.py set-target 指令,还能用别的方法修改目标芯片吗?

Posted: Mon Jul 05, 2021 9:50 am
by ESP_Gargamel
不需要,每个 component 会管理好自己的源文件、头文件等。你可以参看 IDF 里 components 下的 CMakeLists.txt。另外,也请先看下:https://docs.espressif.com/projects/esp ... ystem.html

Re: 除了使用idf.py set-target 指令,还能用别的方法修改目标芯片吗?

Posted: Mon Jul 05, 2021 10:36 am
by joseph_ji
不对啊,那我只添加了"test.c"到CMakeLists.txt里面,为什么会报错,找不到esp_gap_ble_api.h这个头文件:
TJ86GN9`%`~TYW{I%K16WWF.png
TJ86GN9`%`~TYW{I%K16WWF.png (30.32 KiB) Viewed 8404 times

Re: 除了使用idf.py set-target 指令,还能用别的方法修改目标芯片吗?

Posted: Mon Jul 05, 2021 10:40 am
by joseph_ji
我把我的CMakeLists.txt和test.c .h文件上传,麻烦你帮我解答一下;
我用的是helloworld的工程,不复杂;
如果按照这种报错,我需要一直添加好多库文件,我感觉应该不是这样;

Re: 除了使用idf.py set-target 指令,还能用别的方法修改目标芯片吗?

Posted: Mon Jul 05, 2021 10:57 am
by ESP_Gargamel
idf.py menuconfig,Component config → Bluetooth,把蓝牙打开。