由于一些不可抗拒力的原因,初赛方案的硬件没有准备齐全
团队名称:rzhangsan
团队成员:裴顺仕
特别感谢:
目前基于 ArceOS 新增了
| 驱动名 | 驱动代码 |
|---|---|
| CAN FD 驱动(fcan) | fcan |
| UART 驱动(uart) | uart |
| FIOmux 驱动 | fiomux |
| PWM 驱动 | pwm |
| GPIO 驱动 | gpio |
| [验证未通过] DMA 驱动 | ddma |
| [验证未通过] I2S 驱动 | i2s |
同时,各个驱动提供了 example
| 例程 | 驱动 | 用途 | 示例代码 |
|---|---|---|---|
| CAN FD | canfd 驱动 | 收发 canfd 数据 | canfd |
| CEM5826M11 传感器(CEM5826-M11 是一款高灵敏度24GHz毫米波人体微动存在检测雷达模块) | uart 驱动 | 探测运动物体靠近 | uart |
| 飞腾派 PWM 风扇 | 1. fiomux 驱动 2. pwm 驱动 | 开发板动态散热 | fiomux |
| 飞腾派 GPIO 控制 LED | gpio 驱动 | GPIO 控制板载 LED | gpio |
| [验证未通过] 飞腾派音频输出输出 演示 | 1. ddma 驱动 2. i2s 驱动 | 声音录制实时播放 | gpio |
最后结合已有的驱动实现了一个 基于飞腾派 + ArceOS 的智能毫米波雷达安防监测方案 demo app
主要硬件
| 硬件名 | 规格要求 | 用途 |
|---|---|---|
| PC | 连接开发板,编译 ArceOS/StarryOS | |
| 飞腾派开发板 萤火工场 V3.0 | 1. 开发板 2. 电源适配器 3. 已焊接 eMMC 4. 已预制飞腾派 uboot | 运行 ArceOS/StarryOS,连接各类外设 |
| 萤火工场 CEM5826-M11毫米波雷达 | 探测运动物体靠近 | |
| CanFD 设备 | 因为板卡上 CAN 控制器没有外接 CAN PHY 芯片,所以需要外接一个 CAN 收发器,再将 CAN 收发器连接 USBCAN 与 PC 机进行测试 |
其他硬件
| 硬件名 | 规格要求 | 用途 |
|---|---|---|
| PWM 4 pin 风扇 | - | 开发板动态散热 |
| USB 转串口设备 | CH340 | 开发板调试 |
| 杜邦线 | 公对公、母对母、公对母 各 10 根 | 连接串口、CAN设备 |
| 路由器、以太网网线 | - | 局域网内连接设备和开发机,使用 tftp 协议传输镜像到开发板 |
| U盘 | 容量 32GB 及以上 | 传输镜像到开发板 |
所提及的软件及编译好的镜像可在 atomgit 仓库发行页面下载
有关 ArceOS 更多详细信息,请参阅 readme.org.md
MobaXterm_Personal_23.0.exe Windows 串口工具tftpd64_portable_v4.73.zip Windows tftp serverZQWL-USB-CANFD-Tool V1.3.6.exe Windows canfd 测试工具驱动遵循 ArceOS HAL (Hardware Abstraction Layer) 规范,提供统一的接口供上层应用程序调用。
驱动代码位于 modules/axhal/xxx 目录下,包含以下关键文件:
mod.rs - 模块定义文件,导出驱动接口fcan.rs - FCAN驱动核心实现,包括寄存器操作、数据收发等can.rs - CAN协议相关常量和数据结构定义readme.md - 驱动说明文件(可选)在 axhal 的 lib.rs 文件中引入实现的驱动模块:
#[cfg(feature = "myplat")]
pub mod xxx;
如果驱动有新增的外部依赖需要在 modules/axhal/Cargo.toml 文件中添加对应的依赖
具体可参考 fcan 下的 fcan 驱动代码
引入驱动模块:
use axhal::xxx;
具体可参考 canfd 下的 canfd 例程代码





推荐直接使用 CNB 构建镜像
在 Windows 下,请使用 Docker 或者 WSL 并在其中安装 Rust
请参考 Dockerfile 构建镜像
在 Linux 下,请参考 Dockerfile 搭建相关开发环境
可使用 ./build.sh 构建镜像
在此介绍 CNB 构建镜像的方式



./build.sh


编译命令
# 在项目根目录下执行
# 修改 对应的 编译对象,当前默认编译 app
./build.sh
编译结果
./examples/xxx 例程/xxx_aarch64-phytium-pi.bin./app/app_aarch64-phytium-pi.bin镜像烧录以 Windows 平台为例,其他平台请参考 Windows 步骤
飞腾派镜像烧录支持 网络(tftp)\U 盘\串口 三种方式
注意不要关闭 tftp 程序,关闭了服务就结束了
启动 tftp 服务器

配置 tftp 服务器运行目录

也可以直接编辑 ini 文件进行配置

# 配置网络
echo $ipaddr
setenv ipaddr 192.168.1.20
setenv serverip 192.168.1.3
setenv gatewayip 192.168.1.1
# 保存配置
saveenv
# 从 tftp 服务器下载镜像文件
# tftpboot 0x90000000 xxx_aarch64-phytium-pi.bin
tftpboot 0x90000000 app_aarch64-phytium-pi.bin
# 启动程序
dcache flush
go 0x90000000
usb start
# 从 usb 加载镜像文件
# fatload usb 0 0x90000000 xxx_aarch64-phytium-pi.bin
fatload usb 0 0x90000000 app_aarch64-phytium-pi.bin
# 启动程序
go 0x90000000
串口速率传适较低,如果镜像较大不推荐使用该方式
loadygo 0x90000000