博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《嵌入式设备驱动开发精解》——第1章 关于本教程
阅读量:7196 次
发布时间:2019-06-29

本文共 1534 字,大约阅读时间需要 5 分钟。

本节书摘来异步社区《嵌入式设备驱动开发精解》一书中的第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现场支持工程师)进行联调,这种联调工作是对我们嵌入式知识体系的一个综合考量,而往往这个时候板子还没有做好,只能通过飞线进行调试,所以调试环境恶劣,那么如何开始进行调试呢?这个疑问我们会在后面针对每一类设备进行详细讲解。

转载地址:http://mhxkm.baihongyu.com/

你可能感兴趣的文章
6本互联网技术畅销书免费送(数据分析、深度学习、编程语言)!
查看>>
react-native + teaset(Drawer)实现侧边菜单
查看>>
WPF Dashboard仪表盘控件的实现
查看>>
Jvm(54),虚拟机类加载机制----类加载的过程----准备
查看>>
TCP/IP之大明内阁 转
查看>>
eclipse team 没有svn
查看>>
WPF BitmapImage 占用资源无法释放、无法删除问题
查看>>
DeepLearning.ai学习笔记汇总
查看>>
Git-撤销(回退)已经add,commit或push的提交
查看>>
java注解总结-关联信息-关联结构
查看>>
SpringBoot系列:Pojo validation
查看>>
Elasticsearch Mapping
查看>>
前端模板技术面面观(1)
查看>>
cnpm不是内部或外部命令 cnpm: command not found
查看>>
Git 基础 - 打标签
查看>>
MongoDb 快速入门教程
查看>>
C#语法中比较特别之处---狗尾续貂
查看>>
(原創) 如何將parallel轉成serial?如何將serial轉成parallel? (SOC) (Verilog)
查看>>
IOC 控制反转
查看>>
silverlight应用程序中未处理的错误代码:2104 类别:InitializeError 消息:无法下载 iis上部署Silverlight...
查看>>