pikapython/document/2.十分钟快速部署.md
2021-11-17 00:40:42 +08:00

6.5 KiB
Raw Blame History

2.十分钟快速部署

在本篇文档中将会介绍为已有的keil工程部署PikaScript的方法。

PikaScript几乎没有全局变量和宏仅依赖标准库因此为已有的工程部署PikaScript是非常容易的。

下面是部署PikaScript的具体步骤。

(1)下载PikaScript包管理器

PikaScript包管理器可以帮助你拉取pikascript所需要的所有源码和工具并且提供版本选择功能方便你切换版本。

并且PikaScript包管理器使用gitee源能够在大陆顺畅地使用不需要科学上网。

进入PikaScript主仓库

https://github.com/mimilib/pikascript

下载PikaScript包管理器PikaPackage.exe

image

然后打开你要部署的工程在工程的根目录下新建pikascript文件夹然后把PikaPackage.exe复制进去。

image

你的工程仅需要包含一个支持printf的串口初始化然后就可以愉快地使用pikascript了。

通常的脚本解释器都依赖操作系统和文件系统而pikascript不需要这些如果你部署过其他的脚本引擎就会很清楚PikaScrip具有真正的超轻量级特性。

(2)拉取源码,预编译模块

接下来在PikaPackage.exe的帮助下我们可以轻松地拉去指定版本的源码和模块。

拉取源码和模块通过一个requestment.txt的文件如果你熟悉python的pip包管理器就会发现pikascript的requestment.txt文件格式与pip是一致的。

在项目的pikascript文件夹下新建一个requestment.txt文件然后写入以下内容。

pikascript-core==v1.2.0
PikaStdLib==v1.1.0

这表示使用v1.2.0版本的pikascript解释器内核和v1.1.0版本的标准库,解释器内核和标准库是必选项,而其他的模块可以有选择地添加,在初次部署时,应当只添加解释器和标准库以避免不必要的麻烦。

你可以照抄stm32g030的requestment.txt内核和标准库版本, 这是官方支持的开发板Pika派—Zero所使用的版本。而所有可选的版本可以在packages.toml文件中查看。

现在的pikascript文件夹就有了pikaPackage.exe和requestment.txt两个文件双击运行pikaPackage.exe在requestmemt.txt中指定的源码和模块就会被拉取下来。

image

拉取后的文件如下图所示pikascript-core是内核源码pikascript-lib是模块库pikascript-api是模块APIrust-msc-latest-win10.exe是pikascript专用的预编译器。

image

如果你想使用其他的版本在requestment.txt中修改版本号然后再次运行pikaPackage.exe即可原先的版本会被覆盖。

拉取完源码之后接下来编写pikascript运行的python脚本我们在pikascript文件夹新建一个main.py文件。

然后写入:

import PikaStdLib

print('hello PikaScript!')

其中import PikaStdLib 表示导入标准库,标准库是必须要导入的,即使没有直接用到,而print('hello PikaScript!')用于测试pikascript是否正常启动。

接下来运行rust-msc-latest-win10.exe将main.py和导入的模块预编译为pikascript的api文件预编译后的文件在pikascript-api文件夹内。

image

我们打开pikascript-api文件夹发现里面有一些.c和.h文件就说明预编译是成功的pikascript预编译器可以把python文件预编译为.c和.h文件。

image

(3)添加源码

在Project中新建三个group建议命名为pikascript-core,pikascript-api和pikascript-lib

image

然后将pikascript文件夹内的三个子文件夹下的.c文件全部添加到keil工程里

image

再然后为pikascript-core和pikascript-api文件夹添加include路径

image

image

(4)调整堆栈

打开工程的启动文件, 在stm32中, 这是一个startup_stm32xxxx.s的文件而在其他平台上你要自己弄清楚如何调整堆栈。

image

建议分配4K的栈空间和16K的堆空间最少也需要分配1K的栈空间和4K的堆空间

4K栈空间对应0x1000, 16K堆空间对应0x4000如下图所示

image

(5)启动PikaScript

在main.c的初始化代码中添加PikaScript的启动代码。

  1. 添加 #include "pikascript.h"

image

  1. 初始化pikaScript并得到pikascript主对象的指针pikaMain

image

结束了?对,结束了,就这么简单,是不是很神奇。

这是因为预编译器在背后做了很多辅助工作,包括自动生成pikaScriptInit()函数。

(6)编译源码

编译源码时需要勾选C99标准而编译优化等级可以任意选择pikascript均支持。

image

然后直接编译即可一般来说是可以直接通过的使用compiler version 5 或者 compiler version 6均可。

结语

部署文档到此就结束了。继续学习PikaScript的标准开发流程请看

3. PikaScipt标准开发流程