我是稀里糊涂的走上了嵌入式开发的路途,回想起来,多亏了身边的几位朋友,是在与他们的闲侃中渐渐的走上了这条路途:从最早的电路设计,PCB打板,电路调试,模仿仿真,单片机开发到后来的ARM开发,回想起来,心里也是诚惶诚恐,如履薄冰。
我开端做电子是用的AVR单片机,从I/O、按键…到内存、外设玩了一通。作业之后,才开端玩ARM。在项目中逐步对ARM开发有了一些感悟。
学习ARM有两个意图,看你是那种:1、长见识,趁便玩玩;2、作业需要,从事ARM开发。这就要分隔对待了。
假如是长见识,随意玩玩,为日后的作业做准备,那么就应该挑选市场上很老练的ARM7、ARM9等材料比较多,玩的人比较多,出现问题简单处理;假如是作业需要,就没有这么多挑选,有必要依照功用要求,开端降服特定的片子。
不论哪种意图,学习起来过程我感觉差不多,先裸板,后上操作体系:
之所以这么组织,是因为听了许多大牛的建议和定见。正所谓“万丈高楼平地起”,根底很重要。在上操作体系之前,必定要对底层代码特别是裸板程序有必定的知道。这样,关于操作体系中触及底层的问题就会少许多。
现在以我学习ARM11(s3c6410-1176JZF)的阅历介绍写一些基本功。
首要:要有必定的电子根底。
这不是废话吗,已然玩ARM当然都是懂电子的呀。其实不然!电子根底可深可浅,怎样是个头?会IC放大器,建立信号处理电路,这是信号处理中的基本功。关于ARM开发来说,我感觉重点在信号走线、滤波、稳压和坚持片子功能安稳上(剖析一个ARM板子就会理解这些道理)。
我谈下我的见地:理解ARM板子中除集成IC之外的元器件的效果,最常见的是电容效果、驱动LED呀、扬声器呀、串口衔接、存储器衔接、LCD屏幕衔接等等。看到串口,想起怎样衔接;看到按键,想起怎样辨认……基本上在硬件上能够将整个体系衔接起来。
其次,有必定的英文阅览才能。
我在开发的时分以Linux使用彻底开发手册、6410手册和ARM1176jzf内核手册为根底。这三个文档一个中文,两个英文,页数总和有2500页。假如没有耐性,想赶快完结开发,这无异于水中捞月。6410的手册是对ARM11芯片的介绍和寄存器的整体介绍:包含GPIO设置,相机接口、Nandflash控制器、DRAM控制器等。1176jzf是对1176jzf处理器的设置的介绍。