社区
驱动开发/核心开发
帖子详情
关于驱动程序与BSP的区别
scutwyz
2012-08-16 10:39:06
很好奇驱动与BSP程序的区别:
(1)stm32中那个函数库(固件库?)属于BSP吗?
(2)BSP需要保证“可重入吗”
(3)驱动程序与BSP的界限如何界定呢?
...全文
3335
9
打赏
收藏
关于驱动程序与BSP的区别
很好奇驱动与BSP程序的区别: (1)stm32中那个函数库(固件库?)属于BSP吗? (2)BSP需要保证“可重入吗” (3)驱动程序与BSP的界限如何界定呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
scutwyz
2012-08-27
打赏
举报
回复
那也需要相同的BSP包嘛。。。。 大概就这样啦,看来BSP的要求不高。。。。在多进程的角度上
BYD123
2012-08-22
打赏
举报
回复
1)BSP是你的板子相关的代码,比如GPIO的配置,I2C连接的设备。同一款CPU,不同的板子也会因为引脚的接法不同,设备上从属设备不一样导致BSP不一样;
2)驱动的话和你的子设备是密切相关的,相同设备在相同软件平台下驱动基本是可以通用的,和板子的关系不是很大的。
scutwyz
2012-08-17
打赏
举报
回复
其实很疑惑啦!
这是stm32常见所提供的两段函数:
(算是BSP吧)
void RCC_AdjustHSICalibrationValue(uint8_t HSICalibrationValue)
{
uint32_t tmpreg = 0;
/* Check the parameters */
assert_param(IS_RCC_CALIBRATION_VALUE(HSICalibrationValue));
tmpreg = RCC->CR;
/* Clear HSITRIM[4:0] bits */
tmpreg &= CR_HSITRIM_Mask;
/* Set the HSITRIM[4:0] bits according to HSICalibrationValue value */
tmpreg |= (uint32_t)HSICalibrationValue << 3;
/* Store the new value */
RCC->CR = tmpreg;
}
很明显,这段代码是可重入的。。。
但是,对于相同的外设,又有另外一段代码:
void RCC_HSEConfig(uint32_t RCC_HSE)
{
/* Check the parameters */
assert_param(IS_RCC_HSE(RCC_HSE));
/* Reset HSEON and HSEBYP bits before configuring the HSE ------------------*/
/* Reset HSEON bit */
RCC->CR &= CR_HSEON_Reset;
/* Reset HSEBYP bit */
RCC->CR &= CR_HSEBYP_Reset;
/* Configure HSE (RCC_HSE_OFF is already covered by the code section above) */
switch(RCC_HSE)
{
case RCC_HSE_ON:
/* Set HSEON bit */
RCC->CR |= CR_HSEON_Set;
break;
case RCC_HSE_Bypass:
/* Set HSEBYP and HSEON bits */
RCC->CR |= CR_HSEBYP_Set | CR_HSEON_Set;
break;
default:
break;
}
}
这个很明显就不可重入;
那么,在进行驱动编写的时候,我该怎么做,把厂家给的BSP全部读一遍,确定哪个是可重入的,哪个不行,然后在有针对地加竞态保护?
还是,不管任何情况,只要涉及到硬件配置,都加竞态保护?
这点非常不理解
zhenghn2010
2012-08-17
打赏
举报
回复
分清 bsp和驱动所起作用的阶段 bsp是保证os启动前所作的必须工作,包括初始化工作,引导os启动起来,也包括一些用户的配置信息。 os启动后,可以认为bsp已经不再起作用了,os会调相应的驱动来重新初始化系统。驱动可以认为是os内核中的一部分。
scutwyz
2012-08-17
打赏
举报
回复
不要沉啊
xgbing
2012-08-16
打赏
举报
回复
不需要
scutwyz
2012-08-16
打赏
举报
回复
还没明白?
那么写BSP时要考虑“可重入性吗”
还是只要能驱动硬件就好。
xgbing
2012-08-16
打赏
举报
回复
BSP是一般是厂家提供的,驱动是自己写的。
scutwyz
2012-08-16
打赏
举报
回复
不要沉啊
VxWorks下设备
驱动程序
及
BSP
开发指南.zip.010
VxWorks下设备
驱动程序
及
BSP
开发指南.zip.010
VxWorks下设备
驱动程序
及
BSP
开发指南
VxWorks下设备
驱动程序
及
BSP
开发指南
VxWorks下设备
驱动程序
及
BSP
开发指南.pdf
周启平的《VxWorks下设备
驱动程序
及
BSP
开发指南》
VxWorks下设备
驱动程序
及
BSP
开发指南.zip.005
bsp
资料VxWorks下设备
驱动程序
及
BSP
开发指南.zip.005
VxWorks内核、设备驱动与
BSP
开发详解 第二版 VxWorks下设备
驱动程序
及
BSP
开发指南 VxWorks Programmer's Guide
VxWorks内核、设备驱动与
BSP
开发详解_2ED_张杨, 于银涛 VxWorks下设备
驱动程序
及
BSP
开发指南 VxWorks Programmer's Guide-中文版-VxWorks程序员指南_Wind River VxWorks Programmer's Guide
驱动开发/核心开发
21,615
社区成员
21,711
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章