如何在MicroPython TPYBoard 添加自定义类库

开始之前,首先要感谢一下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 https://github/micropython/micropython

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文件的烧写教程,请参考:http//.tpyboard.com/support/reference11/302.html

 

 

 

hex文件的烧写需要借助ST-LINK工具,请参考:http//.tpyboard.com/support/reference11/239.html

 

6.烧写完毕后进行测试,在main.py文件输入以下内容:

import pyb
import test
test.on()
pyb.delay(1500)
test.off()

 

 

转载于:https://my.oschina.net/micropython/blog/1600629

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值