finished GLCC 2024 project
本组件用于在 OneOS 上提供可用的 Losu 语言运行时,支持用户通过独立项目、内置脚本库和控制台解释器三种方式运行 Losu 脚本。
项目目前已实现 stdlib、machine 两个库。其中 machine 库专为 OneOS Lite v3.2.0 适配编写,可用于操纵单片机上的 GPIO、UART、ADC、PWM 模块。
参考 Losu 官方文档,在本机上编译 Losu SDK,并将 losuc.exe 置于 PATH 环境变量中。
losuc.exe
将本仓库下载拷贝至 OneOS源码目录\components\losu 。目录结构如下:
OneOS源码目录\components\losu
OneOS-Lite-V3.2.0\components\losu ├── include # 头文件目录 ├── scripts # 组件内置的测试脚本 ├── source # C语言源码目录 │ ├── losu_core # Losu 语言运行时 │ ├── losu_interpreter # 交互式解释器 │ ├── machine # machine 类实现代码 │ └── stdlib # stdlib 类实现代码 ├── template # 独立项目的模板 ├── Kconfig # 编译配置选项 ├── LICENSE # 开源许可证 MIT ├── README.md # 说明文档 └── weave.yaml # OneOS 编译脚本
本项目支持三种方式运行 Losu 脚本:独立项目、内置脚本库和控制台解释器。
该方式下,用户可在板级项目中直接使用 Losu 语言编写程序,系统开机自动运行。
OneOS源码目录\projects
oos project
OneOS源码目录\projects\STM32XX芯片型号
OneOS源码目录\projects\STM32XX芯片型号\application
OneOS源码目录\components\losu\template
application
main.els
main.c
oos config
Enable Losu programming language support
Enable Losu std library
Enable Losu machine library
oos build
out
独立项目中的 Losu 脚本开机运行一次后自动结束,编译系统可识别 application 目录下的所有 C语言文件并编译进系统,但是系统将只能识别并运行一个 Losu els 脚本文件。
els
在 OneOS源码目录\projects\STM32XX芯片型号 目录下,运行 oos config 命令,进行必要的系统配置,并开启以下选项:
系统编译、烧录后,在 OneOS 控制台下运行 losu命令即可进入交互式解释器界面。交互式解释器同时支持单行和多行脚本运行,用户可以在控制台中输入正确的 Losu 语句并立即得到结果。
losu
运行 losu -b N可执行编号为 N 的内置脚本,脚本具体内容在OneOS源码目录\components\losu\scripts 目录下,N 取值从 0 开始,若超过可用的脚本数量,则默认执行 0 号脚本。
losu -b N
OneOS源码目录\components\losu\scripts
运行 losu -v 命令,将仅输出程序版本后退出。
losu -v
洛书(Losu,也称 losu-lang,easylosu),是一门图灵完备的超轻量级的跨平台脚本语言。易上手、零依赖、零配置,支持Windows、Linux、各类RTOS与物联网操作系统、甚至裸机环境(MCU)运行。以极低的资源占用(16KB+)为项目提供灵活、高效、易拓展的非侵入式脚本服务。
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
OneOS · Losu
本组件用于在 OneOS 上提供可用的 Losu 语言运行时,支持用户通过独立项目、内置脚本库和控制台解释器三种方式运行 Losu 脚本。
项目目前已实现 stdlib、machine 两个库。其中 machine 库专为 OneOS Lite v3.2.0 适配编写,可用于操纵单片机上的 GPIO、UART、ADC、PWM 模块。
部署方式
参考 Losu 官方文档,在本机上编译 Losu SDK,并将
losuc.exe
置于 PATH 环境变量中。将本仓库下载拷贝至
OneOS源码目录\components\losu
。目录结构如下:本项目支持三种方式运行 Losu 脚本:独立项目、内置脚本库和控制台解释器。
独立项目
该方式下,用户可在板级项目中直接使用 Losu 语言编写程序,系统开机自动运行。
OneOS源码目录\projects
,使用oos project
命令创建工程,并在弹出的界面中选择OneOS 已支持的芯片型号,完成后按 s 保存,esc 退出。OneOS源码目录\projects\STM32XX芯片型号
目录查看生成的对应芯片工程项目。OneOS源码目录\projects\STM32XX芯片型号\application
目录下,将原有的文件全部删除,再将OneOS源码目录\components\losu\template
目录下的所有文件拷贝至上述application
目录下。application
目录下的main.els
中使用 Losu 语言实现相应的逻辑,如果业务还需实现其他底层功能,也可通过编辑main.c
文件和创建其他 C语言 文件实现。OneOS源码目录\projects\STM32XX芯片型号
目录下,运行oos config
命令,进行必要的系统配置,此处必须选中 Componets ─> Losu 界面下的Enable Losu programming language support
选项,并根据具体情况选中所需的 Losu 附加库 stdlib(Enable Losu std library
) 和 machine(Enable Losu machine library
)。OneOS源码目录\projects\STM32XX芯片型号
目录下,运行oos build
命令,开始编译,完成后在该目录下的out
文件夹下可以找到生成的二进制的文件和ELF文件。独立项目中的 Losu 脚本开机运行一次后自动结束,编译系统可识别
application
目录下的所有 C语言文件并编译进系统,但是系统将只能识别并运行一个 Losuels
脚本文件。内置脚本库 & 控制台解释器
在
OneOS源码目录\projects\STM32XX芯片型号
目录下,运行oos config
命令,进行必要的系统配置,并开启以下选项:系统编译、烧录后,在 OneOS 控制台下运行
losu
命令即可进入交互式解释器界面。交互式解释器同时支持单行和多行脚本运行,用户可以在控制台中输入正确的 Losu 语句并立即得到结果。运行
losu -b N
可执行编号为 N 的内置脚本,脚本具体内容在OneOS源码目录\components\losu\scripts
目录下,N 取值从 0 开始,若超过可用的脚本数量,则默认执行 0 号脚本。运行
losu -v
命令,将仅输出程序版本后退出。