#sdl2 #arm #monotron

monotron-app

支持编写Monotron应用程序的crate

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