嵌入式驱动怎么学习?

作者:奔跑吧linux内核
链接:https://www.zhihu.com/question/267507175/answer/325187096
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

谢谢邀请,关于如何学习linux驱动,笨叔叔在十几年前,也就是大学刚毕业的时候也是从linux驱动移植开始学起,比如交叉编译这个软件那个软件,最典型的就是qt了。

 

学习驱动可以从简单字符设备驱动开始,你可以挑选一个字符设备的例子。我记得笨叔以前从一个触摸屏驱动开始学起的。

写好一个驱动除了要熟悉linux驱动各种API用法外,对这个设备硬件本身也是需要熟悉的,这个就要下功夫去看芯片的datasheet了,另外,芯片厂商一般会提供sample code来帮助你来理解硬件。

 

字符设备搞清楚了,你就可以继续摸索其他问题,比如中断,内存管理,锁,这三样是驱动和内核最难的。我记得《linux设备驱动》这本书在十几年前已经被窝翻烂了,但是这三样东西依然不能说理解的很透彻,这就是为什么我要写《奔跑吧linux内核》的一个原因。

 

很多人说,不需要透彻的理解linux内核也可以写好驱动,这话对一半,错一半。现在内核里有很多驱动例子,你葫芦画瓢也是能写出一个驱动来的,可是你对自己使用内核API如何实现的都一脸蒙圈,你怎么能保证你写的驱动在大规模测试和商用的时候没有问题呢?怎么保证你写的东西是最优的呢?就好比你说你是汽车发烧友,别人问你自然吸气发动机和涡轮增压发动机在实现原理上有啥区别?实际操控上有啥区别?发动机最大马力和扭矩有啥不同?你若一脸蒙圈,那就别在朋友面前装是汽车大神了。

 

《奔跑吧linux内核》配套视频第一季内存管理,就是让笨叔来给大家解开内存管理这个死结。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嵌入式驱动是指针对特定硬件平台,开发设备驱动程序的技术。这些驱动程序可以控制各种外围设备,例如传感器、执行器、通信接口等。嵌入式驱动程序通常需要直接操作硬件,因此需要深入了解硬件结构和编程技术。 以下是一个嵌入式驱动学习实战的教程: 1. 首先,了解嵌入式系统的基本概念和发展历史。可以学习嵌入式系统的硬件、软件、通信接口、操作系统等方面的知识。 2. 掌握嵌入式系统的基础编程语言,例如C语言和汇编语言。这些语言是嵌入式系统开发的基础,需要熟练掌握。 3. 学习硬件体系结构和编程技术。这包括处理器架构、内存管理、中断处理、GPIO控制等方面的知识。 4. 学习嵌入式系统的设备驱动程序开发技术。这包括字符设备驱动、块设备驱动、网络设备驱动等方面的知识。 5. 掌握常见的嵌入式系统开发工具,例如编译器、调试器、仿真器等。这些工具可以帮助开发人员调试和测试驱动程序。 6. 进行实战练习,例如使用开发板开发一个简单的设备驱动程序。可以从最基础的GPIO控制开始,逐步扩展到其他设备驱动程序的开发。 7. 学习嵌入式系统的调试技术,例如使用调试器进行单步调试和断点调试。这些技术可以帮助开发人员快速定位和解决问题。 总之,嵌入式驱动学习需要系统化的知识结构和实战经验。通过不断学习和实践,可以逐步掌握嵌入式驱动开发的技术和方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值