初学嵌入式是选择单片机还是直接选择ARM

2019-04-15 18:15发布

初学嵌入式是选择单片机还是直接选择ARM

单片机对于广大初入嵌入式的朋友来说,最熟悉不过。从最经典的51系列的8位单片机,到类似Microchip16位单片机等。 从近年来嵌入式的发展来看,ARM确实占据了大部分市场。ARM也分为4个发展方向:一个是经典ARM处理器,其中比较有代表作的是ARM744B0ARM9S3C2440ARM11S3C6410;第二个方向是微控制CortexMR系列的处理,我想这部分内容正好是ARM用来对付单片机市场来设置的。其中代表的处理器是NXPLPC系列还有STM32;第三个发展方向是更加高端的应用处理器,Cortex-A系列,其中代表作为S5PV210等处理器,他们应用在手机、平板电脑等更高功能需求的设备上;第四部分是做可编程逻辑芯片,想必是要争抢FPGACPLD的市场。 有人说单片机要比学arm简单,我们就来分析一下。 1、从硬件原理来说,单片机与Cortex-M系列处理器,几乎等同。一般单片机提供的接口无外乎以下几种:电源、竞争、IO8位总线、SPII2C、串口等。而对于Cortex-M系列功能更多一些,比单片机多了USB、网络。32位总线等。 2、从软件角度来说,主流开发语言都是C语言,开发工具也无外乎KeilIAR等开发环境。两者能够接触到的操作系统,在实际应用最多的还是ucos。所以纵观以上这些,二者的开发难度相当。 3、从成本来说,学习的目的还是为了有一天能够得到应用,这时候最关心的成本了。单片机的价格从几块到几十块,Cortex-M系列的处理器也类似。取个平均值来说,大概10~20之间,就能满足大多数的实际需求。 4、实际产品的电路设计,基本2层电路板就能搞定。打板费用也比较低。 笔者分析到现在之后,可以得出一个结论,学习ARM的低端CortexM系列无论从难度上还是日后使用上,都可以完全替代单片机。 可是当笔者从大学走入社会实际工作之后,却发现客户的需求越来越超前,仅仅是Cortex-M根本满足不了客户的实际需求。 举个例子:客户说我要大屏显示,我要触摸,我要SD卡存储数据,我要Wifi,我要USB键盘,我要多任务处理,我要播放音乐,我要。。。。。。。。 每次遇到这样的客户,都让笔者痛苦万分。于是下定决心,学习更高端的ARM处理。正当笔者寻找到2440资料的时候,发现已经停产了。。。。。悲剧啊,ARM已经停止多经典处理器的支持了。现在都是Cortex-A8的时代了。 为了迅速让我的客户得到满足,我选择了芯灵思公司的一款210开发板。这时又有一个问题摆在笔者面前,选择什么样的操作系统呢? 是选择Linux还是Wince,或者直接选择最近比较火的Android呢? 因为客户有对图形界面的特殊要求,所以首先排除了linux系统,因为linux系统本身不具备图形系统,他是借助QT来做图形开发的,环境很难搭建。也没有更多的历程。而Android系统过于庞大,笔者一时很难融会贯通。所以决定选择Wince系统作为开发产品的标准平台。而芯灵思的这款210开发板正好对WinCE系统支持的非常好。这样使我的产品能够迅速开发成功。 由于WinCE系统的很多程序跟PC很相近,所以好多windows程序稍加改动就可以直接运行了。我当时先从最简单的MFC程序学起,做了简单的界面,也基本满足了客户提出的所有问题。 由于时间原因,先写到这里。日后再续。