目前,嵌入式处理器常见的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire,但ARM占据了绝对的主流。作为一家不生产芯片的芯片厂商,ARM却在全球范围内支撑起了各种嵌入式设备、智能手机、平板电脑、智能穿戴和物联网设备的运行,同时,ARM很早就开始“入侵”传统X86架构处理器坚守的高性能计算终端市场了。高性能、低功耗、低价格、丰富的可选择芯片、广泛的第三方支持与完整的产品线和发展规划使得ARM大量涌现在人面前,那么作为初学者又该如何学习ARM呢?
ARM嵌入式和单片机学习有着密不可分的关系,可以抛开复杂的软件结构,先掌握硬件操作。ARM与单片机是有着许多区别的,相比来说ARM要比单片机复杂的多。据某位知乎大神表示,往往单片机只需要对一个寄存器赋值即可初始化,而在ARM下就要调用库函数,另外,每个引脚其功能都多了许多,相应的配置也会更为麻烦。但如果有了丰富的ARM的项目经验就会发现,其实它的应用配置也是千篇一律,有章可循的。
著名专家韦东山也曾强调,不要再用老方法学习单片机和ARM。他表示,学习单片机是没有前途的。一是因为单片机太简单,工作十年与两年技能差别不大所以企业更偏向选择薪资较低的新人,二是因为单片机的价格优势正在逐渐消失,目前智能保持微弱的优势就是稳定性这一特点。如果单片机和Linux都想学,在单片机->bootloader->Linux系统/驱动->APP(QT)这条学习线路上可以使用同一套开发板。首选三星(SAMSUNG)S3C2440、S3C6410、S5PV210、Exynos4412;其次是德州仪器 (TI) AM437X、AM335X;然后是飞思卡尔(freescale),iMX6;还有其它国产芯片:全志、瑞芯微。
学习嵌入式难点不是在学,而是很多人就在入门这一关就卡死了。觉得学的没头绪,是因为你学习方法不对,首先,你应该要有目标,要学到什么程度,要从什么开始学起。
在学习初期第一先看关于ARM芯片的Mannual;第二找一本关于内核的不错的书,比如,想学Cortex-M3的话,《The DefiniTIve Guide to the Cortex-M3》是很不错的。看这书的时候不需要全部掌握,只需要当做一本参考手册来读就好,知道在开发过程中遇到什么问题来这里哪一章找解决方法即可;第三买一块开发板,参考板子带的全程进行调试;第四自己跟项目,或者自己搞点开发,例如开发一个小智能小车之类的,学习总得有点儿投入。
Linux作为重要工具,在不明白Linux的情况下,ARM的学习也将面临瓶颈。目前嵌入式Linux领域稀缺的Linux移植到某个新型号的开发板上,能写Linux驱动程序的人,熟悉Linux内核裁减和优化人。现在公认的Linux的入门书籍是“鸟哥的私房菜” ,讲得很全面,鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇。