当前位置:  技术问答>linux和unix

Linux设备驱动,程序员主要做哪些东西?

    来源: 互联网  发布时间:2016-09-23

    本文导语:      如题,貌似好多东西内核里面都已经做好了,比如一个通过SPI/I2C总线扩展的设备驱动,关于总线的一些东西内核都做好了,作为驱动开发人员要做哪些东西呢?难道只需要做一些具体硬件相关的代码就可以了?...

    如题,貌似好多东西内核里面都已经做好了,比如一个通过SPI/I2C总线扩展的设备驱动,关于总线的一些东西内核都做好了,作为驱动开发人员要做哪些东西呢?难道只需要做一些具体硬件相关的代码就可以了?


    另外,关于地址空间很不理解。内核还不能直接使用物理地址?还要将物理地址映射到内核空间。 映射?什么是映射?就是一个简单的偏移或类似页表的对应关系?

|
基本可以这样讲。但严格说来是PCI内存地址映射到了RAM上,而PCI的I/O地址映射到了普通I/O地址上。

|
1、实际项目中,确实只需要做一些具体和硬件相关的代码就可以了。
2、运行可执行文件时,先被映射到进程的虚拟地址空间中,接着程序的一部分被操作系统装入到物理内存中。这种将映像链接到进程虚拟地址空间的方法称为“内存映射”

|
举个例子:
PCI设备都有I/O地址空间和内存地址空间。他们在系统中的地址范围由处理器通过设置PCI设备配置空间中的基址寄存器来配置。在嵌入式系统中,这两个地址空间常被配置到与系统中的RAM和普通I/O空间相同的地址空间中,这样系统中的软件就可以象访问内存和普通I/O一样访问PCI的地址空间了。

|
我感觉驱动做到最后都没什么可做的了,首先,上层的实现不用你管;其次,最底层都是硬件给实现了,你管不了;比如USB:做到最后发现,什么都是硬件做好了,只需要将数据按协议描述的方式发送出现,硬件就会自动处理,具体怎么处理不用你管。所以驱动做到最后,也没什么可做的。如果是裸机的,只需要移植别的代码,然后调试通过就行了。如果是代操作系统的,只需要将驱动加入与注册到内核中,在注意一下并发与竞争的问题就可以了。在过个几年,做驱动的就烂大街了

|

我个人觉得差不多就是这样了,在国内做驱动做到最后就是这样了,改改这个驱动,剪剪那个驱动,有了子系统,照着驱动的框架往上一套跟写应用程序差不多了,而写应用程序还有自己写程序的时候,而驱动自己写的很少或者就是没有,要想在进入更深一层那只能做内核开发,但是在国内做内核开发的公司好像不多。现在做驱动的这么多,在过几年肯定也不怎么值钱了,除非转去做别的,比如:往上层走做协议或算法,往更下层走做硬件去。

|
内核逻辑地址映射了大部分乃至所有的主内存,并被视为物理内存使用。在大多数的体系结构中,逻辑地址及其所关联的物理地址间的区别,仅仅在于一个常数的偏移量。

|
操作寄存器

|
有关内存映射你可以看一下 “保护模式” 

    
 
 

您可能感兴趣的文章:

  • UIO(linux Userspace I/O子系统)用户空间设备驱动I/O技术介绍
  • Linux设备驱动(第三版)- 字符设备驱动 - 例子
  • 各位设备驱动开发的朋友,请问,linux设备驱动开发和网络编程开发哪一样工资比较高呀?
  • Linux下写了一个字符设备驱动,找不到设备文件在哪个目录
  • 请教Linux设备驱动的具体应用(基于PC)
  • linux USB从口设备驱动问题
  • 跪求linux下usb音视频设备驱动
  • 请教!linux设备驱动
  • LCD设备驱动 LCD-Linux
  • Linux设备驱动程序开发
  • linux上的USB从设备驱动!
  • 想走嵌入式linux设备驱动方向,请多指点
  • linux设备驱动开发
  • linux 设备驱动开发&调试技术---!!!!!!!
  • 求 linux 设备驱动第二版 中文版 电子书下载 100分
  • 关于linux设备驱动的第一个例子
  • linux下块设备驱动中对于坏扇区的处理是那个部分?
  • 怎么学习Linux 设备驱动程序开发?
  • 初学linux设备驱动,菜鸟级问题,请指教,感激不尽
  • linux 启动的时候 可以检查出很多设备 并给设备配以驱动程序
  • 请高人推荐几本关于linux设备驱动的好书。。
  • linux的程序员是不是比windows程序员的薪水高啊?
  • Linux程序员在公司里做什么程序?(Linux程序员请进)
  • 在linux平台下的软件开发 需要什么样的程序员多一点啊 C.C++ 还是JAVA程序员阿???
  • 对于一个程序员来说,学习linux程序设计和unix编程到底有什么好处
  • 这里有一个linux论坛。(后备力量全是Linux开发有经验的程序员)
  • Linux Kernel/Network 技术QQ群14888802,只加有内核开发、TCP/IP协议栈开发的程序员,不加新手和做应用开发的程序员。
  • 几个Linux应用程序开发的问题请教LINUX程序员!
  • 一个老程序员的观点:Linux程序/内核设计是一门技术,Windows下的可扩展、可复用架构设计是一门艺术!
  • 调查:windows 程序员多还是 linux/unix 程序员多?
  • LINUX嵌入式应用程序员应具备哪些知识?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ??? 在win98下看linux下的东西用什么软件? ???
  • linux下有象MSDN一样的东西吗?
  • windows如何从Linux的tftp服务器上上传下载东西
  • 刚用linux两天,天那,怎么这个系统要装个东西这么麻烦啊?linux+apache+php+mysql
  • 重装Linux,原来的东西怎么办呢?
  • 请问RH Linux下的/opt目录是用来放什么东西的?
  • 用虚拟机装linux,其他盘的东西会丢失吗?急....
  • ◇linux开发要学些什么东西?
  • 下载同一样东西的时候遇到两种版本:Linux-DBG和Linux-OPT,有什么不同呢?
  • 在Linux下访问Windows的NTFS分区为什么不能写,也不能删里面的东西?
  • 你们在Linux上开发什么东西?
  • linux都要学习什么东西呀
  • Linux有类似Windows的注册表的东西吗?
  • 在linux怎么看硬盘上的东西??
  • 如何使linux的xwindows访问win2k的分区里面的东西?在线等待。。
  • Linux下c编程主要学什么东西?
  • ubuntu Linux 死活下载不了bt东西,网页能下载,什么原因?
  • glibc是指linux中的什么东西?
  • linux下能否限定某个用户telnet之后只能访问某个目录下的东西?
  • 请问linux图形界面下有没有 findwindow,然后getwindowtext 这种东西?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 你们在Linux上开发什么东西? iis7站长之家
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3