mirror of
https://gitee.com/dlmu-cone/bf_original_balance_chassis
synced 2026-07-23 19:25:09 +08:00
update doc
This commit is contained in:
49
README.md
49
README.md
@@ -33,7 +33,7 @@
|
||||
|
||||
- TODO:
|
||||
1. 增加SPI和I^2^C的BSP模组以便支持IST384磁力计和Oled显示屏等。
|
||||
2. 增加segger RTT log的支持,方便调试和日志记录
|
||||
1. 增加和module层的deteck_task配合的蜂鸣器和led闪烁配置。
|
||||
- 主要功能:实现映射功能。
|
||||
- 在本框架中,BSP层与cube高度耦合,对该层的修改往往需要使用cube重新生成工程。该层也是唯一允许直接出现stm32HAL库函数的代码层,**在非BSP层编写代码时,如需使用HAL_...函数,请思考是否有同功能的BSP_...函数**。
|
||||
- 最简单的(如gpio)仅是对HAL库函数的封装。较为复杂的则会进行一定程度的处理(如can)
|
||||
@@ -49,11 +49,13 @@
|
||||
- TODO:
|
||||
|
||||
1. 添加pub-sub(订阅-发布消息机制)的支持,以进一步隔离不同的模块完成封装。
|
||||
2. 增加错误检测模块(官方例程中的`deteck_task`)。
|
||||
3. 增加和PC通信协议的支持
|
||||
4. 增加超级电容模块
|
||||
5. 增加舵机模块
|
||||
6. 增加单点激光模块
|
||||
2. 增加模块离线/错误检测模块(官方例程中的`deteck_task`)。
|
||||
3. 增加超级电容模块
|
||||
4. 增加步进电机模块
|
||||
5. 增加双板CAN通信模块
|
||||
6. 增加裁判系统接收、多机通信、UI绘制模块
|
||||
7. 增加舵机模块
|
||||
8. 增加单点激光模块
|
||||
|
||||
- 主要功能:实现对设备的封装
|
||||
|
||||
@@ -88,8 +90,9 @@ Module层主要存放的是类型定义和实例指针数组,在该层没有
|
||||
|
||||
- TODO:
|
||||
1. 完成麦克纳姆轮/全向轮底盘的功能
|
||||
2. 完成发射模块
|
||||
3. 完成云台控制模块
|
||||
2. 完成发射应用
|
||||
3. 完成云台控制应用
|
||||
4. 增加机器人整车控制应用
|
||||
- 主要功能:实现机器人的控制
|
||||
|
||||
在完成BSP层和Module层后,如果在APP层没有控制代码,则代码并无实际功能。换言之,BSP层与Module层的存在是为了APP层更简单、更合理、更易于扩展和移植。本框架的初始目标即是实现:在APP层仅需思考逻辑并用无关硬件的C语言代码实现即可完成整个机器人的控制。所有需要使用的模块和算法都在Module层提供。
|
||||
@@ -116,7 +119,10 @@ ROOT:.
|
||||
|
|
||||
├─.vscode
|
||||
│ launch.json # 用于VSCode插件CORTEX-DEBUG调试的配置文件
|
||||
| task.json # 启动编译的任务配置文件
|
||||
│
|
||||
├─assets # markdown存放图片和外链文件夹
|
||||
|
|
||||
├─application # 应用层,包括底盘控制,云台控制和发射控制
|
||||
│ chassis.c
|
||||
│ chassis.h
|
||||
@@ -127,6 +133,8 @@ ROOT:.
|
||||
│ shoot.c
|
||||
│ shoot.h
|
||||
│ shoot.md
|
||||
| robot_cmd.c
|
||||
| robot_cmd.h
|
||||
│
|
||||
├─bsp # 板级支持包,提供对硬件的封装,将接口暴露给module层
|
||||
│ bsp.md
|
||||
@@ -223,6 +231,27 @@ ROOT:.
|
||||
super_cap.h
|
||||
```
|
||||
|
||||
## BSP和模块介绍
|
||||
## BSP/Module/Application介绍
|
||||
|
||||
在对应模块和板级支持包文件夹下。
|
||||
在对应应用、模块和板级支持包文件夹下。
|
||||
|
||||
## 整体架构
|
||||
|
||||
### 软件分层
|
||||
|
||||

|
||||
|
||||
### 运行任务
|
||||
|
||||

|
||||
|
||||
### 初始化流程
|
||||
|
||||
~~~mermaid
|
||||
graph TD
|
||||
HAL库初始化 --> BSP初始化 --> Application初始化 --> app调用其拥有模块的初始化 --> 启动操作系统
|
||||
~~~
|
||||
|
||||
**注意,应用初始化不得放入其对应任务中,即使是在死循环前,否则可能导致一些需要定时器的任务初始化异常**。
|
||||
|
||||
APP会调用其所有的模块的初始化函数(注册函数),这是因为本框架的设计思想是任何模块在被注册(构造/初始化)之前,都是不存在的,当且仅当定义了一个模块结构体(也称实例)的时候,才有一个实体的概念。
|
||||
|
||||
Reference in New Issue
Block a user