开发板的重要性
嵌入式专业是一门实践性非常强的学科,只有多动手,多实践,多编程,多调试,多看书,多思考才能真正掌握好嵌入式开发技术。
学习的过程就是不断地看代码,编译代码,运行代码。都说实践是检验真理的唯一标准,所以最后的验证是非常重要的。只有在我们看代码,修改代码,最后把我们所思所想的到验证,这时候我们才学到了一些东西。所以一定要有一个平台能够验证你所学的内容。要有一个真机去运行你的代码。
如何选择一个开发板
Arm + linux 方向的学些和单片机裸机开发那种方式还是有很大的不同的,主要就是有了操作系统的概念,操作系统是对硬件资源的抽象和管理。所以硬件资源的大小和种类在开发板选择中是很重要的。在选择开发板时要看这块板子能不能满足你要学习中所需要的各种接口资源,比如UART串口,I2C,SPI,SDIO,GPIO,ADC等常用的接口。下面时一些主要的硬件模块选择
处理器的选择
选择开发板,目前来说不要选择有些年代的CPU架构,比如 arm9,arm11,虽然目前还有些产品在用,但是我们作为学习还是没必要了。我们学习要选择将来是一个主流的被用到产品上的平台,比如cortex-a系列,目前A8,A7,A9是用的比较多的CPU架构,而且现存的资料是比较多的,因为已经有很多的成熟的产品;经过了很多前人的验证。但是像A8,A7这种的一般产品都是单核32位的,这在以前是非常流行的;还有一本分产品不太追求性能,产品的主要特性要求是低功耗的话可以选择这类的CPU,而且单核的产品购买成本也是可以的。
随着现在人工智能热度越来越高,人工智能的产品也是层出不穷,像人工智能这类的产品是需要大量计算的,就是对CPU性能要求比较高,所以选择的时候就要考虑高性能的架构,像A53,A57,更高的话还有A72,A73的;硬件的成本是随着性能越高,价格也越高,所以我们在选择学习用的开发板时不必要去追求最高性能,在成本可接受范围内选择一些性能就可以了;当然如果有产品要求的话可以去专门的有针对性的去买来学一下。另外如果时追求性能的话,一般都是最新的CPU时性能最高的,这样会出现一种问题,就是最新的硬件一般市面上用的很少,学习资料也就很少,出现问题之后可能不太容易去找对应的解决方法,这对个人的学习和处理问题的能力要求很高。所以选择的时候要选择市面上学习资料容易找到的。
内存的选择
内存时用来承载程序运行时程序的指令和程序产生的数据,内存的大小要根据实际的实际应用场景来,一般521M或者1G就够了,如果后面有学习Android的计划的话可以选择大一些的2G,不过对刚一开始学习嵌入式linux的同学来说Android还是有点远的,能够熟练的运用好嵌入式Arm linux,这个学习周期还是有一段时间的。所以不必要考虑的太长远而增加了很大的学习成本。对于运行Linux 和一些linux C的程序的话 512M 和 1G是完全能够满足的。
存储的选择
存储时用来承载系统运行所需的程序和产生的数据文件的,存储的大小目前多采用8G,因为这个大小的flash足够我们去存放系统跟文件系统,并且能够分出来一个用户数据分区,来存放用户程序产生的数据。如果预算有限制,选择4G大小的存储也是可以的。目前嵌入式板上的存储有 Nand,Nor flash,emmc等多种存储技术的芯片,Nand 比 Nor的存储价格便宜一些。
接口外设的选择
目前智能家居比较火爆,这也是一个嵌入式领域比较好的应用方向。智能的概念很高端,短时具体怎么实现能?就是通过很多的传感器去获取数据,然后通过很多的控制器去执行某些行为。怎么等到传感器的数据,怎么控制执行器呢?
需要将这些外设连接到主控制器上,这就需要一些外设接口,前面提到的uart,I2C,SPI等通信接口与传感器和控制器交互。
开发板推荐
推荐一款目前学习价值很高并且资源丰富的开发板;
FS6818 华清远见教学实验用的开发板
处理器采用 ARM Cortex-A53 8Core s5p6818,主频高达1.4+GHz
内存采用 2G DDR3
存储采用 16G EMMC
外设有 按键,I2C,SPI,1-wire,ADC,PWM,USB,HDMI,LCD,Camera,CAN,485等常用的接口,另有红外接收器
电源管理采用主流的PMU电源管理芯片