esp32自行编译micropython固件并添加基于python的模块

添加自定义py文件到bin 有三个优点

# modules 添加py文件的方法

然后知道 modules 目录 就是 我们需要添加自定义py文件的地方

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
cd ~/mpy-bin/micropython/ports/esp32/modules
nano test.py
-----------------
import time

def hello():
    print("hello world")
def hw(str):
    print(str)
def cycle(str):
    while True:
        print(str)
        time.sleep(1)

重新编译,烧录新固件测试

1
2
3
import test
test.hw('123')
test.cycle('cycle me')

这就完成了。

同名的模块执行优先级依次为: flash的.py => flash的.mpy => rom的.py => rom的.c

# 固件 简单 自定义 boot.py 和 main.py

如果想自定义 开机启动启动的 boot.py 和 main.py 需要编辑 ~/mpy-bin/micropython/ports/esp32/modules 这个目录下的 inisetup.py 即可。 可以在boot.py 里面完成联网 和下载 main.py 功能完成自动更新

# 其他代码的保护

micropython 官方提供了 mpy方法,可以把 py文件转成中间代码 ,有一点类似pythone的pyc文件。但是 因为在单片机这种场景下,会节省很多内存也会提升一些性能。只是代码保护功能 和 pyc差不多了,基本没啥用。 加密 本身不一定是单纯的保护代码,有时候是保护算法和api参数,增加搞事情的时间成本。
较为靠谱的方法 核心内容用C来完成。 这样机器码转汇编工作量是最大的。
再次 就是 核心的程序 写成类,放到固件modules里面
其他功能 全部拆分到 mpy文件里面,然后main.py调用,同时 main.py 尽量少些逻辑了哦。 主要逻辑都放到 类里面去。

另外就是咋测试成功后,最后的固件 禁用usb功能

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计