LiteOS组件尝鲜-玩转Micropython
MicroPython的由来
Python作为一款基础的简单上手的计算机语言,广受开发者喜爱。美中不足的是Python不能实现对底层的操作,在硬件领域不能很好地发挥作用。于是计算机工程师Damien George利用6个月时间研究能否用Python来控制单片机,从而实现对机器人的操作,最终,MicroPython问世了。
基本介绍
MicroPython旨在能够在微控制器和小型嵌入式系统上实现Python 3.x。MicroPython不依赖底层硬件,理论上可运行在所有的开发板上,但其运行时需要占用一定的内存(内存大小可通过menuconfig菜单中的Micropython Head Size设置,默认为4096字节)。开发板内存太小可能导致其无法运行。
本文档以Linux开发环境及STM32F769IDISCOVERY开发板为例,简单介绍LiteOS上Micropython命令的使用。
开启Mcropython
首先拷贝STM32F769IDISCOVERY的默认配置文件替换当前配置文件,在Linux系统的LiteOS源码根目录下,执行如下命令:
~/Huawei_LiteOS$ cp tools/build/config/STM32F769IDISCOVERY.config .config
执行如下命令打开LiteOS menuconfig菜单。
~/Huawei_LiteOS$ make menuconfig
按如下路径开启Micropython组件及命令。
Components --->
FileSystem --->
[*] Enable RAMFS
Language --->
[*] Enable Micropython
(4096) Micropython Head Size
注:RAMFS为可选组件,如选择该组件,可生成一个/ramfs/hello.py示例文件,在LiteOS的shell中执行micropython /ramfs/hello.py命令可查看其运行结果,Micropython组件依赖vfs,开启Micropython组件后,vfs即自动开启。
保存退出,此时LiteOS会从github自动下载Micropython源代码,关于组件下载的详细流程请参考:https://gitee.com/LiteOS/LiteOS_Components#%E5%9C%A8%E7%BA%BF%E7%BB%84%E4%BB%B6%E4%B8%8B%E8%BD%BD%E6%B5%81%E7%A8%8B
待下载完成后,执行如下命令编译LiteOS工程。
~/Huawei_LiteOS$ make clean;make -j
编译成功后将在out/STM32F769IDISCOVERY/lib目录下生成组件静态库文件libmicropython.a,生成的系统镜像文件为Huawei_LiteOS.bin。
注:下载需要Linux主机可以访问互联网,并安装git。
Micropython命令
查看Micropython命令是否生效
按上述方法使能Micropython后,命令会被编译进系统镜像文件中。使用串口工具进入shell,输入help命令,如果显示Micropython命令,则表明已经生效。
********Hello Huawei LiteOS********
LiteOS Kernel Version : 5.1.0
build date : Dec 8 2021 10:11:04
**********************************
OsAppInit
cpu 0 entering scheduler
app init!
Hello, welcome to liteos demo!
Huawei LiteOS # help
*******************shell commands:*************************
cd date free help hwi log ls memcheck
micropython mkdir pwd swtmr systeminfo task uname watch
Huawei LiteOS #
查看Micropython命令的使用帮助信息。
进入shell, 输入micropython -h
Huawei LiteOS # micropython -h
Usage: micropython [options]
Options:
-h, --help print this help
-v, --version print tool and library version
FILE input python file
Huawei LiteOS #
运行hello.py文件。
Huawei LiteOS # micropython /ramfs/hello.py
This test run the following script code:
print("Hello, wlorld! I'm Micropython.")
a = 8
b = 512
c = a + b
print(c)
print(b"bytes 3344")
for i in range(4):
print(i)
Hello, wlorld! I'm Micropython.
520
b'bytes 3344\x01'
0
1
2
3
Huawei LiteOS #
Micropython当前的支持的功能还比较有限,后续将持续丰富及改进,以方便使用。
结语
未来我们还会持续新增更多组件、开发板、架构、特性等。
感谢您的阅读,有任何问题、建议,都可以留言给我们,让我们一起进步:
https://gitee.com/LiteOS/LiteOS/issues。
为了更容易找到“LiteOS”代码仓,建议访问https://gitee.com/LiteOS/LiteOS,关注“ Watch”、点赞“Star”、并“Fork”到自己账号下,如图所示。
-end-
- 点赞
- 收藏
- 关注作者
评论(0)