send_linux 发表于 2011-03-24 15:31

Linux驱动开发应该注意哪些关键知识?提问有奖!

活动简介:

嵌入式Linux设备驱动是嵌入式系统中十分重要的组成部分。嵌入式Linux的各种设备驱动,包括字符设备驱动、数字显示驱动、键盘驱动、A/D驱动、D/A驱动、LCD驱动、触摸屏驱动、CAN总线驱动、IIC总线驱动、音频总线驱动、IDE接口驱动、闪存芯片驱动、USB驱动、串口驱动、网络设备驱动等。

如何快速熟悉和掌握相关知识,如何把握其中的关键点,一直以来是Linux设备驱动开发新手的难点,希望这次的Linux驱动开发关键知识的主题讨论,能够给您带来帮助!

活动嘉宾:

郑强先生,CU社区ID为gery258,《Linux驱动开发入门与实战》一书的作者,资深Linux设备驱动开发专家

活动奖品:

积极参与讨论和提出问题的用户,从前选出前十名,奖励《Linux驱动开发入门与实战》图书一本!

注:积极参与,内容原创,对主题讨论有积极意义的讨论为佳

图书简介:

Linux驱动开发入门与实战

http://book.chinaunix.net/prepic/110110105806.jpg

作  者郑强
出 版 社清华大学出版社
图书定价¥59.80


图书简介:

本书由浅入深,全面、系统地介绍了linux驱动开发技术,提供了大量实例供读者实战演练。另外,作者在实例讲解中详细分析了各种重要的理论知识,让读者能够举一反三。
本书共分3篇。第1篇介绍了linux驱动开发概述、嵌入式处理器和开发板、构建嵌入式驱动程序开发环境、构建嵌入式linux操作系统、第一个驱动程序、简单的字符设备驱动程序等内容;第2篇介绍了设备驱动中的并发控制、阻塞和同步机制、中断与时钟机制、内存访问等内容;第3篇介绍了设备驱动模型、rtc实时时钟驱动程序、看门狗驱动程序、iic设备驱动程序、lcd设备驱动程序、触摸屏设备驱动程序、输入子系统驱动程序、块设备驱动程序、usb设备驱动程序等内容。
作者专门为本书重点内容录制了教学视频,以提高读者的学习效率。另外,本书还赠送了大量的linux拓展学习视频。这些视频和本书源代码需要读者自行下载,下载地址见封面提示。
本书重点突出,涉及面广,实用性强,从基本知识到核心原理,再到实例开发,几乎涉及linux驱动开发的所有重要知识。本书适合所有想学习linux驱动开发的入门人员阅读,也适合作为驱动工程师的参考书,对于linux驱动开发的专业开发人员也有很高的参考价值。

样章阅读:

·第6章简单的字符设备驱动程序
·6.2初识cdev结构
·6.3字符设备驱动的组成
·6.4VirtualDisk字符设备驱动
·6.5小    结

欢迎CU社区嵌入式方面的会员积极参与!:emn26:

dreamice 发表于 2011-03-24 15:38

领导的活动,要支持的!

dreamice 发表于 2011-03-24 15:40

驱动开发,最主要的几方面知识:
1、Linux模块编程;
2、Linux内核相关的知识;
3、能够读得懂硬件datasheet;
4、多实践,学习一些驱动开发的实例,并能够实际调试。

个人见解,欢迎补充!

jlccwss 发表于 2011-03-24 19:49

本帖最后由 jlccwss 于 2011-03-24 19:50 编辑

我刚刚接触驱动,个人认为关键知识如下:

1、c/c++精通
2、熟悉内核(查找内核函数轻车熟路)
3、操作系统工作原理
4、能够读得懂硬件datasheet
5、一定要会使用分析时序的软件,不然会很不方便
6、实践,在实践中遇到问题解决问题才能更快的成长

killeder 发表于 2011-03-24 20:40

1.操作系统调度
2.调试技巧
3.大局观

accessory 发表于 2011-03-25 00:14

支持下。。。

1)操作系统
2)LINUX 内核
3)LKM
4)C

send_linux 发表于 2011-03-25 11:42

支持下。。。

1)操作系统
2)LINUX 内核
3)LKM
4)C
accessory 发表于 2011-03-25 00:14 http://bbs.chinaunix.net/images/common/back.gif


    兄弟,你这参加了,我们在给你快递礼品啊,书钱都不够邮费的啊....

Trigger_Huang 发表于 2011-03-25 17:37

首先驱动中经常需要分配物理内存,应该至少注意以下几点:
1,该物理内存是否能经过cache(如Framebuffer)
2,该物理内存分配时是否能睡眠
3,如果频繁分配,可以考虑用SLAB机制
4,在操作IO MM时,在映射之前应该要先申请

其次驱动程序的开发应该还要考虑到 对共享资源的保护(如spin_lock),特别要有完善的出错处理。

第三还要理解驱动模型: 总线 设备 驱动, 并熟悉多种总线子系统(PCI, USB , PLATFORM等)以及功能子系统(如网络,framebuffer, input等)。

最后还要熟悉多种硬件(datasheet)以及多参加项目,多写……

一孔之见,望诸位指教……

accessory 发表于 2011-03-25 23:56

回复 7# send_linux


额。。。我是客串滴。。。

qianguozheng 发表于 2011-03-26 08:27

Linux内核
C
汇编
驱动硬件相关
页: [1] 2 3 4 5 6
查看完整版本: Linux驱动开发应该注意哪些关键知识?提问有奖!