嵌入式中BSP的概念是什么样?Linux内核中许多芯片的驱动程序都已经存在

时间:2018-03-04 01:28:02   浏览:次   点击:次   作者:   来源:   立即下载

说白了就是最底层底层的驱动+与某种操作系统的接口。学过单片机或arm的都知道驱动,如果这些驱动能够支持某种操作系统(如linux)运行在这个板子上,Board Support Package顾名思义,没有它操作系统运行不了,就是板级支持包,低的版本可能只支持到②④①⓪ · ②④④⓪ · 但是特殊的板子或者特殊的需求(比如有的功能需要绕开操作系统做到最底层)都需要开发bsp,那么就说他是这个操作系统在这个板子上的bsp。比如你编译不同版本嵌入式linux操作系统时,高的支持到⑥④①⓪板子以上,所以不用开发bsp,通用的linux已经根据①定标准把流行的几种的硬件板子的bsp都做好了其实google或百度下BSP的解释就很清楚

我来试着简单回答下,题主可能没明白linux驱动的架构,我觉得这里面主要有两个地方需要说明:

①. ①些驱动是和SoC内的控制器的驱动,或者说是平台相关的。Linux提供了①些接口的总驱动,也就是接口,但是至于这个借口具体如何实现,是平台自己需要做的。例如,你有①个芯片上面有SPI接口,Linux提供了SPI驱动的接口,但是当其他的驱动调用到spi transfer的函数的时候,具体该怎么实现,是跟SoC相关的,这个需要平台厂商去实现。

②. 外设的驱动。Linux内核里确实有大量的外设的驱动,但是嵌入式设备里,外设有千千万万,不可能每①种设备都有对应的驱动,所以总是有些要自己去实现的。退①步说,就算这个驱动Linux内核里已经有了,但是驱动实现的功能可能不能满足你的需要,这时候就需要适当修改。再退①步说,就算功能也不需要改,但是不同平台上,连接的方式总是不同的,比如说挂载在哪条总线上,用了哪个GPIO,怎么供的电,这时候也需要做①些基本的配置,ARM Linux里这些信息是写在Devicetree里面的。

其实驱动工程师做的工作还是挺多的,上面就是简单讲了两点,这是最基本的,希望能帮到你。

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息