Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
C-Sky
原创征文
脚本
分享一个可以用于rt-thread的轻量级脚本语言——“洛书”
发布于 2023-09-09 21:52:13 浏览:1493
订阅该版
[tocm] # 分享一个可以用于rt-thread的轻量级脚本语言——洛书 > 笔者也是奉命水稿,具体的问题可以联系开发者 ## 简介 各位 RTT 社区的大佬,大家好!今天给大家分享的是一款轻量级脚本语言——“洛书”。 这是一门初创的脚本语言,拥有一些独特而有趣的特性。 + 源码由 ISO C99 编写,仅依赖所在平台的Libc + 高效而轻量,比python与mpy更快(据说),同时资源占用需求更低。 + 拥有模块化机制与C/C++ 交互API,移植与拓展方便。(它有一个使用自身实现的包管理器) + 跨平台、支持裸机、Linux、Windows以及Rt-thread等嵌入式操作系统 + UTF8支持,可以用中文与emoji写代码(抽象的功能) 它的 [官网地址](https://losu.tech),可以前往官网了解更多信息。 这个语言遵循 MIT LICENSE 托管在 gitee上,[开源仓库](https://gitee.com/chen-chaochen/lpk) 比较新鲜的一点是开发者给它提供了一个在线运行平台,可以在不安装的情况下先在网页中进行体验,[地址](https://losu.tech/play/play.html) ## 基于rt-thread进行单片机开发 简要介绍一下这门脚本语言之后呢,我们就来步入今天的正题,来分享一下洛书编程语言在rtthread平台上进行单片机开发的相关内容。 官方提供了 W80X 系列的rt-thread体验固件,其包含内核、标准库(std、stdstring、stdmath)、线程模块(仅限于创建)与一个精简的HAL库(adc、flash、gpio、uart、pwm、wdg、led),可以体验基本功能 官方也提供了相关的视频 [W806 样例演示](https://www.bilibili.com/video/BV1Gh4y1K7JR) [rt-thread移植演示](https://www.bilibili.com/video/BV1oN4y1D7Bs) ### 下载与安装 前往洛书的官方网址,选择为物联网设备安装,选择W80X的rt-thread固件,用联盛德的官方烧录工具烧录进MCU中,并复位。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230909/90888f236ac14499ba32c29b09c7a085.png.webp) ### REPL运行 这个固件支持 REPL运行,可以通过串口逐行发送脚本,对其解释执行 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230909/6fbcb116e2237f9b6ed6cd0149a7c2a1.png.webp) 支持中文代码 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230909/04462d375bd552e4c82a14f5541c1f09.png.webp) ### 运行文件 这个固件支持接收一个文件,对它解释执行,以一个多线程的测试程序为例 ```python def task(name): with 1 : print('Task:\t'&name&'\tHello,World') sleep(100) ; ; thread.new().create(task,'TASK1') sleep(500) var t1 = thread.new() t1.create(task,"TASK2") ``` ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230909/44dbf8110bc9f7203e88367c305ef0b4.png.webp) 笔者测试发现,这个固件还是有一些问题的,它内置的HAL库对多线程的支持不是很友好。 ### HAL库的一些样例 可以参考视频[W806 样例演示](https://www.bilibili.com/video/BV1Gh4y1K7JR),这里只放一些代码,不贴图了 + led ```python #!run # led模块 with 1: for i = 1,3: # 反转板载led电平 led(i).toggle() sleep(200) ; ; #!end ``` + gpio ```python #!run # 创建一个gpio对象, PA0 输入 上拉 p1 = HAL.gpio('A0','in','up') # 初始化 p1.init() # 读取电平 with 1: print(p1.read()) sleep(500) ; #!end ``` + wdg ```python #!run # 创建一个看门狗 d1 = HAL.wdg(1000,'ms') # d1 = HAL.wdg(1,'s') #初始化 d1.init() with 1: print('Hello,Losu') sleep(500) ; #!end ``` + ADC ```python #!run a1 = HAL.adc(1,1000) a1.init() with 1: print(a1.read()) sleep(500) ; #!end ``` + 字符串处理 ```python #!run # stdstring 设计时考虑过中文字符串 打印(大写('Hello,洛书编程')) 打印(倒置('你好,洛书编程世界')) #!end ``` ## 写作最后 笔者本身使用了一段时间,感觉这个语言还处于一个很初级的阶段,包括对rt-thread的api封装也都在完善当中。它的语法感觉很大程度上参考了现有的一些编程语言,上手速度较快。至于emoji与中文支持,感觉更多是起一个宣传功能(不过开发者貌似很重视中文支持)。 不过开发者认为它的一些特性,能在嵌入式开发领域发挥一定的作用,所以就有了笔者这篇宣传小稿,望rtt社区的大佬担待
5
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
BRSL_4101
这家伙很懒,什么也没写!
文章
1
回答
0
被采纳
0
关注TA
发私信
相关文章
1
编译固件前先执行python脚本
2
如何在模块的SConscript中获取当前项目所有参与编译的源文件?
3
pikascript 移植报错
4
rt-thread下运行pikascript 无法打印数字
5
[求助] 关于RT-Thread对C-Sky CPU的支持
6
FinSH 控制台 help: command not found.
7
如何使用ipv4_nat模块实现SNAT转发
8
支持c-sky的这个工程 rt-thread\bsp\ck802 CDK编译不过
9
scons构建ck802失败
10
使用scons编译ck802报错
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
8
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
7
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
RTT_逍遥
3
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
4
次点赞
Ghost_Girls
1
篇文章
6
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部