# bsp_doc

这是BSP(芯片支持包)层的说明文档。

> TODO:
> 1. 增加硬件和软件CRC支持,统一不同crc顺序和计算码的调用方式

bsp的功能是提供对片上（MCU中）外设的封装，即单片机芯片内部拥有的功能的封装。**在开发板pcb上集成的模块(蜂鸣器，加热电阻，wifi等)应该放在module层而不是这里**。

bsp应该提供几种接口。包括初始化接口，一般命名为`XXXRegister()`(对于只有一个instance的可以叫`XXXInit()`,但建议统一风格都叫register)；调用此模块实现的必要功能，如通信型外设（CubeMX下的connectivity）提供接收和发送的接口，以及接收完成、发送完成（若有必要，或有发送队列需求）的数据回调函数。

- bsp_tools.h中提供了将bsp数据接收回调函数设置为任务的接口，通过这种方式，可以进一步提高整个系统的实时性，同时保证高优先级的任务一定按时执行。