《嵌入式设备驱动开发精解》——第1章 关于本教程-阿里云开发者社区

开发者社区> IoT> 正文

《嵌入式设备驱动开发精解》——第1章 关于本教程

简介:

本节书摘来异步社区《嵌入式设备驱动开发精解》一书中的第1章,作者:孙智博,更多章节内容可以访问云栖社区“异步社区”公众号查看

第1章 关于本教程

嵌入式设备驱动开发精解
本书主要是针对从事嵌入式软件开发人员编写的,而嵌入式开发主要有两个方向,一个是从事嵌入式设备上应用程序的开发;另一个是驱动程序的开发,本书的方向更加侧重于驱动程序的开发。当然,本书对于从事应用程序的开发人员也是不错的参考,通过它可以很好地了解一个嵌入式设备是如何协调各种硬件一起工作的,对更好地进行应用层的开发是很有意义的。在一个具体的嵌入式产品中,上层软件主要是指具体的应用类程序,如可以在某一特定的硬件平台上开发一个游戏、开发一台照相机、开发一台录像机、开发一款E-mail收发程序等,这些具体的应用都非常直观地展现给了用户。而驱动程序的开发主要是针对硬件层面的设备进行软件开发,具体而言就是,为某一具体的硬件编写驱动程序,让这些硬件外设可以在特定的硬件平台上正确、稳定地工作,如使用手机上的照相机、LCD显示屏、键盘以及MP3、MP4多媒体功能,要使这些设备工作,就需要先给照相机(Camera Sensor)、LCD、多媒体等这些硬件编写驱动程序,让它们工作起来,然后结合上层的相关应用程序才组成了一个完整的应用程序。

94ca0cc2ace5f459f6aec8b3f41df58ea346876b

本教程的潜在读者对象是谁?本教程主要是针对想从事嵌入式设备的驱动开发人员的。而具体到什么是驱动开发,简单意义上就是给某个设备编写驱动程序,并使之融合到整个系统中来。希望读完本书能让您对于嵌入式开发有一个全新的认识。

下面我们以一部手机为例来看一下驱动开发的工作内容是什么。我们知道一部手机包括很多的元器件,如屏幕(LCD)、按键、触摸屏、耳机、收音机、照相机、录像机、录音机、T卡、麦克风(microphone)等。这些都是可以直观看到和触摸到的,而在手机的内部还有ARM CPU、Memory(内存系统)、Flash(NAND Flash 或者Nor Flash存储系统),电源管理单元,处理射频、音频的DSP、USB、串口等。所有这些元件依靠印刷电路板(PCB)连接起来,然后通过一款巨大的软件工程把这些设备组织并管理起来,最后就变成了使用的手机了。所以说,软件是灵魂,硬件是躯体,两者缺一不可。

设备驱动开发的工作就是为这些设备编写程序,让这些设备准确地工作,并融入到手机系统中来,例如LCD,就要为不同厂商的LCD编写适合某个手机开发平台的驱动程序,这样不同的LCD才能工作在不同的平台上,其他设备类似,但是驱动的工作并不局限于此。对于整个系统架构理解最深的也是驱动开发人员,只有对整个系统有透彻的、完整的理解才能开发出一个健全、健壮的系统。

本教程主要内容包括手机驱动开发设计中用到的常用外设的驱动程序的开发,包括如何写这些驱动程序,如何去调试这些设备,出了问题如何进行跟踪定位。我们知道驱动程序的调试不仅仅是软件方面的,同时也会涉及硬件方面的内容,这就要求我们具有一定的硬件知识,最少也能读懂硬件原理图,能够根据原理图编写程序,能够拿起万用表、示波器这些常用硬件信号电性能测量设备进行硬件的调试。往往一个设备的成功运行都是建立在反复的测试和测量的基础上完成的,特别是设备间联调的时候,例如,手机系统要外加一个蓝牙、一个WIFI、一个CMMB数字电视等。这个时候就需要我们和供应商的FAE(Field Application Engineer现场支持工程师)进行联调,这种联调工作是对我们嵌入式知识体系的一个综合考量,而往往这个时候板子还没有做好,只能通过飞线进行调试,所以调试环境恶劣,那么如何开始进行调试呢?这个疑问我们会在后面针对每一类设备进行详细讲解。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
IoT
使用钉钉扫一扫加入圈子
+ 订阅

物联网软硬件开发者一站式基地

其他文章