|
发表于 2023-11-7 16:41:41
|
显示全部楼层
我理解如下,不一定对:
1. HAL是对芯片本身的硬件资源的抽象;
2. BSP是PCB板级硬件功能性质的封装。
举例说明,OS调用函数 BuzzerOn() 让蜂鸣器响,然后BuzzerOn() 函数里面调用 HAL_GPIO_Set( GPIOA , PIN0 ) 控制引脚输出高电平控制蜂鸣器响,那 BuzzerOn() 是BSP级别的,HAL_GPIO_Set( GPIOA , PIN0 ) 是HAL级别的。当你的程序需要移植的时候,只要修改BuzzerOn()、调用新芯片的HAL即可,对上层来说,BuzzerOn()依旧是BuzzerOn()。如果你程序里面直接调用HAL_GPIO_Set( GPIOA , PIN0 )控制蜂鸣器,那么当移植的时候,你所有调用HAL_GPIO_Set( GPIOA , PIN0 )的地方都需要修改一遍。
到这里明白没?BSP是对PCB板级资源功能的抽象和封装,HAL是对芯片本身的硬件资源的抽象封装。 |
|