单片机处理器初学嵌入式是选择单片机还是直接选择ARM
本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~
初学嵌入式是选择单片机还是直接选择ARM
单片机对于广大初入嵌入式的朋友来讲,最熟习不过。从最经典的51系列的8位单片机,到相似Microchip的16位单片机等。
从近年来嵌入式的发展来看,ARM确切占领了大部份市场。ARM也分为4个发展方向:一个是经典ARM处理器,其中比较有代表作的是ARM7的44B0,ARM9的S3C2440,ARM11的S3C6410;第二个方向是微控制CortexM、R系列的处理,我想这部份内容恰好是ARM用来对付单片机市场来设置的。其中代表的处理器是NXP的LPC系列还有STM32;第三个发展方向是更加高端的应用处理器,Cortex-A系列,其中代表作为S5PV210等处理器,他们应用在手机、平板电脑等更高功能需求的设备上;第四部份是做可编程逻辑芯片,想必是要争抢FPGA、CPLD的市场。
有人说单片机要比学arm简单,我们就来分析一下。
1、从硬件原理来讲,单片机与Cortex-M系列处理器,几乎等同。一般单片机提供的接口无外乎以下几种:电源、竞争、IO、8位总线、SPI、I2C、串口等。而对于Cortex-M系列功能更多一些,比单片机多了USB、网络。32位总线等。
2、从软件角度来讲,主流开辟语言都是C语言,开辟工具也无外乎Keil、IAR等开辟环境。两者可以接触到的操作系统,在实际应用最多的还是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程序学起,做了简单的界面,也基本满足了客户提出的全部问题。
由于时间原因,先写到这里。日后再续。
文章结束给大家分享下程序员的一些笑话语录:
程序员喝酒
我偶尔采用“木马策略”、“交叉测试”,时间不长就开始“频繁分配释放资源”,“cache”也是免不了的了,
不过我从不搞“轮巡”,也不会“捕获异常”,更不会“程序异常”,因为我有理性
克制的。