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

joseph_ji
Posts: 70
Joined: Thu Jun 17, 2021 1:26 am

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

Postby joseph_ji » Fri Jul 02, 2021 1:32 pm

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

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

请帮忙回复下,谢谢!

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

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

Postby ESP_Gargamel » Mon Jul 05, 2021 2:08 am

c3 应该是不支持 make 了,请使用 idf.py。

joseph_ji
Posts: 70
Joined: Thu Jun 17, 2021 1:26 am

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

Postby joseph_ji » Mon Jul 05, 2021 7:25 am

你好,再请教个问题:
我在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 8430 times

joseph_ji
Posts: 70
Joined: Thu Jun 17, 2021 1:26 am

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

Postby joseph_ji » Mon Jul 05, 2021 7:59 am

ps:我在app_main.c里面是有加#include "test.h"的
Attachments
M%OC1~P(G1F3S14)UXK[W9S.png
M%OC1~P(G1F3S14)UXK[W9S.png (26.76 KiB) Viewed 8421 times

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

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

Postby ESP_Gargamel » Mon Jul 05, 2021 8:17 am

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

joseph_ji
Posts: 70
Joined: Thu Jun 17, 2021 1:26 am

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

Postby joseph_ji » Mon Jul 05, 2021 9:38 am

感谢回复!已经在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里面?

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

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

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

Postby ESP_Gargamel » Mon Jul 05, 2021 9:50 am

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

joseph_ji
Posts: 70
Joined: Thu Jun 17, 2021 1:26 am

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

Postby joseph_ji » Mon Jul 05, 2021 10:36 am

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

joseph_ji
Posts: 70
Joined: Thu Jun 17, 2021 1:26 am

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

Postby joseph_ji » Mon Jul 05, 2021 10:40 am

我把我的CMakeLists.txt和test.c .h文件上传,麻烦你帮我解答一下;
我用的是helloworld的工程,不复杂;
如果按照这种报错,我需要一直添加好多库文件,我感觉应该不是这样;
Attachments
test.h
(69 Bytes) Downloaded 867 times
test.c
(140 Bytes) Downloaded 812 times
CMakeLists.txt
(505 Bytes) Downloaded 669 times

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

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

Postby ESP_Gargamel » Mon Jul 05, 2021 10:57 am

idf.py menuconfig,Component config → Bluetooth,把蓝牙打开。

Who is online

Users browsing this forum: No registered users and 135 guests