794|7

35

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

[FireBeetle 2 ESP32C6开发板]linux下开发环境搭建 [复制链接]

本帖最后由 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串口会显示如图

 

此帖出自无线连接论坛

最新回复

还是感觉python比较方便     详情 回复 发表于 2024-5-1 08:48
点赞 关注
 

回复
举报

228

帖子

3

TA的资源

一粒金砂(高级)

沙发
 

这个高级


此帖出自无线连接论坛

点评

大家喜欢就好  详情 回复 发表于 2024-4-30 19:43
 
 

回复

6105

帖子

4

TA的资源

版主

板凳
 

linux下玩更方便!

此帖出自无线连接论坛

点评

确实是*nix系统下开发更方便,原厂开发工具就是esp-idf,它在*nix环境下支持得比较好  详情 回复 发表于 2024-4-30 19:45
 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(中级)

4
 

大家喜欢就好

此帖出自无线连接论坛
 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(中级)

5
 
damiaa 发表于 2024-4-30 10:26 linux下玩更方便!

确实是*nix系统下开发更方便,原厂开发工具就是esp-idf,它在*nix环境下支持得比较好

此帖出自无线连接论坛
 
 
 

回复

6483

帖子

9

TA的资源

版主

6
 

还是感觉python比较方便  

此帖出自无线连接论坛

点评

要说方便那是python方便,但feature complete、性能综合考虑还是用官方的esp-idf,另外感觉要玩更复杂的东东用python不太好做,后面评测可以看出来,敬请期待。    详情 回复 发表于 2024-5-1 10:12
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(中级)

7
 
秦天qintian0303 发表于 2024-5-1 08:48 还是感觉python比较方便  

要说方便那是python方便,但feature complete、性能综合考虑还是用官方的esp-idf,另外感觉要玩更复杂的东东用python不太好做,后面评测可以看出来,敬请期待。

 

此帖出自无线连接论坛

点评

PS:顺着这次测评把esp-idf升级了一把,发现esp-idf做得更好了,功能更多,很多以前要自己移植的现在官方直接弄好了更方便了。要发挥芯片最大功能,综合考虑方便程度还是得上esp-idf  详情 回复 发表于 2024-5-1 10:19
 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(中级)

8
 
xhackerustc 发表于 2024-5-1 10:12 要说方便那是python方便,但feature complete、性能综合考虑还是用官方的esp-idf,另外感觉要玩更复杂的 ...

PS:顺着这次测评把esp-idf升级了一把,发现esp-idf做得更好了,功能更多,很多以前要自己移植的现在官方直接弄好了更方便了。要发挥芯片最大功能,综合考虑方便程度还是得上esp-idf

此帖出自无线连接论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表