无根之木不活,无基之楼不立,无论是学习哪个领域知识,基础是重中之重。

针对学习linux驱动,我们来仔细谈谈:

个人认为C语言和数据结构就是重中之重!Linux系统最优秀的地方就在于内核。无论是进程调度,内存管理,还是数据的组织形式,而这些算法的基础就是一个高效而精简的数据结构,红黑树也好,内核链表也好,看不懂C语言,搞不清数据结构,基本上谈不上做驱动。基础不扎实不要谈上层建筑,资源不全面就不要谈合作,很简单的道理。

假设楼主的C语言和数据结构都是勉强过关的(分得清指针函数函数指针,能够熟练自定义链表并进行增删改查等链表或树的算法重组)。我们来谈下一个阶段,让我们对类Unix系统的基本操作有一个基本的了解,打开文件,切换路经,更改个密码,填个用户什么的。

接下来我们来谈驱动,做驱动就得有做驱动的样子,不知道楼主之前玩过裸板51或者AVR没有,如果没有,尽快搞通,资源很多,跟着人家把电平配一遍,来个矩阵键盘,组个跑马灯,有成就感的同时也打下了硬件基础,好处大大滴。

基于操作系统的驱动,即必须了解内核对驱动程序的管理方法,怎样划分一个具体的设备,是字符型?块设备?还是别的什么,或者从总线的角度来划分一个设备,i2c也好,USB也罢,还是数据地址控制这么一个三总线形式,都是有必要掌握的东西。

上升到应用,任何一个实践项目中很难会有一个板子让你从零开始写驱动,百分之九十九是拿来改,这就是一个熟练的过程,做到一定多的东西,就会下意识地觉得,这个地方可能会有问题,我需要留意一下。

总结一下,驱动工程师其实也是一种硬件翻译型工程师,其任务就是看懂手册上的表格,然后体现在代码里面。客观地说,我们这个行业门槛较高,队友较少,不过等到真正入门之后,那种成就感是无与伦比的。

取消

评论

linux摄像头内核驱动开发,怎么在Linux下开发摄像头驱动相关推荐

  1. firefly-rk3288j开发板--设备树下的 LED 驱动

    firefly-rk3288j开发板–设备树下的 LED 驱动 1 准备工作 开发板:aio-rk3288j SDK版本:rk3288_linux_release_20210304 下载工具:Linu ...

  2. linux图形图像驱动,Linux_Linux操作系统下USB图像采集驱动的安装,ARMlinux下USB摄像头图像的采集 - phpStudy...

    Linux操作系统下USB图像采集驱动的安装 ARMlinux下USB摄像头图像的采集很难,往往望而却步.相比较LINUX系统下的摄像头驱动的安装简单的多,下面就介绍我的安装过程. 我使用的linux ...

  3. linux的内核和发行版本,查看Linux内核及发行版本信息

    1.输入"uname"并按回车键确定即可显示当前操作系统. 2.输入"uname -a"并按回车键确定即可显示当前操作系统内核版本. Linux内核版本有两种: ...

  4. linux当前内核版本是多少钱,Linux查看版本当前操作系统内核信息

    1. # uname -a (Linux查看版本当前操作系统内核信息) 输出 Linux xxx 4.4.--generic #~14.04.-Ubuntu SMP Wed Jul :: UTC x8 ...

  5. pycharm 开发app_windows及mac下开发Excel, python+xlwings开发环境配置

    背景: 孩子他妈天天excel办公,看她每天大量重复性的工作,她是时候学习python来解放自己了,虽然我不用python ~ ~ 网络搜索 xlwings 是python下非常强大的处理Excel的 ...

  6. linux的内核兼容,各种glibc和Linux内核版本的兼容性

    在构建编译器时,除了glibc版本之外,还必须指定 Linux头版本和最小支持的内核版本.然后在目标机器上有实际的内核版本和glibc版本(具有自己的内核头文件版本和最低支持的内核版本).我很难理解这 ...

  7. linux哪个内核版本开始支持utf8,Linux下GLPI和OCSNG新版整合安装原生支持UTF8

    GLPI是非常优秀开源IT管理系统,包括资产统计.helpdesk等等功能,配合OCSNG还可以实现自动采集客户端软硬件信息. 虽然这套软件也有Windows版的,但Linux下的更加稳定,推荐在Li ...

  8. linux多内核调度,linux-kernel – 如何在Linux内核(Samsung Exynos5422)中实现异构多处理(HMP)调度?...

    码: 检查#ifdef CONFIG_SCHED_HMP下的源代码主要在kernel/sched/core.c之内 A(不是那样)简要概述: big.LITTLE cpu可以配置为2种操作模式: &g ...

  9. linux编译内核后无法进入,编译linux内核,ubuntu,x86的环境出现warning,然后就出现无法启动ubuntu...

    在命令行输入:make ARCH=x86 modules_install INSTALL fs/ext3/ext3.ko INSTALL fs/jbd/jbd.ko INSTALL kernel/co ...

  10. Linux编译内核的详细配置

    分类: Linux内核 2005-03-12 10:58 4492人阅读 评论(0) 收藏 举报 linux网络idedoswindowsdocumentation 前言之前言:谁是这篇文章的读者? ...

最新文章

  1. android中extends 和implements的区别
  2. go和java线程,Go的多线程和pthread或Java线程有什么区别?
  3. Intel Realsense pyrealsense2 points对象
  4. Linux下硬盘安装linux
  5. 编写分段函数子函数_编写自己的函数
  6. 内连接,外链接(左连接、右连接、全连接),交叉连接大总结
  7. python数据分析numpy_Python数据分析之numpy学习(一)
  8. Python:常见排列组合问题处理
  9. Flutter列表ListView学习
  10. python3.5变化(String)
  11. chrome android 导航,将 Chrome for Android 的地址栏移动到屏幕下方[Android]
  12. 骑行318、 2016.7.26
  13. 文件上传绕过的一些姿势
  14. STAR建索引内存不够
  15. 使用python计算最大回撤
  16. vue 知识点整合(持续更新,希望各位大佬不吝赐教补充...)
  17. axios get 方法后台没有得到传递的参数
  18. 单片机printf使用
  19. 从罗永浩身上,我们能学到的营销策略
  20. 高德百度腾讯之间经纬度的转换

热门文章

  1. 二 jQuery 语法
  2. linux的基础知识——shell基础
  3. 【计算机网络复习 物理层】2.1.2 数据通信基础知识
  4. 牛客16589 机器翻译
  5. 牛客16662 津津的储蓄计划
  6. java keystore ca_PKCS12 Java Keystore from CA and User certificate in java
  7. python中注释的快捷键_【Python】注释
  8. python处理文件名_[请教]python的中文文件名处理
  9. python selenium模拟键盘_SELENIUM自动化模拟键盘快捷键操作实现解析
  10. BAT文件命名中含有英文括号运行出错