项目结构
有多种方式配置Embassy及其组件以适应您的具体应用程序。每个芯片的 示例 目录展示了项目结构应该是什么样子。让我们来详细了解一下:
您的项目的顶层文件结构应该如下所示:
{} -> 可选的
my-project
|- .cargo
| |- config.toml
|- src
| |- main.rs
|- build.rs
|- Cargo.toml
|- {memory.x}
|- rust-toolchain.toml
.cargo/config.toml
这个目录/文件描述了您所在的平台,并配置了 probe-rs 以烧录到您的设备。
以下是一个最小示例:
[target.thumbv6m-none-eabi] # <-change for your platform
runner = 'probe-rs run --chip STM32F031K6Tx' # <- 修改为您的芯片
[build]
target = "thumbv6m-none-eabi" # <- 修改为您的架构
[env]
DEFMT_LOG = "trace" # <- 可以修改为info,warn或error日志级别
memory.x
这个文件概述了您的程序的闪存/内存(flash/ram)使用情况。在nRF5x上使用 nrf-softdevice 时特别有用。
以下是使用S140与nRF52840的一个示例:
MEMORY
{
/* NOTE 1 K = 1 KiBi = 1024 bytes */
/* 这些值对应于Softdevices S140 7.0.1的NRF52840 */
FLASH : ORIGIN = 0x00027000, LENGTH = 868K
RAM : ORIGIN = 0x20020000, LENGTH = 128K
}