用于 BL602 微控制器的嵌入式 Rust 外设访问板条箱。 该项目是使用 .svd 文件自动生成的svd2rust
2022-07-08 16:06:38 1.05MB rust
此板条箱在 STM32F407 微控制器上提供 800x600 60fps 图形。细心的读者会注意到 STM32F407 没有视频硬件,也没有足够的 RAM 来保存 800x600 彩色图像。那么如何m4vga从中获得高分辨率彩色视频呢? 这是我的 C++ 库的重写m4vgalib,加上我 的演示集的m4vgalib端口。它仍在进行中。(如果您好奇,请参阅我在端口上的注释。) (最近,一些演示还为另一个没有视频硬件的平台编译:WebAssembly。) 为什么这很有趣 主要是因为真的很难。我每个像素有四个 CPU 周期可以使用,任何时间变化都会破坏显示。 演示 演示main文件位于m4demos/src/bin中,尽管一些演示的核心实现已迁移到fx 目录。 conway:全屏康威的生命游戏,每秒 60 帧——即每秒 2880 万个单元更新,每次更新的预算为 5 个周期(不包括视频生成)。 hires_text:80x37 文本模式。每个字符都有可调整的前景色和背景色。这看起来很无聊,但在技术上很有趣。 更多详情、使用方法,请下载后阅读README.md文件
2022-07-08 16:06:32 1.13MB rust
这是在 AVR 上运行的 CHIP-8 虚拟机实现。 它的一大技巧是它是用 Rust 编写的:它是第一个在 AVR 上运行的非平凡的 Rust 应用程序。您可以在我的博文中了解它的开发过程。CHIP-8 VM 本身是在一个单独的、可移植的 crate中实现的,该 crate以惯用的 Rust 方式编写,大量使用代数数据类型和模式匹配;然后,此 crate 既可用于构建基于SDL 的桌面应用程序,也可用于在 AVR 微控制器上运行此 crate。 预期的硬件是一个简单的电路,组件很少: AVR ATMega328P 微控制器 PCD8522 84x48 单色液晶 Microchip 23K640 串行 RAM 4x4 键盘 10K电阻(4个) 10K 修剪器 所有这些组件都有通孔版本,因此很容易在面包板上构建它。注意 RAM 芯片不支持 5 伏。该板的供电电压为 3.3 伏。一个 Arduino Uno 将炸掉 RAM 芯片。 原理图 面包板版照片 更多详情、使用方法,请下载后阅读README.md文件
2022-07-08 16:06:31 40KB rust
介绍 NXP LPC800系列微控制器的硬件抽象层 (HAL) ,用Rust编程语言编写。目前支持LPC82x和LPC845。LPC8xx HAL 为 LPC800 MCU 的特性提供了高级接口,安全、方便、高效。 LPC8xx HAL 利用 Rust 的类型系统来防止常见错误。尝试使用未正确初始化的外围设备,或尝试将冲突的功能分配给同一引脚等事情都会导致编译时错误。 这个 crate 是embedded-hal的一个实现。请考虑是否可以通过依赖Embedded-hal而不是此库来使您的代码独立于平台。 更多详情、使用方法,请下载后阅读README.md文件
2022-07-08 16:06:26 166KB rust
文档 支持的最低 Rust 版本 (MSRV) 这个 crate 保证可以在稳定的 Rust 1.42.0 及更高版本上编译。它可能 与旧版本一起编译,但在任何新的补丁版本中可能会发生变化。 更多详情、使用方法,请下载后阅读README.md文件
2022-07-08 09:07:24 36KB rust
zmu 是用于微控制器的系统级仿真器,旨在对内核和外围设备进行高速仿真。目前针对 ARM Cortex MCU。 zmu 支持 Linux 和 Windows 操作系统。 支持的功能 加载 ELF 二进制文件 相对高效的模拟 Intel Core i7-2630QM @ 2.8 Ghz 可以实时模拟 40-50 Mhz Cortex-m4 架构: 手臂-v6m, arm-v7m(部分支持) arm-v7me(部分支持) 内核(进行中):Cortex-m0/m0+、Cortex-m3、Cortex-m4 指令预解码以实现高效仿真 异常和故障处理 处理器睡眠 ARM 半主机,支持的半主机扩展: 打开、关闭(仅限流) 弗伦 ISTTY 写读 寻找、时钟、异常 -> 退出 错误号 ITM (TPIU) 以帧格式将激励寄存器数据写入文件 STIM0 .. 支持 STIM31 载重吨 循环计数器 指令跟踪 更多详情、使用方法,请下载后阅读README.md文件
2022-07-07 18:13:36 186KB rust
运行示例 目前刷esp32有两种方式: flash脚本使用esptool 如果你熟悉 esp 生态系统,flash这个 repo 中有一个脚本,它利用 espressif esptool 通过 USB 闪存 esp32。示例用法: ./flash -p /dev/ttyUSB0 -e blinky --release 货物espflash子命令 使用 cargo 子命令对 esptool 进行 Rust 重写。示例用法: cargo espflash --example blinky --release /dev/ttyUSB0 更多详情、使用方法,请下载后阅读README.md文件
2022-07-06 19:10:32 130KB rust
AVR 微控制器和通用板(例如 Arduino)的硬件抽象层。基于avr-device板条箱。 快速开始 你需要一个夜间 Rust 编译器来为 AVR 编译 Rust 代码。rust-toolchain.toml由于该文件,将自动安装正确的版本。 在 Ubuntu 上,您需要安装依赖项: 更多详情、使用方法,请下载后阅读README.md文件
2022-07-06 19:10:04 171KB rust
支持的最低 Rust 版本 (MSRV) 这个 crate 保证可以在稳定的 Rust 1.59 及更高版本上编译。它可能与旧版本一起编译,但在任何新的补丁版本中可能会发生变化。 更多详情、使用方法,请下载后阅读README.md文件
2022-07-06 19:10:02 176KB rust
为 ARM Cortex-M 微控制器构建应用程序的模板 :这是一个非常简短的版本,仅涵盖构建程序。对于长版本,它还包括闪烁、运行和调试程序 在我们开始之前,您需要确定目标设备的一些特征,因为这些特征将用于配置项目: ARM 内核。例如 Cortex-M3。 ARM 内核是否包含 FPU?Cortex-M4 F和 Cortex-M7 F内核可以。 目标设备有多少闪存和 RAM?例如 256 KiB 的闪存和 32 KiB 的 RAM。 闪存和 RAM 在地址空间中映射到哪里?例如,RAM 通常位于 address 0x2000_0000。 您可以在设备的数据表或参考手册中找到此信息。 在本例中,我们将使用 STM32F3DISCOVERY。该板包含一个 STM32F303VCT6 微控制器。该微控制器具有: 包含单精度 FPU 的 Cortex-M4F 内核 256 KiB 的闪存位于地址 0x0800_0000。 40 KiB 的 RAM 位于地址 0x2000_0000。(还有另一个 RAM 区域,但为简单起见,我们将忽略它)。 更多详情、使用方法,请下载后阅
2022-07-06 19:10:00 18KB rust