1 个不稳定版本
使用旧的Rust 2015
0.5.0 | 2019年5月5日 |
---|
#1176 在 嵌入式开发
32KB
816 代码行
Monotron应用程序二进制接口
此crate允许您为Monotron编写应用程序。将其想象成Linux内核syscall ABI或MS-DOS编程API,但专为用Rust编写的应用程序设计,更适合资源非常有限且尚未充分发展的系统。
此crate提供了一个格式为的入口指针
pub static ENTRY_POINT: fn(*const Table, *mut Context) -> i32 = entry_point;
此指针放置在为应用程序保留的内存地址范围底部(0x2000_2000
)。Monotron将在应用程序启动时跳转到此指针指向的函数,并传递一个包含回调指针的结构体。应用程序可以使用这些指针调用各种OS函数。此crate将所有这些封装到一个Host
对象中,应用程序可以在其上调用方法,例如
Host::puts(b"Hello, world!");
如果您编译为非裸机目标,则得到一个包含Monotron屏幕像素完美渲染的SDL2窗口。但请注意,屏幕仅在您调用wfvbi()
时更新,因此在主循环中执行此操作。
此crate编译为静态库,如果您更喜欢使用C而不是Rust,也可以将其链接到C应用程序中 - 请参阅monotron.h
中的C兼容声明。
依赖关系
~18MB
~384K SLoC