单片机、ARM、嵌入式开发、Android 底层开发有什么关系?
很多人在问我们学这些东西能干什么,这些东西有什么关系,我该学那个?
想知道这些首先得知道这些东西都试试很么。
单片机(Microcontrollers,亦称MCU)包括了CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
ARM是一家公司,ARM是一种架构,ARM是一系列使用ARM核心芯片的合称。ARM处理器是低功耗、高性能的RISC指令集处理器。ARM处理器目前包含Cortex-M、Cortex-R和Cortex-A系列满足不同的应用需求。
嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。简单理解就是除通用PC、服务器之外满足特定需求的计算机系统。
单片机包含很多,如51单片机、MSP430单片机、PIC单片机、AVR单片机、Fresscale单片机、各种Cortex-M芯片,8bit、16bit、32bit都有。主要完成一些功能相对简单的嵌入式系统开发。
ARM架构的芯片,Cortex-M系列芯片属于单片机,Cortex-A系列芯片属于SOC。一般Cortex-A系列芯片用来开发一些功能相对复杂,性能要求较高的产品。
当然不敢是基于单片机的开发还是基于ARM的开发都属于嵌入式开发,嵌入式开发主要包括软硬件两部分,硬件开发主要是电路设计,也就是平时我们看到的各种各样的电路板,软件开发设计比较广,有裸机开发,有操作系统开发,有驱动开发,有应用开发,涉及不同语言,设计不同层次。
嵌入式开发设计操作系统有很多从比较简单的uCOS、freertos、到复杂的windows CE、linux、在到现在比较火的IOS、android。当然严格的说IOS是Unix、android是Linux。
这里说的android底层开发主要是android系统里对于不同硬件适配的部分。这部分本质上是linux 应用开发,只是被庞大的android体系复杂化了。几乎所以android产品都是ARM架构的
所以他们几个的关系是