《嵌入式设备驱动开发精解》——2.3 嵌入式开发入门第一步

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

2.3 嵌入式开发入门第一步

嵌入式设备驱动开发精解
当我们谈论嵌入式开发的时候,最常听到的就是嵌入式开发是如何地难学,比如既需要一定的开发语言基础,又需要相关的数、模、电方面的知识,难道嵌入式真的那么难吗?其实难与不难最关键是一个入门的问题,等真正入了门就会发现先前的努力与汗水都是值得的,你会迈入一个全新的世界。入门嵌入式开发确实有一定的难度,因为它不像学习Java,只要有一台PC,然后按照教科书的例子一个个抄下来,通过一段时间的学习就能编写小的程序了,并且在PC上能立刻看到执行的效果,也可以一步一步地跟踪调试编写的程序,直到你的Java程序完美实现了原来的设计。

而嵌入式开发就没有这么简单了,首先在PC上不能立即看到运行的效果,需要建立一个交叉编译环境,用这个环境编译、链接写的程序,然后把链接后的程序烧写到板子上的Flash里,然后给板子加电,让程序在板子上去执行,程序的执行结果并不像PC程序中Java那样,立刻就能直观地看到结果,如果程序执行不正确也不能像PC上那样简单的一步一步地跟踪调试,需要借助第三方的工具才能一步一步地跟踪调试,所以也相应地增加了难度。

另外如下的知识点是需要重点掌握的。

掌握ARM系列的CPU,要求对ARM CPU的体系结构有深入的理解,并且能够做到熟悉一款特定ARM CPU的总线、时钟、外设接口,以及通过Memory map迅速了解它的大概配置。
掌握常用的外设,如LCD、各种存储设备(NAND flash或者Nor Flash)的使用方法。
掌握常用的外设接口,如IIC、SPI、MIPI、EBI等。
熟悉硬件原理图,能够看懂基本的硬件原理。可以说硬件原理图是硬件和软件的接口的表达,要做到通过读硬件原理图能够编写相应的软件。
掌握常用的调试手段,如串口log跟踪,JTAG工具的熟练使用,这些工具可以协助我们跟踪程序内部流程,能够直观看到程序流。
扎实的C语言基础,我们可以看到嵌入式开发充分利用了C语言的灵活,嵌入式开发是C语言灵活展示的舞台,另外,通过读别人的代码可以了解设计者的思想,同时也可以去学习并发扬有价值的设计思想。
当你掌握了一款ARM CPU之后,那么对于其他使用ARM CPU的嵌入式产品来说,你也会非常容易上手,并能很快对整个系统有一个很好的认识。另外驱动程序的研发工作不光是写好一个设备的驱动程序,同时也是要架构一个驱动程序框架,可以让同类的设备方便地加入该框架之下,让框架来管理这些相似设备的驱动,一个好的框架设计对于一个项目来说是至关重要的。

上一篇:[Math]理解卡尔曼滤波器 (Understanding Kalman Filter)


下一篇:关于内存泄漏检测问题,和大家一起分享