bsp linux,bsp板级支持包

各位老铁们好,相信很多人对bsp linux都不是特别的了解,因此呢,今天就来为大家分享下关于bsp linux以及bsp板级支持包的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

如何正确开发linuxbsp

Linux BSP开发即在特定板子上运行Linux系统的过程。板子类型多样,包括ARM、PPC、MIPS、x86乃至SPARC、ColdFire等。开发目标并非固定,而取决于公司需求与客户要求。

是否完成串口启动,还是需实现网络、USB等高级功能,由公司与客户共同决定。简单应用场景可能仅需串口启动及基本命令行界面,而复杂应用则可能需完整网络支持及USB设备兼容性。

开发流程通常从初始化CPU、内存、串口、shell及文件系统开始。根据特定需求,可能还需调用更多驱动程序。简单场景下,BSP开发较为轻松,而复杂场景可能面临诸多挑战,如USB-OTG等设备驱动的实现。

在部分高效公司中,可能专门设置驱动工程师团队,减轻BSP开发人员的工作负担,使其专注于核心启动过程,遇到复杂驱动问题时,可求助于驱动团队解决。

总之,Linux BSP开发无明确边界,由公司需求与客户要求决定。复杂程度从简单串口启动到全面网络与USB支持不等,涉及系统初始化、基本功能实现与特定驱动调用。高效团队协作与资源分配有助于减轻开发压力,提高开发效率。

如何正确开发 linux bsp

简单点说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的人会稍微轻松点,搞不定的就丢给写驱动的人了——就是我这样的。

什么是Linux BSP

BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BSP一定要按照该系统BSP的定义形式来写(BSP的编程过程大多数是在某一个成型的BSP模板上进行修改)。这样才能与上层OS保持正确的接口,良好的支持上层OS。

例如:在VxWorks中的网卡驱动,首先在config.h中包含该网卡,然后将网卡含网卡的信息的参数放入数组 END_TBL_ENTRY endDevTbl []中,系统通过函数muxDevLoad()调用这个数组来安装网卡驱动。

而在Linux中的网卡驱动,是在space.c中声明该网络设备,再把网卡驱动的一些函数加到dev结构中,由函数ether_setup()来完成网卡驱动的安装。

纯粹的BSP所包含的内容一般说来是和系统有关的驱动和程序,如网络驱动和系统中网络协议有关,串口驱动和系统下载调试有关等等。离开这些驱动系统就不能正常工作。

Tornado中BSP的编译和上层应用程序不同,用命令行或直接在Tornado环境下Build,在Tornado下不能跟踪调试。

用户也可以添加自己的程序到BSP中,但严格来说不应该算BSP.一般来说这种做法不建议。因为一旦操作系统能良好运行于最终的主板硬件后,BSP也就固定了,不需要做任何改动。而用户自己在BSP中的程序还会不断的升级更新,这样势必对BSP有不好的影响,对系统造成影响,同时由于BSP调试编译环境较差,也不利于程序的编译调试。

阅读剩余
THE END