您尚未登录。

楼主 # 2021-12-02 13:37:56

lyon1998
Moderator
注册时间: 2021-12-01
已发帖子: 108
积分: 55

【pikascript】常见问题汇总(长期更新)

【1. Pika现在支持多线程吗?】

目前还不支持

【2. 可以动态加载py文件吗】

目前能动态加载单文件,可以参考examples里面的main.py,是支持动态加载的。

【3. 现在这个Python脚本编译后是需要编译进固件吗?是否可以单独写到FLASH或者内存中,用vm来动态调用,是否支持直接更新解析后的字节码?】

Python脚本可以直接编译进固件中,也可以写入到FLASH中,PikaScript读取字符串形式的Python脚本即可运行。Pika将Python脚本解析为字节码的过程可以在MCU上完成,也可以在PC上完成,解析后的字节码同样以字符串形式,即可交给VM执行。

在PC上解析字节码可以使用pikascript/tools/pikaByteCodeGen工具。

【4. PikaScript目前只支持单文件的Python脚本吗?】

是的,Python脚本只支持单文件,C模块已支持多文件。

【5. pikaStdDevice模块是用来干什么的?为什么不能直接调用?】

pikaStdDevice模块是用来统一外设的API的,是一个抽象的模块,不能直接调用。在编写具体的模块时,先从pikaStdDevice中继承,再重写平台实现。

比如stm32和esp32,驱动实现肯定不一样,但是如果他们的驱动模块都从pikaStdDevice中的类里面继承,再重写平台实现,用户再用esp32和stm32时,就感觉是一套api。这是一个跨MCU架构的标准驱动计划。

离线

楼主 #1 2021-12-02 13:51:00

lyon1998
Moderator
注册时间: 2021-12-01
已发帖子: 108
积分: 55

Re: 【pikascript】常见问题汇总(长期更新)

【6. 有没有想过PikaScrip会用在什么领域】

目前用在小资源的单片机中,一般是cotex-m4以下的内核。

应用领域例如集成在屏幕驱动中,可以使用python脚本驱动屏幕。

或者集成在传感器、电机、智能小车、机器人等教育套件中。

还有通讯模块等小模块中,支持python配置设备。

【7. 会考虑直接在py源码文件中支持json吗】

pikascript目前的语法界定在python的子集,暂时没有超出python语法标准的计划。

【8. 现在PikaScript支持List、字典这种数据类型了吗】

目前还没有,但是会在近期(大概三个月内)提供支持,pikascript的数据结构基础是对象,目前仍在加强对象的功能。list、字典等数据结构后续会基于对象模拟出来。

【9. 如何选择可以运行pikascript的MCU】

如果是arm内核,考虑到拓展模块的资源占用,最低应该配备64k flash和8k ram。

如果是risc-v内核,则需要128k flash和8k ram, 因为risc-v内核的gcc优化以及代码密度等问题,代码体积比arm内核大很多。

【10. python脚本解析为字节码的过程在MCU内部进行,比较影响性能,有办法在PC端直接解析成字节码吗?】

可以的,在PC上解析字节码可以使用pikascript/tools/pikaByteCodeGen工具。

离线

楼主 #2 2021-12-04 20:56:04

lyon1998
Moderator
注册时间: 2021-12-01
已发帖子: 108
积分: 55

Re: 【pikascript】常见问题汇总(长期更新)

【11.  python脚本不能直接解释运行吗?是否还是要预编译吗?】
python脚本可以直接解释运行,也支持交互式运行,需要预编译的是c模块。

【12. micropython 可以直接插USB识别为U盘,把代码拷贝进去就行,不知道PikaScript支不支持】
目前支持的形式是通过串口助手发送main.py文件。发送完就能运行。

【13. 绑定C库的教程有没有?】
文档:编写新的PikaScript模块
https://www.yuque.com/liang-mltek/pikascript/usacrp

离线

楼主 #3 2021-12-29 18:17:23

lyon1998
Moderator
注册时间: 2021-12-01
已发帖子: 108
积分: 55

Re: 【pikascript】常见问题汇总(长期更新)

【14.想了解一下是否支持在多任务的RTOS上同时在多个task中跑基于pikascript开发的不同功能?如果支持那要怎么做呢?】
pikascipt是可以在不同的线程里面跑各自的解释器的,可以在各个线程,用newRootObj新建各自的根对象,然后用obj_run运行。各个线程的内存空间都是独立的,不会有影响。 通过Python API新建线程是后续支持的功能,目前还没有做好。

离线

楼主 #4 2021-12-29 18:21:45

lyon1998
Moderator
注册时间: 2021-12-01
已发帖子: 108
积分: 55

Re: 【pikascript】常见问题汇总(长期更新)

【8. 现在PikaScript支持List、字典这种数据类型了吗】

目前还没有,但是会在近期(大概三个月内)提供支持,pikascript的数据结构基础是对象,目前仍在加强对象的功能。list、字典等数据结构后续会基于对象模拟出来。

【回复更新】:列表和字典已经可以使用了,使用时引入PikaStdData模块,可以使用get和set方法访问元素,目前还不支持中括号'[]'索引。

离线

楼主 #5 2021-12-29 18:24:07

lyon1998
Moderator
注册时间: 2021-12-01
已发帖子: 108
积分: 55

Re: 【pikascript】常见问题汇总(长期更新)

【1. Pika现在支持多线程吗?】

目前还不支持

【回复更新】:目前有两种方式支持多线程:

1. Pika自己跑一个线程,其他任务跑其他的线程(rt-thread软件包的默认模式)。

2. 在多个线程中启动各自独立的Pika引擎。

3. 还未支持使用Python API创建线程。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn