1 个不稳定版本
0.1.0 | 2021 年 2 月 25 日 |
---|
#540 in 嵌入式开发
49KB
1K SLoC
Mega Drive 工具包 for Rust
此仓库托管了一些用于 SEGA Mega Drive 的软件包。
使用这些软件包
目前,这些软件包只与 LLVM & Rust 的分支兼容。要使用它们,您需要构建这两个分支。
构建 LLVM
-
从 LLVM 项目分支检出
llvm-12
。 -
使用 cmake 构建 toolchain
- 启用 M68k 后端生成项目
cd M68x0-mono-repo mkdir build cd build cmake -G Ninja "-DLLVM_USE_LINKER=lld" "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DLLVM_ENABLE_ASSERTIONS=ON" "-DLLVM_PARALLEL_LINK_JOBS=1" "-DLLVM_TARGETS_TO_BUILD=X86" "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=M68k" "-DLLVM_ENABLE_PROJECTS=clang;lld" ..
- 构建
(如果使用多线程,此步骤可能需要很长时间和大量内存。)ninja -j16
- 现在您应该在
build/bin
中拥有所有的 LLVM 二进制文件。
- 启用 M68k 后端生成项目
构建 Rust
-
检出 Rust 分支(克隆 m68k-linux 分支)。
-
将
config.toml.example
复制到config.toml
并编辑- 设置
[build] target = ["x86_64-unknown-linux-gnu", "m68k-unknown-linux-gnu"
- 设置
[target.x86_64-unknown-linux-gnu-gnu] llvm-config = "path/to/build/bin/llvm-config"
- 设置
-
构建
./x.py build --stage=2 rustc cargo
-
现在您应该在
build/x86_64-unknown-linux-gnu/stage2
中有一个 Rust 工具链。 -
在 rustup 中链接工具链以便更容易使用
rustup toolchain link m68k "path/to/build/x86_64-unknown-linux-gnu/stage2"
构建此仓库
- 设置所需的环境变量
export MEGADRIVE_HOME=path/to/repo export RUSTUP_TOOLCHAIN=m68k export LLVM_CONFIG=path=/to/llvm/build/bin/llvm-config
- 构建工具和库
cargo build --release
- 安装 cargo 工具
cd tools/cargo-megadrive cargo install --path=.
- 构建示例 Mega Drive 映像
cd examples/megapong cargo megadrive build
- 现在您应该在
target/m68k-none-eabi/release/megapong.md
中有一个示例 megadrive 映像。
许可证
本套件遵循MIT许可证的条款。完整的许可证文本可以在LICENSE中阅读。