裸机驱动与Linux设备驱动的区别
来源:互联网 发布:北京知境科技有限公司 编辑:程序博客网 时间:2024/05/29 15:22
裸机驱动一般针对没有操作系统支持的层面,不用考虑操作系统对它的调用。
Linux驱动是在裸机驱动基础上,按照一定的规范来实现, 虽然实现的都是同一个东西,不过你发现在 Linux驱动 搀杂 了许多维护信息。
总之,Linux设备驱动就是比裸机驱动多了一些框架。
裸机底层驱动设计方法:
所谓裸机在这里主要是指系统软件平台没有用到操作系统。在基于ARM处理器平台的软件设计中,如果整个系统只需要完成一个相对简单而且独立的任务,那么可以不使用操作系统,只需要考虑在平台上如何正确地执行这个单任务程序。不过,在这种方式下同样需要一个Boot Loader,这个时候的Boot Loader一般是自己写的一个简单的启动代码加载程序。大家所熟悉的各种Boot Loader下的设备驱动,其实就是很好的裸机驱动程序。比如说U-Boot下的网卡驱动、串口驱动、LCD驱动等。
在裸机方式下,ARM的软件集成开发环境就显得极为重要,因为在这种方式下可以把所有代码都放在这个环境里面编写、编译和调试。在这种方式下测试驱动程序,首先要完成CPU的初始化,然后把需要测试的程序装载到系统的RAM区/或者SDRAM中。当然,如果需要处理一些复杂的中断处理的话,最好也把CPU的复位向量表放到RAM区中。把所有程序都调试好之后,再把最后的程序烧写到Flash里面去执行。
BOOTLOADER 对NANDFLASH的操作是为读取(装载)存储在NAND上的内核,当内核已由BOOTLOADER 读取到内存中去后,系统控制权交有内核控制,此时,一般是BOOTLOADER中的一些参数内核需要用到,其它基本上没有用了,原来用于存放BOOTLOADER的内存(有的开发板NANDFLASH中有前面的4K存储空间与内存地址重叠,小点的BOOTLOADER可一直接在这4K 的空间中执行)基本上可以由内核回收利用,所以内核不会用到BOOTLOADER上的NAND的驱动,也就就是内核需要自己的NANDFLASH驱动,不然文件系统无法加载。
相关阅读:
Linux设备驱动开发详解(第2版)源代码 下载 http://www.linuxidc.com/Linux/2013-07/86977.htm
Linux设备驱动开发详解(第2版)高清PDF http://www.linuxidc.com/Linux/2013-07/86976.htm
Linux设备驱动中的异步通知 http://www.linuxidc.com/Linux/2013-06/85293.htm
嵌入式Linux设备驱动编程环境搭建 http://www.linuxidc.com/Linux/2013-05/84532.htm
(转载自http://www.linuxidc.com/Linux/2013-08/88799.htm)
- 裸机驱动与Linux设备驱动的区别
- 裸机驱动与Linux设备驱动的区别
- 【面试】嵌入式软件与非嵌入式软件、设备驱动与裸机驱动开发区别
- 嵌入式软件与非嵌入式软件、设备驱动与裸机驱动开发区别
- Linux设备驱动,总线,设备,驱动区别
- 字符设备驱动与块设备驱动、网络设备驱动的区别
- linux platform 设备与驱动的匹配
- linux设备驱动的编译与下载
- linux 设备与驱动的绑定
- linux设备驱动的并发与竞争
- 基于mini6410的linux驱动学习总结(二 字符设备与块设备的区别)
- linux设备驱动与加载
- 关于设备模型、设备与驱动关联的过程分析 - linux设备/驱动
- Linux 总线、设备与设备驱动的关系
- linux 驱动-----字符设备驱动的组成
- 《Linux驱动》混杂设备与设备节点
- 《Linux总线、设备与驱动》USBHID设备驱动
- 《Linux总线、设备与驱动》USBHID设备驱动
- ASP.NET IOS微信支付 完成 跳转
- 分布事务故障处理
- ARM汇编指令
- Binary Tree Level Order Traversal II
- Android Tween动画之RotateAnimation实现图片不停旋转
- 裸机驱动与Linux设备驱动的区别
- Eclipse安装SVN插件
- autoNumeric网页数字格式化Jquery插件
- ajax、php、json异步数据处理
- git fetch记住密码的方法
- textView中的文字置顶设置
- maven-jetty热部署
- xutils找id报空指针异常
- LeetCode: Single Number