背景
在做项目的过程中,因为要使用到一些控制算法,看网上的教程级别都是基于numpy实现的.因此需要在micropython固件中引入numpy
准备工作
- 参考上一篇教程,先编译出常规固件
- 下载micropython的numpy, https://github.com/v923z/micropython-ulab.git
编译步骤
1.按照ulab的教程设置 环境变量,下载代码
export BUILD_DIR=$(pwd)
git clone https://github.com/v923z/micropython-ulab.git ulab
本次下载的版本为6.5.5,(之前已经编译过micropython了,所以相关的esp-idf和micropython下载省略),下载好代码的目录结构如图
2.使能ESP-IDF环境变量
cd micropython/esp-idf
. ./export.sh
3.编译micropython模块(这步骤之前编译micropython的时候应该已经做过,但是我还是执行了一遍)
cd $BUILD_DIR/micropython/mpy-cross
make
cd $BUILD_DIR/micropython/ports/esp32
make submodules
4.编译含有numpy的固件
在micropython/ports/esp32目录下,执行make , /home/jay/esp32s3/ulab/code/micropython.cmake
改成你自己的路径
make BOARD=ESP32_GENERIC_S3 USER_C_MODULES=/home/jay/esp32s3/ulab/code/micropython.cmake all
就可以生成想要板子的firmware.bin了
烧入
按上篇文章的方法烧入
测试
可以使用numpy了
其他
编译了自己的固件后,后续发现主程序启动WIFI时报错
RuntimeError: Wifi Unknown Error 0x0101
应该是内存不足导致的,这个问题将在下一篇文章中解决