完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>
开始之前,首先要感谢一下TPYBoard技术交流群(157816561)-云之初晓网友的分享。
今天简单分享下如何将自己编写的一些Python
脚本的类库添加到固件中,在使用时只需
import
调用,就像使用内置的
pyb
一样简单便捷
;
同时还有另外一个重要的功能,就是可以很好的保护源代码。比起生成
mpy
加密文件这种方式来说,显然添加到固件中会更加安全可靠。
搭建micropython
编译环境
1.
安装
arm-none-eabi-gcc
交叉编译工具和
gcc
编译器。
sudo apt-get install gcc-arm-none-eabi
sudo apt-get install gcc
2.
下载
micropython
源码包到本地,我下载到了
home
目录下。
sudo git clone --recursive
MicroPython
的源码结构
docs/ micropython
的说明文档
(restructuredText)
drivers/
一些外接设备的实现例程
(eg:ds18b20,nrf24l01)
examples/ micropython
的使用例程
extmod/ C
语言实现的模块
lib/
各类芯片的
lib
文件
mpy-cross/
自带的交叉编译器,可以将
.py
生成
.mpy
加密文件
ports/
移植到各类
MCU
上的源码
(eg:STM32,esp8266)
tests/
测试框架和
Python
脚本
tool+9s/
工具
进入ports
目录下你会发现,
micropython
根据不同的
MCU
运行平台进行了分类,比如
esp8266
就是运行在
esp8266-WIFI
模块上的
micropython
,
stm32
是运行在
stm32
上的,还有
cc3200
。
然后进入stm32/boards
目录下
,
里面又根据
stm32
不同的系列进行了划分。
添加自定义Py
类库
3.
回到
stm32/
目录下,将需要添加到固件中的
Python
脚本类库放到
modules/
目录下。编译之前,请确保程序运行无误。为了测试新建了一个
test.py
文件,简单写了两个函数。如下
:
import pyb
def on(): pyb.LED(4).on() def off(): pyb.LED(4).off()
4.
执行编译命令,等待编译完成。
sudo make BOARD=PYBV10
BOARD
参数为
stm32/boards/
目录下相应的开发板名称。
本次教程用的是TPYBoardv102
(蓝色)开发板,兼容
PYBV10
,所以选择
PYBV10
开发板编译。
若是TPYBoardv102
(绿色)基础板,同样选择
PYBV10
。
若是TPYBoardv102
(黑色)开发板,需选择
PYBV11
。
生成的固件在stm32/build-PYBV10/
目录下的
firmware.dfu
和
firmware.hex
文件。
5.
将
dfu
和
hex
文件拷贝到本地,进行烧写。
dfu
文件的烧写教程,请参考:见评论
hex
文件的烧写需要借助
ST-LINK
工具,请参考:见评论
6.
烧写完毕后进行测试,在
main.py
文件输入以下内容:
import pyb
import test test.on() pyb.delay(1500) test.off() |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
使用stm32l451片子,对ad7606进行3通道100k采样值跳动问题?
1027 浏览1 评论
STM32进行DMA数据转运,为什么只有A组最后一位数据被转运到B组去?
1516 浏览2 评论
1828 浏览3 评论
1421 浏览0 评论
嵌入式开发 Win11安装ST-Link 提示 设备描述符请求失败 怎么处理?
1557 浏览0 评论
小黑屋|手机版|Archiver|德赢Vwin官网(湘ICP备2023018690号)
GMT+8, 2024-8-24 19:51, Processed in 0.419846 second(s), Total 39, Slave 33 queries .
Powered by德赢Vwin官网 网
© 2015bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号