Mruby/C and picoruby: high level langs in low-level devices?
PicoRuby 是一个轻量级的 Ruby 实现,专为单芯片微控制器设计。它基于 mruby,具有小巧的 ROM 和 RAM 占用,可在资源受限的设备上运行。PicoRuby 依赖标准 C 库,具有可移植性,并支持 Raspberry Pi Pico 等微控制器。文章介绍了 PicoRuby 的构建方法、二进制文件生成以及相关依赖和应用,并提供了 API 文档和演示视频链接。项目采用 MIT 许可证,目前仍在开发中。
Mruby/C 和 PicoRuby:在低端设备上使用高级语言?
PicoRuby 是最小的 Ruby 实现,用于单芯片微控制器。
许可协议
MIT license 716 stars 35 forks Branches Tags Activity
picoruby/picoruby
最新提交
历史记录 1,585 Commits
PicoRuby
PicoRuby 是一个替代的 mruby 实现,它具有以下特点:
- 小尺寸
- ROM: 256 KB (取决于构建配置)
- RAM: 128 KB 或更少 (取决于应用程序代码)
- (以上数据基于 32 位架构)
- 可移植性
- 仅依赖于标准的 C 库,如 glibc、Newlib 或 Newlib-nano
- 参考微控制器板
- Raspberry Pi Pico - Arm Cortex-M0+, 264 KB RAM, 2 MB Flash
API 文档以及一些演示视频
依赖
- mruby/c (mrubyc/mrubyc): 另一个 mruby 虚拟机的实现
使用者
- PRK Firmware: 用于 Raspberry Pi Pico 的键盘固件
- picoruby.wasm: 用于 WebAssembly 的 PicoRuby WASI 运行时
构建
- 前提条件
- C 工具链
- git
- ruby (应该 CRuby 3.0+)
git clone --recursive https://github.com/picoruby/picoruby
cd picoruby/
rake
# PICORUBY_DEBUG=1 rake # 用于调试构建
# PICORUBY_DEBUG=1 PICORUBY_NO_LIBC_ALLOC=1 rake # 用于使用 mruby/c 的内存分配器的调试构建
bin/picoruby -e 'puts "Hello World!"'
交叉编译
参见示例: build_config/r2p2-cortex-m0plus.rb
二进制文件
rake
命令将生成三种可执行二进制文件:
- bin/picorbc
bin/picorbc path/to/source.rb
创建path/to/source.mrb
,这是一种在 mruby 兼容的虚拟机上运行的 VM 代码
- bin/picoruby
bin/picoruby source.rb
执行 Ruby,就像普通的ruby
命令一样- 你可以像这样
bin/picoruby path/to/your_script.rb
来运行你的脚本
- bin/r2p2
- R2P2 的 POSIX 版本 (https://github.com/picoruby/R2P2)
路线图
截至 2024 年,PicoRuby 仍在开发中。有关实施路线图,请参见 issue/6
贡献
Fork, patch, 然后发送一个 pull request。
致谢
该项目的部分代码由 Monstarlab 在 Ruby Association Grant Program 2020 和 2021 的支持下编写。
另请参见 picoruby/picoruby/wiki。
Stargazers 随时间变化
许可协议
Copyright © 2020-2024 HASUMI Hitoshi. 详情请参见 MIT-LICENSE。
Copyright © 2020-2021 Monstarlab. 详情请参见 MIT-LICENSE。
关于
PicoRuby 是最小的 Ruby 实现,用于单芯片微控制器
主题
ruby microcontroller mruby mrubyc
资源
许可协议
MIT license Activity Custom properties
Stars
Watchers
Forks
Releases
Packages 0
No packages published