接触过 Python 语言的人都知道,Python 可以编译成.pyc 文件,它是一种二进制文件,可以提高程序的加载速度,同时 也是一种保护源代码的有效方法。那么在 micropython 中,又该如何保护源程序呢? 贴心的 micropython 创始人也提供了类似的功能,可以将.py 文件编译成.mpy 文件。接下来,介绍一下具体的实现步骤。(本文主要以 Linux Ubuntu 系统为例)
搭建 micropython 编译环境
1.安装 arm-none-eabi-gcc 交叉编译工具和 gcc 编译器。
2.下载 micropython 源码包到本地,我下载到了 home 目录下。
生成 mpy 文件
1.切换到 /home/micropython/mpy-cross 目录执行 make,编译生成 mpy-cross 工具。
2.在 mpy-cross 目录新建一下 test.py 文件,输入点亮 LED4,用于测试。
import pyb
pyb.LED(4).on()
3.执行编译 mpy 文件的命令。
其他相关功能可查看同目录下的 README.md 文件。
4.命令执行成功后,你就能发现同目录下出现了一个 test.mpy 文件。
5.将 test.mpy 文件拷贝放到 TPYBoard v10x 的 TPFLASH 中,直接在 main.py 中 import 即可。
import test
6.重置 TPYBoard 使其重新运行程序,大家就会看到 LED4 亮起来了。
注意: 如果运行时出现“ ValueError: invalid .mpy file ”错误的话,需要更新一下 TPYboard 的 micropython 固件(最新版本是 1.9.3)。
micropython 官方下载地址: http://micropython.org/download
DFU-USB 接口烧写固件参考: http://tpyboard.com/support/reference11/302.html
ST-LINK 烧写固件参考: http://tpyboard.com/support/reference11/239.html
虽然是进行了加密编译成了 mpy 文件,但是还有一些缺陷,毕竟 mpy 文件仍然是存放在 TPFLASH 或 TF 卡中,很容易被别人拷贝,也很有可能会被反编译出来。 是否可以直接将 Python 脚本文件直接编译在固件中呢?答案显然是可以!想知道的话,
下一篇我分享下《 TPYBoard Micropython 添加自定义类库》的教程。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.