查看: 1231|回复: 9

LPC55S69移植PikaPython,体验python脚本编程

[复制链接]
  • TA的每日心情
    奋斗
    4 小时前
  • 签到天数: 1940 天

    [LV.Master]伴坛终老

    61

    主题

    1万

    帖子

    3

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    17296
    最后登录
    2024-4-26
    发表于 2023-3-8 18:01:08 | 显示全部楼层 |阅读模式
    本帖最后由 流水源 于 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打勾的地方。
    2.jpg

    然后添加函数,这样就可以实现printf输出了。
    1. int stdout_putchar (int ch) {
    2.   PUTCHAR(ch);
    3.   return (ch);
    4. }
    复制代码


    下一步,打开http://pikascript.com/doc/index.html  文档中心,找到如图下位置,下载PikaPython的keil Pack包。
    1.jpg

    然后按照文档内容操作。文档内写的步骤很详细。包括安装Pack包,添加到工程中。加入初始化。然后编译。
    3.jpg


    在 Before Build 加入

    .\RTE\PikaScript\pikaBeforBuild-keil.bat


    然后在 main.c 引入

    #include "pikaScript.h"

    在初始化系统和 printf 后启动 PikaScript

    PikaObj *pikaMain = pikaScriptInit();


    这样就可以编译成功了。不过要注意,第一次编译因为要执行编译前那个批处理,需要下载软件仓库,会等待很长时间。后面编译就好快了。

    完成以上步骤编译下载后就可以看到串口输出了
    4.jpg

    下面添加交互处理。在初始化之后加入
    下一句代码
    1.     pikaScriptShell(pikaMain);
    复制代码

    1. int main(void)
    2. {
    3.     char ch;
    4.     /* Init board hardware. */
    5.     /* set BOD VBAT level to 1.65V */
    6.     POWER_SetBodVbatLevel(kPOWER_BodVbatLevel1650mv, kPOWER_BodHystLevel50mv, false);
    7.     /* attach main clock divide to FLEXCOMM0 (debug console) */
    8.     CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);
    9.         
    10.     BOARD_InitBootPins();
    11.     BOARD_InitBootClocks();
    12.     BOARD_InitBootPeripherals();
    13.     BOARD_InitDebugConsole();
    14.     SysTick_Config(SystemCoreClock/1000);
    15.    
    16.     printf("PikaPython Test\r\n");
    17.    
    18.     PikaObj *pikaMain = pikaScriptInit();
    19.     pikaScriptShell(pikaMain);
    20.     while (1)
    21.     {
    22.         ch = GETCHAR();
    23.         PUTCHAR(ch);
    24.     }
    25. }
    复制代码
    然后要实现一个阻塞的读串口,接收串口字节函数。
    1. char __platform_getchar(){
    2.     return GETCHAR();
    3. }
    复制代码
    完成后编译下载就OK了。
    文档中心也有说明,如下图:
    5.jpg


    下面是测试简单的交互输出
    6.jpg


    整个移植就完成了。后面看看添加一些外设控制驱动。

    工程 lpc55s69_PikaPython.zip (15.56 MB, 下载次数: 0, 售价: 1 NXP金币)
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 21:19
  • 签到天数: 1210 天

    [LV.10]以坛为家III

    22

    主题

    4763

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    8083

    活跃会员

    最后登录
    2024-4-26
    发表于 2023-3-9 08:53:42 | 显示全部楼层
    写完下班
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2023-3-9 10:10:23 | 显示全部楼层
    python 这是要遍地开花吗?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    4 小时前
  • 签到天数: 1940 天

    [LV.Master]伴坛终老

    61

    主题

    1万

    帖子

    3

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    17296
    最后登录
    2024-4-26
     楼主| 发表于 2023-3-9 10:33:47 | 显示全部楼层

    掌握时间刚刚好,哈哈哈。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    4 小时前
  • 签到天数: 1940 天

    [LV.Master]伴坛终老

    61

    主题

    1万

    帖子

    3

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    17296
    最后登录
    2024-4-26
     楼主| 发表于 2023-3-9 10:34:39 | 显示全部楼层
    jobszheng5 发表于 2023-3-9 10:10
    python 这是要遍地开花吗?

    有需求就有人创造。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2023-3-9 11:09:15 | 显示全部楼层
    楼主 您这回答,高深了啊
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    35

    主题

    356

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2574
    最后登录
    2023-6-23
    发表于 2023-3-9 12:09:45 | 显示全部楼层
    楼主是否和Micropython比较过,分享一下对比结果吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    4 小时前
  • 签到天数: 1940 天

    [LV.Master]伴坛终老

    61

    主题

    1万

    帖子

    3

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    17296
    最后登录
    2024-4-26
     楼主| 发表于 2023-3-9 14:26:57 | 显示全部楼层
    香水橙 发表于 2023-3-9 12:09
    楼主是否和Micropython比较过,分享一下对比结果吧

    Micropython没玩过呢,不好对比。不过性能还是不错的。占用资源也少。PikaPython也是这2年出来的,一直有关注。移植各种平台、IDE都方便。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    35

    主题

    356

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2574
    最后登录
    2023-6-23
    发表于 2023-3-9 21:05:15 | 显示全部楼层
    有空玩玩,到时候再来请教您老兄
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:35
  • 签到天数: 270 天

    [LV.8]以坛为家I

    31

    主题

    2994

    帖子

    38

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    5315

    活跃会员

    最后登录
    2024-4-26
    发表于 2023-3-15 09:19:25 | 显示全部楼层
    6666
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-26 15:14 , Processed in 0.138801 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表