【FireBeetle 2 ESP32 C6】怎样编译esp32c6的micropython固件
<div class='showpostmsg'><p>编译固件本身不复杂,困难在于安装编译需要的工具链。因为安装工具链需要访问 github,从github上下载较多的文件,而目前github访问不太稳定,因此会带来一些麻烦。</p><p> </p>
<p>编译推荐在linux环境下进行,可以是真实Linux主机,或者虚拟机,以及windows的Linux子系统。</p>
<p> </p>
<div style=" letter-spacing: -0.08px; word-wrap: break-word">编译 esp32c6 和编译其它 esp32 源码的方法类似,主要就是安装合适版本的 ESP-IDF。因为ESP-IDF更新较快,而micropython只适配了部分版本,因此当 ESP-IDF 更新后,新版本的 ESP-IDF 就不一定能编译成功了。因此编译时需要多参考文档(有时文档说明也不一定是对的,因为文档可能没有即时更新),以及多尝试。</div>
<div style=" letter-spacing: -0.08px; word-wrap: break-word"> </div>
<div style=" letter-spacing: -0.08px; word-wrap: break-word">
<div style=" letter-spacing: -0.08px; word-wrap: break-word">目前 micropython 官方源码中尚未包括 esp32c6(因为很快会包括了),只有第三方的代码仓库,但是方法都是一样的。在文档中描述当前源码仅支持v5.0.4、v5.0.5、v5.1.2、v5.2.0,经过测试v5.2.0版可以正确编译。</div>
<div style=" letter-spacing: -0.08px; word-wrap: break-word"> </div>
<ul>
<li style="letter-spacing: -0.08px; overflow-wrap: break-word;">首先,下载 esp32c6 源码</li>
</ul>
<pre>
<code>git clone https://github.com/tytgatlieven/micropython-esp32c6</code></pre>
<ul>
<li>然后安装必要的软件
<ul >
<li>Debian/ubuntu</li>
</ul>
<pre>
<code>sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0</code></pre>
<ul >
<li>centos 7/8</li>
</ul>
<pre>
<code>sudo yum -y update && sudo yum install git wget flex bison gperf python3 python3-setuptools cmake ninja-build ccache dfu-util libusbx</code></pre>
<ul >
<li>arch</li>
</ul>
<pre>
<code>sudo pacman -S --needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb</code></pre>
<p> </p>
</li>
</ul>
<ul>
<li>再下载 esp-idf</li>
</ul>
<pre>
<code>git clone -b v5.2 --recursive https://github.com/espressif/esp-idf.git</code></pre>
<div style=" letter-spacing: -0.08px; word-wrap: break-word">如果已经用git下载了 esp-idf,可以切换到 5.2版</div>
<pre>
<code>cd esp-idf
git checkout v5.2
git submodule update --init --recursive</code></pre>
<p> </p>
<ul >
<li>安装 idf</li>
</ul>
<pre>
<code>cd esp-idf
./install.sh</code></pre>
<div style=" letter-spacing: -0.08px; word-wrap: break-word">安装时需要从github下载大量文件,如果github访问速度太慢,可以改从espressif服务器下载</div>
<pre>
<code>cd esp-idf
export IDF_GITHUB_ASSETS="dl.espressif.cn/github_assets"
./install.sh</code></pre>
<div style=" letter-spacing: -0.08px; word-wrap: break-word">安装需要占用数G磁盘空间(包括下载的文件和编译产生的文件),因此需要注意留出足够空间(至少需要10G空间,特别是使用虚拟机时)。如果以后micropython更新,也需要根据情况更新 esp-idf。</div>
<p> </p>
<ul>
<li>设置编译环境</li>
</ul>
<p>安装完成后,会提示输入 <span style="background-color:#bdc3c7;">. ./export.sh</span> ,完成编译环境设置(自动设置编译器目录等环境变量)。以后每次编译前,也需要设置一次编译环境。</p>
<p> </p>
<ul >
<li>编译源码</li>
</ul>
<div style=" letter-spacing: -0.08px; word-wrap: break-word">和编译其它固件一样,先构建 mpy-cross。在micropython源码目录下,输入命令:</div>
<pre>
<code>make -C mpy-cross</code></pre>
<div style=" letter-spacing: -0.08px; word-wrap: break-word">然后</div>
<pre>
<code>make -C ports/esp32 BOARD=ESP32_GENERIC_C6</code></pre>
<div style=" letter-spacing: -0.08px; word-wrap: break-word">编译时,Linux主机下会自动利用多核加速编译,在 Winodws(包括Linux子系统)下可以用 -jn 开关指定多核加速编译速度。如:</div>
<pre>
<code>make -C ports/esp32 BOARD=ESP32_GENERIC_C6 -j8</code></pre>
<p style="letter-spacing: -0.08px; overflow-wrap: break-word;"> </p>
<p style="letter-spacing: -0.08px; overflow-wrap: break-word;">如果没有其它问题,经过数分钟编译,就会产生对应的固件文件。编译后的文件在 ./ports/esp32/build-ESP32_GENERIC_C6/ 目录下,固件文件名是 firmware.bin,将它用 esptool.py 等工具下载到 esp32c6 中就完成固件升级。</p>
<p style="letter-spacing: -0.08px; overflow-wrap: break-word;"> </p>
<p style="letter-spacing: -0.08px; overflow-wrap: break-word;"> </p>
</div>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>如果github下载过慢,可以尝试先在 gitee 上将项目复制过来,在用 git 从 gitee 上下载。</p>
<p>编译好的固件文件。</p>
<p> </p>
<div></div>
<p> </p>
<p>ESP32 C6好像支持5GHz,感觉可以测试一下。</p>
wangerxian 发表于 2024-4-28 17:56
ESP32 C6好像支持5GHz,感觉可以测试一下。
<p>看datasheet,提到2.4 GHz 频段但没提5GHZ频段</p>
页:
[1]