如何正确开发 linux bsp?

1. bsp 开发是不是给一个新的 arm linux 系统开发能够支持板子外设的 linux 内核源码 的过程? 2. bsp 开发的任务界限是什么…
关注者
136
被浏览
121,648

11 个回答

简单点说Linux BSP开发就是把Linux在某个板子上跑起来。

这个板子不一定是ARM的,可能是任何一个arch的,比如PPC/MIPS,甚至x86也可以算上,还有一些比较少见的像SPARC/ColdFire之类的。

题主可能比较疑惑BSP应该开发到什么程度是吧?也就是说要把Linux跑到什么程度?是有个串口能跑shell就可以了?还是网络、USB什么的都要全弄起来?

据我了解(我隔壁就是BSP Team),跑到什么程度,看公司(客户、老板)的开发要求,同时也看公司有没有上层的开发人员专门管这些事情。

比如,你这个板子只用在很简单的环境里,网络、USB都不需要,那么串口能起来就基本可以了。但是如果恰好客户有要求网络必须是OK的,那做BSP的人一般就要把网络也调通,如果客户要求USB能用,那么做BSP的人可能也要弄USB。

实际开发过程中,BSP开发的边界在哪,看老板、客户的要求。

一般来说开发流程,初始化CPU、内存这些是第一步,然后是串口、shell、文件系统也要起来,然后就是根据需求是否要调一些基本的驱动了。

我见过有些板子,客户只要最基本的东西,这种BSP开发很轻松,但是有些板子,连USB-OTG都要起来,那么开发BSP的人就很苦逼,因为USB-OTG太难搞了,但没办法,只能硬着头皮去学、去搞。

BSP开发的边界就是没边界,当然,有些公司比较好,会专门招几个驱动工程师,这种公司里,开发BSP的人会稍微轻松点,搞不定的就丢给写驱动的人了——就是我这样的。