本帖最后由 xhackerustc 于 2024-5-1 19:19 编辑
这块FireBeetle 2 ESP32C6开发板做工精良,拿在手里质感相当nice,主控采用乐鑫的ESP32C6FH4,据官方datasheet:F表示封装内flash(而且是QSPI的哦),H表示高温,后面的“数字4”表示封装内的flash是4MB的。
esp-idf获取
笔者习惯于linux下做开发,恰巧esp-idf对linux支持非常好。如果从来没有下载过esp-idf,那么可以:
git clone --recursive https://github.com/espressif/esp-idf.git
如果以前有下载过esp-idf,笔者就属于这种情形,在esp32c3上用过,只是版本比较老还是v4.4的,所以必须和espressif仓库sync一下:
cd YOUR_DIR_TO_esp-idf
git checkout master
git pull
git submodule update --init --recursive
esp-idf相关工具安装
linux下,esp-idf相关工具(比如toolchain、openocd等等)会安装在~/.espressif/,笔者每次升级会删除这个目录后再次安装,这样会保证老版本完整删除,用和官方一致的新版本,当然这一步见仁见智,可以不删除老版本工具只安装新版本。笔者的操作是:
rm -rf ~/.espressif/
./install.sh esp32c6
万事具备点个灯试试
不过在此之前我们需要设置下环境变量:
source export.sh
esp-idf里有现成的点灯例子:
cd examples/get-started/blink
因我们目标是esp32c6:
idf.py set-target esp32c6
我们需要配置一下(这和linux内核编译配置是非常像的):
idf.py menuconfig
当然esp-idf自带的这个例子用于esp官方的开发板,它和FireBeetle 2 ESP32C6板级设计上有些区别,所以我们要修改下配置
根据原理图,板载一LED接到GPIO15上,可通过GPIO拉高拉低来开/关LED:
Example Configuration ->
Blink LED type -> //把这里改成GPIO,默认是LED strip
再把GPIO号改成15。整体如下图所示
默认compiler options是带调试的,个人不爽需要gcc全速,所以回到menuconfig主界面,进compiler options,把Optimization Level改成-O2:
esp-idf对于esp32c6默认flash是DIO,2MB大小,咱这板子上是芯片内置4MBflash支持QSPI,所以进Serial flasher config --->改成QIO 4MB flash如图所示:
idf默认串口输出到真实uart,咱让它输出到usb:
Component config --->
ESP System Settings --->
Channel for console output //把这个改成USB Serial/JTAG Controller
整体如图所示:
拿到的板子默认烧录了一个点灯固件,为有所区别咱改点代码,在LED两边加个*:
diff --git a/examples/get-started/blink/main/blink_example_main.c b/examples/get-started/blink/main/blink_example_main.c
index 1b15c04904..7e290fdb88 100644
--- a/examples/get-started/blink/main/blink_example_main.c
+++ b/examples/get-started/blink/main/blink_example_main.c
@@ -95,7 +95,7 @@ void app_main(void)
configure_led();
while (1) {
- ESP_LOGI(TAG, "Turning the LED %s!", s_led_state == true ? "ON" : "OFF");
+ ESP_LOGI(TAG, "Turning the *LED* %s!", s_led_state == true ? "ON" : "OFF");
blink_led();
/* Toggle the LED state */
s_led_state = !s_led_state;
编译烧录:
idf.py build
esptool.py -p /dev/ttyACM0 --chip esp32c6 -b 460800 --before default_reset --after hard_reset write_flash --flash_mode dio --flash_size 4MB --flash_freq 80m 0x10000 build/blink.bin
这时候板子上LED开始闪烁,电脑如果打开usb cdc串口会显示如图