# 洛书编程语言 **Repository Path**: oneos-ability/lpk ## Basic Information - **Project Name**: 洛书编程语言 - **Description**: 一款超轻量、高性能、跨平台的嵌入式脚本语言,可以运行在Windows、Linux、MCU上。致力于打造一款开源、高效、强大的编程语言 - **Primary Language**: C - **License**: MIT - **Default Branch**: OneOS - **Homepage**: https://losu.tech - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 74 - **Created**: 2024-07-09 - **Last Updated**: 2024-10-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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` 。目录结构如下: ``` 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 语言编写程序,系统开机自动运行。 1. 进入 `OneOS源码目录\projects` ,使用 `oos project `命令创建工程,并在弹出的界面中选择OneOS 已支持的芯片型号,完成后按 s 保存,esc 退出。 2. 待工程创建成功后,可进入 `OneOS源码目录\projects\STM32XX芯片型号` 目录查看生成的对应芯片工程项目。 3. 进入到 `OneOS源码目录\projects\STM32XX芯片型号\application` 目录下,将原有的文件全部删除,再将 `OneOS源码目录\components\losu\template` 目录下的所有文件拷贝至上述 `application` 目录下。 4. 在 `application` 目录下的 `main.els` 中使用 Losu 语言实现相应的逻辑,如果业务还需实现其他底层功能,也可通过编辑 `main.c` 文件和创建其他 C语言 文件实现。 5. 在 `OneOS源码目录\projects\STM32XX芯片型号` 目录下,运行 `oos config` 命令,进行必要的系统配置,此处必须选中 Componets ─> Losu 界面下的 `Enable Losu programming language support` 选项,并根据具体情况选中所需的 Losu 附加库 stdlib(`Enable Losu std library`) 和 machine(`Enable Losu machine library`)。 6. 在 `OneOS源码目录\projects\STM32XX芯片型号` 目录下,运行 `oos build` 命令,开始编译,完成后在该目录下的 `out` 文件夹下可以找到生成的二进制的文件和ELF文件。 独立项目中的 Losu 脚本开机运行一次后自动结束,编译系统可识别 `application` 目录下的所有 C语言文件并编译进系统,但是系统将只能识别并运行一个 Losu `els` 脚本文件。 ### 内置脚本库 & 控制台解释器 在 `OneOS源码目录\projects\STM32XX芯片型号` 目录下,运行 `oos config` 命令,进行必要的系统配置,并开启以下选项: | 子菜单 | 选项名 | 作用 | | ------------------ | ---------------------------------------- | ---------------------- | | Componets ─> Losu | Enable Losu programming language support | 编译 Losu 运行内核 | | | Enable interactive Losu interpreter | 编译交互式 Losu 解释器 | | | Enable Losu std library | 编译集成 Losu 标准库 | | | Enable Losu machine library | 编译集成设备操作库 | | | Integrate Losu builtin scripts | 集成内置脚本库 | | Componets ─> Shell | Enable shell | 编译 OneOS 内置的Shell | | Drivers→ CONSOLE | Enable console | 启用 OneOS 控制台 | | | The device name for console | 准确填写控制台串口名 | 系统编译、烧录后,在 OneOS 控制台下运行 `losu`命令即可进入交互式解释器界面。交互式解释器同时支持单行和多行脚本运行,用户可以在控制台中输入正确的 Losu 语句并立即得到结果。 运行 `losu -b N`可执行编号为 N 的内置脚本,脚本具体内容在`OneOS源码目录\components\losu\scripts` 目录下,N 取值从 0 开始,若超过可用的脚本数量,则默认执行 0 号脚本。 运行 `losu -v` 命令,将仅输出程序版本后退出。 ### 附加函数库 有关 stdlib 和 machine 库的使用文档,请参考 `source\stdlib\stdlib.lsh` 和 `source\machine\machine.lsh` 示例脚本详见 `scripts` 目录