Linux驱动移植(二)——相似或相关资源的获取

本文探讨了Linux驱动开发中通过借用Demo板驱动、借鉴相容芯片驱动程序和利用芯片厂商范例程序的方法,同时介绍了BSP(Board Support Package)在嵌入式系统开发中的角色和具体应用步骤,包括硬件主板设计、操作系统的选定和BSP编程等阶段,以及编写BSP所需工具和语言。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux驱动移植(二)——相似或相关资源的获取

Linux驱动程序一般较少从底层开发,有这样几种途径可以有效协助我们较快地完成驱动开发:

1.Demo板的驱动

借用Demo板的驱动主要是求同存异,芯片一般是相同的,主要体现在片选的IO、中断和DMA通道等方面。

因而在进行驱动开发时我们一般遵循这样的设计理念:将硬件和平台相关(内存地址、片选的IO、中断号、DMA通道和硬件设置等)的信息放在BSP中,作为platform信息、SPIboard信息、I2Cboard信息,而不直接放在驱动里面,以备修改。


2.相似芯片的驱动程序

任何驱动工程师在面对新驱动程序的开发时,都没有必要一切从头开始。在内核源代码/drivers中已经大量包含了类似芯片的驱动程序,这些都可以借鉴。


3.芯片厂商的范例程序


附录:

1)cpu_relax()函数,一般用在忙等待中,其作用降低CPU的消耗,同时也起到内存屏障的作用,同时,Document/volatile_considered_harmful.txt中也提到,在忙等待中要避免使用volatile关键字;

2)BSP
A. BSP是什么:
    BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能更好的运行于硬件主板。
B. PC机和嵌入式系统中的BSP
       在Pc机的windos系统或Linux系统中也有BSP,只是PC机均采用统一的X86体系架构,所以其BSP是单一确定的,一般不需要做什么修改。
      在嵌入式系统中情况完全不同,目前市场上有多种结构的CPU(RISC)并存(PPC、ARM、MIPS),为了性能的需要,外围设备也会有不同 选择和定义。因而,嵌入式系统针对不同的CPU会有不同的BSP,即使相同 的CPU,外围设备的差异(如外部扩展DRAM的大小,类型改变),BSP相应的部分也会有所不同。
所以,需要根据硬件设计编写和修改BSP,以保证系统正常的运行。
C.BSP在嵌入式开发中的位置和作用
       BSP开发处于整个嵌入式开发的前期,是后面系统上应用程序能正常运行的保证。
       大致步骤如下:
       a. 硬件主板研制,测试;
b. 操作系统的选定,BSP编程;
        c. 上层应用程序的开发。
BSP部分在硬件和操作系统,上层应用程序之间,所以,这就要求BSP程序员对硬件,软件和操作系统都有一定 的了解,才能做好BSP编程。

     需要熟悉的工具:电表、示波器、逻辑分析仪、硬件仿真器、仿真调试环境。
        编程语言:汇编语言、C语言。

参考文献:
1.http://baike.baidu.com/item/bsp/4572854?fr=aladdin
2. Linux设备驱动开发详解 宋宝华著
  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值