1 个不稳定版本

0.1.0 2021 年 2 月 25 日

#540 in 嵌入式开发

MIT 许可证

49KB
1K SLoC

Mega Drive 工具包 for Rust

此仓库托管了一些用于 SEGA Mega Drive 的软件包。

使用这些软件包

目前,这些软件包只与 LLVM & Rust 的分支兼容。要使用它们,您需要构建这两个分支。

构建 LLVM

  1. LLVM 项目分支检出 llvm-12

  2. 使用 cmake 构建 toolchain

    1. 启用 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" ..
      
    2. 构建
      ninja -j16
      
      (如果使用多线程,此步骤可能需要很长时间和大量内存。)
    3. 现在您应该在 build/bin 中拥有所有的 LLVM 二进制文件。

构建 Rust

  1. 检出 Rust 分支(克隆 m68k-linux 分支)。

  2. config.toml.example 复制到 config.toml 并编辑

    1. 设置 [build] target = ["x86_64-unknown-linux-gnu", "m68k-unknown-linux-gnu"
    2. 设置 [target.x86_64-unknown-linux-gnu-gnu] llvm-config = "path/to/build/bin/llvm-config"
  3. 构建

    ./x.py build --stage=2 rustc cargo
    
  4. 现在您应该在 build/x86_64-unknown-linux-gnu/stage2 中有一个 Rust 工具链。

  5. 在 rustup 中链接工具链以便更容易使用

    rustup toolchain link m68k "path/to/build/x86_64-unknown-linux-gnu/stage2"
    

构建此仓库

  1. 设置所需的环境变量
    export MEGADRIVE_HOME=path/to/repo
    export RUSTUP_TOOLCHAIN=m68k
    export LLVM_CONFIG=path=/to/llvm/build/bin/llvm-config
    
  2. 构建工具和库
    cargo build --release
    
  3. 安装 cargo 工具
    cd tools/cargo-megadrive
    cargo install --path=.
    
  4. 构建示例 Mega Drive 映像
    cd examples/megapong
    cargo megadrive build
    
  5. 现在您应该在 target/m68k-none-eabi/release/megapong.md 中有一个示例 megadrive 映像。

许可证

本套件遵循MIT许可证的条款。完整的许可证文本可以在LICENSE中阅读。

无运行时依赖