<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>02-入门指南 on 编程那些事儿</title><link>https://before80.github.io/prgms/Rust/embedded/start/</link><description>Recent content in 02-入门指南 on 编程那些事儿</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 11 Aug 2026 23:57:44 +0800</lastBuildDate><atom:link href="https://before80.github.io/prgms/Rust/embedded/start/index.xml" rel="self" type="application/rss+xml"/><item><title>01-QEMU</title><link>https://before80.github.io/prgms/Rust/embedded/start/01-qemu/</link><pubDate>Sat, 01 Aug 2026 10:38:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/embedded/start/01-qemu/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/embedded-book/"&gt;The Embedded Rust Book&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="qemu"&gt;QEMU&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/embedded-book/start/qemu.html"&gt;https://doc.rust-lang.org/stable/embedded-book/start/qemu.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我们将开始为 &lt;a href="http://www.ti.com/product/LM3S6965"&gt;LM3S6965&lt;/a&gt;（一颗 Cortex-M3 微控制器）编写程序。
我们选择它作为初始目标，是因为它&lt;a href="https://wiki.qemu.org/Documentation/Platforms/ARM#Supported_in_qemu-system-arm"&gt;可用 QEMU 模拟&lt;/a&gt;，
因此本节无需折腾硬件，我们可以专注于工具链与开发流程。&lt;/p&gt;</description></item><item><title>02-硬件</title><link>https://before80.github.io/prgms/Rust/embedded/start/02-hardware/</link><pubDate>Sat, 01 Aug 2026 10:38:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/embedded/start/02-hardware/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/embedded-book/"&gt;The Embedded Rust Book&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="hardware"&gt;硬件&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/embedded-book/start/hardware.html"&gt;https://doc.rust-lang.org/stable/embedded-book/start/hardware.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;到现在你应该对工具链与开发流程有一定熟悉了。本节我们将切换到真实硬件；过程大体相同。让我们开始。&lt;/p&gt;
&lt;h2 id="know-your-hardware"&gt;了解你的硬件&lt;/h2&gt;
&lt;p&gt;开始之前，你需要识别目标设备的一些特性，因为这些将用于配置项目：&lt;/p&gt;</description></item><item><title>03-内存映射寄存器</title><link>https://before80.github.io/prgms/Rust/embedded/start/03-memory-mapped-registers/</link><pubDate>Sat, 01 Aug 2026 10:38:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/embedded/start/03-memory-mapped-registers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/embedded-book/"&gt;The Embedded Rust Book&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="memory-mapped-registers"&gt;内存映射寄存器&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/embedded-book/start/registers.html"&gt;https://doc.rust-lang.org/stable/embedded-book/start/registers.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;嵌入式系统仅靠执行普通 Rust 代码并在 RAM 中搬移数据，能走的路并不远。若我们想把任何信息送入或送出系统（无论是闪烁 LED、检测按键，还是通过某种总线与片外外设通信），就必须踏入外设（peripheral）及其“内存映射寄存器（memory mapped registers）”的世界。&lt;/p&gt;</description></item><item><title>04-半主机（Semihosting）</title><link>https://before80.github.io/prgms/Rust/embedded/start/04-semihosting/</link><pubDate>Sat, 01 Aug 2026 10:38:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/embedded/start/04-semihosting/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/embedded-book/"&gt;The Embedded Rust Book&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="semihosting"&gt;半主机（Semihosting）&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/embedded-book/start/semihosting.html"&gt;https://doc.rust-lang.org/stable/embedded-book/start/semihosting.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;半主机（Semihosting）是一种让嵌入式设备在主机上做 I/O 的机制，主要用于把消息记录到主机控制台。半主机需要调试会话，除此之外几乎什么都不需要（无需额外连线！），因此用起来非常方便。缺点是非常慢：每次写操作可能需要数毫秒，具体取决于你使用的硬件调试器（例如 ST-Link）。&lt;/p&gt;</description></item><item><title>05-Panic 处理</title><link>https://before80.github.io/prgms/Rust/embedded/start/05-panicking/</link><pubDate>Sat, 01 Aug 2026 10:38:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/embedded/start/05-panicking/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/embedded-book/"&gt;The Embedded Rust Book&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="panicking"&gt;Panic 处理&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/embedded-book/start/panicking.html"&gt;https://doc.rust-lang.org/stable/embedded-book/start/panicking.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Panic 是 Rust 语言的核心部分。像索引这样的内置操作会在运行时检查内存安全。当尝试越界索引时，就会导致 panic。&lt;/p&gt;
&lt;p&gt;在标准库中，panic 有定义好的行为：它会展开（unwind）发生 panic 的线程的栈，除非用户选择在 panic 时中止（abort）程序。&lt;/p&gt;</description></item><item><title>06-异常</title><link>https://before80.github.io/prgms/Rust/embedded/start/06-exceptions/</link><pubDate>Sat, 01 Aug 2026 10:38:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/embedded/start/06-exceptions/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/embedded-book/"&gt;The Embedded Rust Book&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="exceptions"&gt;异常&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/embedded-book/start/exceptions.html"&gt;https://doc.rust-lang.org/stable/embedded-book/start/exceptions.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;异常（exception）与中断是处理器处理异步事件与致命错误（例如执行无效指令）的硬件机制。异常意味着抢占，并涉及异常处理函数——响应触发该事件的信号而执行的子例程。&lt;/p&gt;</description></item><item><title>07-中断</title><link>https://before80.github.io/prgms/Rust/embedded/start/07-interrupts/</link><pubDate>Sat, 01 Aug 2026 10:38:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/embedded/start/07-interrupts/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/embedded-book/"&gt;The Embedded Rust Book&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="interrupts"&gt;中断&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/embedded-book/start/interrupts.html"&gt;https://doc.rust-lang.org/stable/embedded-book/start/interrupts.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;中断与异常在多个方面不同，但它们的操作与使用大体相似，并且也由同一中断控制器处理。异常由 Cortex-M 架构定义，而中断始终是厂商（往往甚至是芯片）特定的实现，无论是命名还是功能。&lt;/p&gt;</description></item></channel></rss>