本帖最后由 流水源 于 2023-3-9 10:32 编辑
首先介绍下PikaPython:
PikaPython 是一个完全重写的超轻量级 python 引擎,零依赖,零配置,可以在 Flash ≤ 64KB,RAM≤ 4KB 的平台下运行(如 stm32g030c8 和 stm32f103c8),极易部署和扩展,具有大量的中文文档和视频资料。
PikaPython 具有框架式 C 模块开发工具,只要用 Python 写好调用 API ,就能够自动连接到 C 模块,非常方便快捷。不用手动处理任何全局表、宏定义、等等。
PikaPython 也支持 MDK、iar、RT-studio 等常见 ide 开发,能够轻松地调试 C 模块。
开源项目地址:
https://gitee.com/Lyon1998/pikapython
https://github.com/pikasTech/PikaPython
文档中心:
http://pikascript.com/doc/index.html
下面开始基于KEIL的pack包方式移植,移植过程很简单。其实项目的文档中心有详细的各种移植步骤。
首先要准备一个正常的LPC55S69的UART输入输出的工程。
如下打开keil的pack包,选择STDOUT打勾的地方。
然后添加函数,这样就可以实现printf输出了。
- int stdout_putchar (int ch) {
- PUTCHAR(ch);
- return (ch);
- }
复制代码
下一步,打开http://pikascript.com/doc/index.html 文档中心,找到如图下位置,下载PikaPython的keil Pack包。
然后按照文档内容操作。文档内写的步骤很详细。包括安装Pack包,添加到工程中。加入初始化。然后编译。
在 Before Build 加入 .\RTE\PikaScript\pikaBeforBuild-keil.bat
然后在 main.c 引入 #include "pikaScript.h"
在初始化系统和 printf 后启动 PikaScript PikaObj *pikaMain = pikaScriptInit();
这样就可以编译成功了。不过要注意,第一次编译因为要执行编译前那个批处理,需要下载软件仓库,会等待很长时间。后面编译就好快了。
完成以上步骤编译下载后就可以看到串口输出了
下面添加交互处理。在初始化之后加入
下一句代码
- pikaScriptShell(pikaMain);
复制代码
- int main(void)
- {
- char ch;
- /* Init board hardware. */
- /* set BOD VBAT level to 1.65V */
- POWER_SetBodVbatLevel(kPOWER_BodVbatLevel1650mv, kPOWER_BodHystLevel50mv, false);
- /* attach main clock divide to FLEXCOMM0 (debug console) */
- CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);
-
- BOARD_InitBootPins();
- BOARD_InitBootClocks();
- BOARD_InitBootPeripherals();
- BOARD_InitDebugConsole();
- SysTick_Config(SystemCoreClock/1000);
-
- printf("PikaPython Test\r\n");
-
- PikaObj *pikaMain = pikaScriptInit();
- pikaScriptShell(pikaMain);
- while (1)
- {
- ch = GETCHAR();
- PUTCHAR(ch);
- }
- }
复制代码 然后要实现一个阻塞的读串口,接收串口字节函数。
- char __platform_getchar(){
- return GETCHAR();
- }
复制代码 完成后编译下载就OK了。
文档中心也有说明,如下图:
下面是测试简单的交互输出
整个移植就完成了。后面看看添加一些外设控制驱动。
工程
lpc55s69_PikaPython.zip
(15.56 MB, 下载次数: 0, 售价: 1 NXP金币)
|