8.7 KiB
Star please~
【Vedio】PikaScript hand by hand
Get PikaScript:
Use Pika package manager PikaPackage.exe
-
Run the PikaPackage.exedirectly, then the pikascript repo would be downloaded autoly in the /tmp/pikaSCript folder of your current disc.
-
Add requestment.txtto the same folder of PikaPackage.exe then run pikaPackage.exe, the core, pre-compiler and moudles would be installed autoly in the current folder.
-
Released moudles:packages.toml
1. Abstruct
PikaScript is an ultra lightweight Python engine with zero dependencies and zero configuration, that can run with 4KB of RAM (such as STM32G030C8 and STM32F103C8), and very easy to deploy and expand.
Folders
src - core code
bsp - mcu/board support
port - OS support
document - developt document
examples - example scripts
package - packages and moudles
pikaCompiler - pre-compiler write by Rust, used to bind C function to python moudle.
pikaPackageManager - pacakge manager
2.Device driver
MCU/Board | gpio | uart | pwm | adc | rgb | i2c | spi |
---|---|---|---|---|---|---|---|
PikaPi Zero | √ | √ | √ | √ | √ | ||
stm32g030c8 | √ | √ | √ | √ | - | ||
stm32g070cB | √ | √ | √ | √ | - | ||
stm32f103c8 | √ | √ | √ | √ | - |
3.Characteristic
(1)Run environment
Support run in mcu without OS or file system. Can run in everywhere with RAM ≥ 4kB and FLASH ≥ 32kB,such as stm32g030, stm32f103c8t6,esp8266.
(2)Develop enviroment
Support run and program python scripts by serial.
Support IDEs like Keil, IAR, rt-thread studio and segger embedded studio to develop C moudle.
Support build tools like CMake, makeFile and Scons.
Zero dependencies, zero configuration, out-of-the-box, 极易集成进已有的C工程。
极易拓展自定义的C原生函数。
支持跨平台,可在linux环境开发内核。
(3)语法特性
使用python3标准语法的子集。
在编译时支持python类和方法定义,完整支持封装、继承、多态、模块功能 - 基于Pika预编译器。
在运行时支持python方法调用、变量定义、对象构造、对象释放、控制流(if\while) - 基于Pika运行时内核。
(4)源码规范
注重源码可读性,命名规范,标准统一,完全不使用宏,几乎不使用全局变量。
完整的googletest单元测试。
(5)stm32例程
(6)开发手册
4.交流与技术支持:
微信交流群
群已经满啦,加我QQ拉你进群~ qq: 645275593
Tencent QQ: 645275593
E-mail: 645275593@qq.com
5.贡献者
内容 | 贡献者 |
---|---|
捐赠:GD32E103TB芯片2片 | 信息牛(微信名) |
Rt-thread 支持包模板 | Meco Jianting Man |
捐赠:移远EC600S-CN 4G模块 | 移远模块 |
捐赠:博流BL706 开发板 | 博流智能 bouffalolab |
捐赠:中国移动CM32M101A 开发板 | 孟巍(微信名) |
捐赠:APM32F030R8 开发板 | 极海半导体 陈成 |
捐赠:APM32E103VB 开发板 | 极海半导体 陈成 |
捐赠:APEX-Link仿真器 | 极海半导体 陈成 |
源码格式化,增加git属性文件 | Meco Jianting Man |
demo/simulation-keil | 千帆(微信名) |
demo/stm32f103zet6/demo01-led-stm32f103zet6 | 甜航 |
demo/stm32f103zet6/demo02-led-stm32f103zet6_tworoot | 甜航 |
demo/stm32f407zgt/demo01-led-stm32f407vgt | 甜航 |
6.内核测试与开发
linux下测试pikascript内核(推荐ubuntu20.04):
step1: 拉取项目
git clone https://github.com/pikastech/pikascript
cd pikascript/src
step2: 编译项目
sh init.sh # 第一次编译前运行,之后就不用运行了
sh make.sh # 编译项目
step3: 运行单元测试
sh test.sh
step4: 运行基准测试
sh test-banchmark.sh
step5: 运行demo
./build/src/boot/demo06-pikamain/pikascript_demo06-pikamain
7.Demo展示
Demo 01 万物起源点个灯
Demo 02 串口测试
Demo 03 读个ADC试试
Demo 04 PWM输出
Demo 05 RGB流水灯
这几个Demo占用的RAM最大值只有3.56K,把1K的堆栈也算上就是4.56K,Flash最大占用是30.4K,以STM32F103C8T6的20K RAM和64K Flash为标准,RAM才用掉不到25%,Flash才用掉不到50%。
我们可以简单对比一下micropython的常用芯片STM32F405RG和这次跑PikaScript的芯片STM32G070CB
RAM资源对比
Flash资源对比
参考价对比(以2021年9月11日立创商城10片售价为参考)
拓展能力如何呢?
除了设备驱动之外,为mcu开发自定义的python脚本绑定在pikascript的开发框架下非常轻松,下面两个Demo就是自定义的C模块拓展,这个Demo基于ARM-2D图像驱动库开发了一些python脚本接口。