Skip to content

Commit

Permalink
Merge pull request #4 from StaRainorigin/main
Browse files Browse the repository at this point in the history
official website
  • Loading branch information
lighkLife authored Nov 15, 2023
2 parents 8a2af3e + 86b9f41 commit ca325ee
Showing 1 changed file with 16 additions and 12 deletions.
28 changes: 16 additions & 12 deletions source/index.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Embassy 下一代嵌入式应用框架
通过使用Rust编程语言、其异步功能以及Embassy库,更快地编写安全、正确且节能的嵌入式代码。
通过使用 Rust 编程语言、其异步功能以及 Embassy 库,更快地编写安全、正确且节能的嵌入式代码。

## [马上开始](https://embassy.dev/book/dev/getting_started.html)

## Rust + async ❤️ 嵌入式

[Rust编程语言](https://www.rust-lang.org/)具有极快的执行速度和高效的内存利用,且不依赖运行时、垃圾回收器或操作系统。得益于其完善的内存与线程安全性以及表达性强大的类型系统,它在编译时就能够捕捉到多种类型的错误。

Rust 的[异步/等待async/await](https://rust-lang.github.io/async-book/)机制在嵌入式系统中提供了前所未有的轻松且高效的多任务处理方式。任务会在编译时被转换成能够协作运行的状态机。同时,它不需要动态内存分配,且能在单一堆栈上运行,因此不需要对每个任务的堆栈大小进行调整。它淘汰了传统实时操作系统(RTOS)对内核上下文切换的的需求,并且在速度和占用空间上都[更快更小](https://tweedegolf.nl/en/blog/65/async-rust-vs-rtos-showdown)
Rust 的 [异步/等待(async/await)](https://rust-lang.github.io/async-book/) 机制在嵌入式系统中提供了前所未有的轻松且高效的多任务处理方式。任务会在编译时被转换成能够协作运行的状态机。同时,它不需要动态内存分配,且能在单一堆栈上运行,因此不需要对每个任务的堆栈大小进行调整。它淘汰了传统实时操作系统(RTOS)对内核上下文切换的的需求,并且在速度和占用空间上都[更快更小](https://tweedegolf.nl/en/blog/65/async-rust-vs-rtos-showdown)

```rust
use defmt::info;
Expand Down Expand Up @@ -54,40 +54,44 @@ async fn main(spawner: Spawner, p: Peripherals) {

HAL提供了安全易用的接口来操作硬件,无需再对原始寄存器进行操作。

Embassy维护了下列硬件的HAL,但它并不局限于此,您可以在任何使用Embassy的项目中使用HAL
Embassy 维护了下列硬件的 HAL ,但它并不局限于此,您可以在任何使用 Embassy 的项目中使用 HAL

* [embassy-stm32](https://docs.embassy.dev/embassy-stm32/), 支持STM32微控制器系列
* [embassy-nrf](https://docs.embassy.dev/embassy-nrf/), 支持北欧半导体公司\(the Nordic Semiconducotr\)的nRF52、nRF53、nRF91系列
* [embassy-stm32](https://docs.embassy.dev/embassy-stm32/) , 支持 STM32 微控制器系列
* [embassy-nrf](https://docs.embassy.dev/embassy-nrf/) , 支持北欧半导体公司 \(the Nordic Semiconducotr\) 的 nRF52、nRF53、nRF91 系列

### 时间处理

不再为硬件定时器所烦恼[embassy::time](https://docs.embassy.dev/embassy-time/) 提供了全局可用且不会溢出的 Instant、Duration 和 Timer 类型。
不用再因硬件定时器而烦恼。

[embassy::time](https://docs.embassy.dev/embassy-time/) 提供了全局可用且不会溢出的 Instant、Duration 和 Timer 类型。

### 实时性

相同的异步执行器上的任务以相互协调的方式运行。但您可以创建多个具有不同优先级的执行器,使更高优先级的任务可以抢占较低优先级任务的运行。具体请参见[示例](https://github.com/embassy-rs/embassy/blob/master/examples/nrf52840/src/bin/multiprio.rs)
相同的异步执行器上的任务会以相互协调的方式运行。

但您可以创建多个具有不同优先级的执行器,使更高优先级的任务可以抢占较低优先级任务的运行。具体请参见[示例](https://github.com/embassy-rs/embassy/blob/master/examples/nrf52840/src/bin/multiprio.rs)

### 低能耗

轻松构建电池寿命更长的设备。.
轻松构建电池寿命更长的设备。

异步执行器闲置时自动将核心置于睡眠状态。任务可通过中断将其唤醒,无需在等待时进行忙等轮询(busy-loop polling)。

### 网络

[embassy-net](https://docs.embassy.dev/embassy-net/) 实现了常用的网络功能,包括以太网、IP、TCP、UDP、ICMP和DHCP。在管理超时和同时为多个连接提供服务方面,Async做了高度简化,提供了很大的便利。
[embassy-net](https://docs.embassy.dev/embassy-net/) 实现了常用的网络功能,包括以太网、IP、TCP、UDP、ICMP和DHCP。在管理超时和同时为多个连接提供服务方面,Async 做了高度简化,提供了很大的便利。

### 蓝牙

[nrf-softdevice](https://github.com/embassy-rs/nrf-softdevice) 为nRF52微控制器提供蓝牙低能耗4.x和5.x支持
[nrf-softdevice](https://github.com/embassy-rs/nrf-softdevice) 为 nRF52 微控制器提供蓝牙低能耗 4.x 和 5.x 支持。

### LoRa

[embassy-lora](https://docs.embassy.dev/embassy-lora/) 支持STM32WL无线微控制器和Semtech SX127x收发器上的LoRa网络
[embassy-lora](https://docs.embassy.dev/embassy-lora/) 支持 STM32WL 无线微控制器和 Semtech SX127x 收发器上的 LoRa 网络

### USB

[embassy-usb](https://docs.embassy.dev/embassy-usb/) i实现了设备侧的USB堆栈。实现了通用类(如USB串行(CDC ACM),支持USB HID,并且提供丰富的构建器API方便构建您自己的实现。
[embassy-usb](https://docs.embassy.dev/embassy-usb/) 实现了设备侧的USB堆栈。实现了通用类(如USB串行(CDC ACM),支持 USB HID ,并且提供丰富的构建器API方便构建您自己的实现。

### Bootloader and DFU

Expand Down

0 comments on commit ca325ee

Please sign in to comment.