完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
开发环境
软件:Ubuntu 18.04虚拟机 硬件:esp32s2开发板 ubuntu安装编译依赖环境: sudo apt-get install git make gcc libncurses5-dev flex bison gperf python-serial 如果已经安装过了,不会再次安装。另外1.15之后版本mpy依赖cmake,这个后面编译遇到问题再讲。 1.下载源码 创建工作目录: mkdir workcd work 下载mpy源码: git clone https://gitee.com/mirrors/micropython.git 下载IDF源码: git clone https://gitee.com/EspressifSystems/esp-idf.gitesp-idf: ESP-IDF 是由乐鑫官方推出的针对 ESP32 和 ESP32-S2 系列芯片的开发框架。ESP-IDF 国内镜像仓库,Issues 和 PRs 请仍旧提交到 github。重要:Gitee 中 ESP-IDF 仓库的使用,请先参看 https://gitee.com/EspressifSystems/esp-gitee-tools 中的说明文档。ESP-IDF 及其子模块,每日会自动同步若干次。https://gitee.com/EspressifSystems/esp-idf.git 为了快速下载我这边都是从码云镜像下的。对于IDF来说下载下来后还需要更新大量子模组,这个IDF官方也给出了解决办法,参考以下链接说明进行更新IDF子模组: docs/README-submodule-update.md · 乐鑫开源/esp-gitee-tools - Gitee.com 进入IDF切下分支,分支切完最好更新下子模组 cd esp-idfgit checkout v4.2 按照上面的方法在更新下子模组,然后下载IDF依赖工具,以及设置环境变量。 cd esp-idf./install.shsource export.sh 2.编译固件 2.1先尝试编译esp32固件 编译默认的esp32固件,测试下编译环境是否可用。 cd micropythonmake -C mpy-crosscd ports/esp32make submodulesmake 如果能编译过那可以进行下一步尝试编译esp32s2固件了,当然也可能会遇到报错,比如cmake版本不符合要求,下面讲下如何更新符合要求的cmake版本。 2.2更新cmake 移除原有cmake: apt remove cmake 安装新cmake: cd work# 下载cmakewget https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.tar.gz# 解压:tar zxvf cmake-3.12.2-Linux-x86_64.tar.gz# 创建软链接# 注: 文件路径是可以指定的, 一般选择在/opt 或 /usr 路径下, 这里选择/optmv cmake-3.12.2-Linux-x86_64 /opt/cmake-3.12.2ln -sf /opt/cmake-3.12.2/bin/* /usr/bin/ 然后执行命令检查一下: >>>cmake --version安装完成 2.3编译esp32s2固件 更改ports/esp32/Makefile文件 找到 BOARD ?= GENERIC 改为 BOARD ?= GENERIC_S2 重新make 这里出现报错找不到tu***_cdc_acm.h文件 IDF分支需要切到最新 cd esp-idf git checkout v4.3 然后在更新下idf子模组,方法见上文 继续make编译固件,可能会报错某些python依赖包没有或版本不对,自己按照提示手动pip安装下对应版本的包就可以,然后在make编译 3.固件烧录 我们可以直接在ubuntu上烧录编好的固件,将板子USB串口接入ubuntu虚拟机 查看是否接入成功 ls /dev/ttyUSB0 3.1烧录方法一 擦除指令:make erase 自动烧录:make deploy 3.2烧录方法二:使用esptool.py烧录 其实方法一本质也是在调用esptool烧录只是具体的地址型号选择不用你指定。 我们编译好的固件路径位于:ports/esp32/build-GENERIC_S2/firmware.bin sudo chmod 777 /dev/ttyUSB0esptool.py -b 460800 -p /dev/ttyUSB0 erase_flashesptool.py -b 460800 -p /dev/ttyUSB0 write_flash 0x1000 build-GENERIC_S2/firmware.bin 每次板子插拔都需要重新给ttyUSB0设置权限才能使用,比较麻烦,可以采用以下办法一劳永逸: 将用户添加到 dialout 组,来获许读写权限:注意:终端窗口重启过后idf的环境变量需要重新设置才能生效,这样才可以再次编译固件 cd esp-idf source export.sh 这个编出来的固件适用于普通的esp32s2,带有外部psram的esp32s2也可以使用,但内存仍只有那点,而且这个的repl默认开在esp32s2自身的USB口上的,而不是串口,这点需要注意。 下一章节,我们来继续讲解如何更改源码开启psarm获取更大内存,以及repl改回到串口,USB MSC功能的开启。 |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9057 浏览 16 评论
4086 浏览 18 评论
1175浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:53 , Processed in 1.236558 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号