ARM开发比51开发高级吗—嵌入式就业技能分类

这个问题在嵌入式教育培训中,我回答了很多次。初学者往往都会认为ARM开发比51开发高级,但事实是这样吗?本篇文章就基于嵌入式开发领域的知识点分类的视觉来谈谈。作者在嵌入式领域有超十年的开发经验,本文也代表作者对嵌入式领域的大体见解。

1.     体系编程方面

CPU体系代表的是某类CPU家族的体系特性,如ARM体系、MIPS体系、X86体系,而嵌入式开发工程师一般是针对集成各种模块的SOC进行编程。因此这里的体系既包括CPU体系,也包括SOC编程。体系编程应该说是嵌入式领域最基本也是最通用的编程技术要求了。所有嵌入式软件工程师都是从体系编程开始的,如ARM体系编程、MIPS体系编程、51体系编程。

嵌入式体系编程区别于PC(X86)编程的最大特点是,嵌入式的中断控制由工程师自己把握,甚至每行代码都由工程师把握。中断、时钟、GPIO和寻址方式是体系编程的基础。这些模块在所有CPU体系中都存在,不管是ARM,还是51。从系统设计来看,ARM和51在很多模块的核心设计理念上都是一致的,要到芯片的寄存器级才体现出不同。当然设计水平和寄存器的多少、CPU字长、流水线等等都最终影响CPU/SOC的性能和功耗。但对于一般的嵌入式工程师来说,他们面对的体系编程,在原理上可以说都是一致的。

接下来就谈谈不同的地方,ARM一般我们认为是高级处理器,事实上ARM也有进入控制器市场,如热销的STM32。而51仅是控制器。很多初学者认为ARM是认为ARM只代表高级处理器了。高级处理器比控制器性能优越,一般集成功能也比较丰富,如音视频编解码、协处理器等等,但在软件开发来看,本人认为处理器和控制器最大的区别在于高级处理器有MMU(内存管理单元),而控制器没有,或者说它只有固定映射。MMU是通过操作系统如LINUX运行的必备要求,而MMU也意味着系统会配备较为丰富的内存资源,可以支持LINUX等复杂操作系统。在其他方面,处理器和控制器在原理上都是一致的。

2.     嵌入式软件-内核方面

ARM高级处理器可以跑linux,而51可能裸跑,也也可以运行UCOS/RTOS等等。51没有MMU,CPU性能一般,支持不了Linux。

但是,这并不代表51就是低层次的产品。技术是没有贵贱之分、恰到好处才是最好。产品设计最怕技术堆砌了。产品是讲究性价比的,在完成功能和性能的基础上做到尽可能低的成本。ARM高级处理器跑UCOS,就好比奔驰车搭一个马自达的标志。

3.     嵌入式软件-驱动方面

通用驱动方面:KEY、LCD、存储、AD/DA、USB等等。

传感器:温湿度、光敏、加速度、气体传感等等。传感器最重要的是算法,如加速度传感器的计步算法实现等等。

物联网(驱动和应用):蓝牙、WIFI、Zigbee、RFID等无线设备。

文件系统、GUI、协议栈

这些东西跟ARM和51没有直接的关系吧,如果是C语言编程,那在两个平台里面切换时很容易的。所以在这方面,两周也没有高低之分。

4.     嵌入式软件-应用方面

领域开发,跟CPU核没有什么关系,这块是平台无关的。当然,要看应用对底层操作系统的性能要求。像导航应用运算量大,51也撑不起。但对于导航应用开发者来说,他不需要关心底层的CPU核是什么。

当然,对于某些简单的电子产品来说,其没有操作系统或者内核,或者几乎没有分层,像电视的遥控器这种应用,那应用开发的大部分就是红外驱动开发了,其就是平台相关了。

应用跟行业领域相关,各行各业差别很多,例如航空和医疗,各有特点。企业选择应聘者一是看其通用的开发技术水平,再是看是否有相关的行业经验。例如ATM机开发涉及到金融,如果之前有过类似经验的工程师,那过渡会比较快。

另外,嵌入式应用基于应用框架来分类。应用框架的代表是QT框架和android应用框架,这种应用开发可以说跟一般的嵌入式软件都脱离得比较远了,可以说跟PC的客户端软件开发差不多了。由于android智能机(手机/PDA)已经普及,业界已经将android应用开发视为一个单独的岗位需求,但对于QT框架应用开发还是视为嵌入式方面的要求,当然,这个需求量已经很低了。

这个部分讲得更多是嵌入式方面的就业岗位技能方面,跟51/ARM平台关系不大,因为它很多时候都是平台无关的。

5.     真的不可比吗

也不是,总体来讲,51单片机一般适用在相对简单的电子产品,而arm会应用到相对复杂的电子产品。企业里面的嵌入式开发工程师,绝不是仅仅是做体系编程开发,往往是平台相关的驱动开发或者平台无关的应用开发。由于产品所要求的技术的复杂性,基于ARM平台开发的工程师有机会接触到相对复杂的、或者技术难度高一些的模块开发,自然能够积累到更加丰富的经验。从这点来看,这个比较也有一定道理。但是,51平台开发工程师绝不需要为此而感到自卑。产品性价比至少,ARM平台所用到的计算,51平台一定同样会有,笔者之前就基于51平台和MIPS平台进行嵌入式操作系统的架构设计和开发,里面的技术基本是理解了嵌入式Linux的精髓,高度精简移植而来,适用就好。封闭的系统最考究一个人的设计能力,而开源的系统更考究一个人的全面能力。

6.     工具链

工具链是嵌入式工程师的基础要求。姑且将运行时库、混合编程、宏定义、编译链接、汇编语言归类到这个范畴。尤其是链接脚本的定义能够看出一个工程师对一个平台的把握程度。工具链的技巧应用是嵌入式架构师的基础要求。

51平台有51的工具链,而arm平台一般用GCC工具链。GCC工具链有更加丰富的描述语法,熟练运用可以让编码更整洁、更高效。


     所以,嵌入式软件工程师应尽可能地提高自己在平台无关领域的软件设计水平和经验,例如内核和下面提到的应用、驱动等方面,而不管自己是在ARM平台上开发还是51平台上开发。

      嵌入式企鹅圈原创团队由阿里、魅族、nvidia、龙芯、炬力、拓尔思等资深工程师组成。百分百原创,每周两篇,分享嵌入式、Linux、物联网、GPU、Android、自动驾驶等技术。欢迎扫码关注微信公众号:嵌入式企鹅圈,实时推送原创文章!

时间: 2024-10-11 03:06:29

ARM开发比51开发高级吗—嵌入式就业技能分类的相关文章

嵌入式linux与51/430/STM32的嵌入式开发的区别与关联

嵌入式linux与51/430/STM32的嵌入式开发的区别与关联 总结: 微控制器系列:8051, MSP 430 , STM32 F0-3( ARM Cortext M0 - M3系列)等 主要特点没有内存管理单元,不能运行linux 这类有着虚拟内存的操作系统,只能运行裸机程序或是ucOS一类的实时操作系统.主要工作就是外设驱动开发(比如写个编码器的驱动,液晶的驱动,usb的驱动)和基于驱动的应用程序开发,如控制类和简单的图像处理功能. 微处理器系列: ARM Cortex A系列的处理器

嵌入式开发板 iTOP-4412开发板 初学ARM开发板首选!提供技术支持!

摘要: ARM开发板 迅为三星Exynos嵌入式开发平台超强GPS模块 iTOP-Exynos4412开发板采用 Exynos4412的主芯片,具有更高的主频和更丰富外设,配置 2GB 双通道 DDR3的内存及 16GB 存储,具有稳定性强.可靠性高,能适用于对性能和处理能力有更高要求的嵌入式系统应用场合. iTOP-Exynos4412开发板内置有无线 WIFI 模块.Bluetooth.GPS.Camera.3G等模组,支持 HDMI1.4(1080P/60Hz)显示,客户可以直接从开发平台

关于郭天祥51开发板无法烧写程序问题的解决(Prolific USB-to-Serial Comm Port)

1. 事件背景: 由于使用了win8系统,之前购买的郭天祥C51开发板在通过一个两头都是usb口的下载线下载程序时出现了问题:下载工具stc isp无法连接到开发板上的串口,所以无法下载程序到c51开发板上,错误显示如下 2. 寻求解决方法 本人尝试了网络几乎所有的方法,包括更新驱动.恢复驱动到旧版本(可能有用,我没用)等等方式都没有成功.这导致本人当时几乎放弃了这块板子.在尝试过程中我也想过用u转串连接板子上的串口到电脑的usb口来下载程序,但是也没有成功. 3. 踏破铁鞋无觅处,得来全不费工

极客学院iOS开发工程师初级+中级+高级视频教程

下载地址:百度网盘下载 课程目录: 初级IOS开发工程师 19课程 7小时50分职业介绍1.iOS 开发的前世今生C语言基础 1.二级 C 流程控制 2.二级 C 函数与指针 3.二级 C 数组4.二级 C 字符串5.二级 C 作用域.预处理与存储 6.二级 C 结构体与共用体 7.二级 C 文件Swift语言基础1.Swift 语言基础2.Swift 中的字符串和集合 3.Swift 中的函数和闭包 4.Swift 面向对象基础(上)5.Swift 面向对象基础(中) 6.Swift 面向对象

Android开发工程师,前行路上的14项技能

导读: 你是否曾渴望回到宋朝? 或者什么朝,反正就是男耕女织的古代. 哦,那时的首都在汴梁(开封),房价想必没有现在这么高,工作?无非就是给你把锄头,去,种地去.夕阳西下了,麦子垛后,你和翠姑搂抱在一起,那时的你,生活的简单而美好. 看看现在的你,一个刚入门的安卓开发工程师,没有信用卡,没有她,没有24小时热水的家.你想念你的锄头和翠姑(或麦垛),可你回不去了.你握在手中的安卓手机,冰冷如铁,你不知道如何在这4寸屏的小东西上创出一片天地. 你不用感到不知所措和困惑,技术就是你安身立命的根本,当下

新手上手STM32是学习库开发还是寄存器开发?

有需要资料的可以加我:腾讯QQ3249838614经常会有一些刚接触STM32的人问这个问题,也在其他论坛回答过, 我个人认为,在回答这个问题之前,你得先问清楚自己,我学习stm32.或者再往更深的地方走,我学习单片机,究竟是为了什么?你现在是处于什么状态?你是学生还是已经参加工作了?你的专业或者你的工作是与单片机相关的还是不相关的?你未来是否想从事这个行业或者想跳槽到这个行业? 这些所有的问题的答案都可以把学习单片机的人分为两大类:第一类:学习单片机是为了把这个技术当做一技之长安身立命:第二类

2014年天嵌最新开发板——TQ210V6开发板正式发售

2014年10月23日,广州天嵌计算机科技有限公司最新研发的S5PV210系列——TQ210V6开发板与TQ210coreD核心板将正式发售.此次,天嵌发布的TQ210V6开发板将重新设计部分的配置与端口,整体的设计工艺得到全面的提升,致力为广大天嵌客户提供高性能低成本的嵌入式开发板. 此次,TQ210coreD核心板的接口形式是插针,相对TQ210coreB核心板的接口形式——B2B,插针速度更快.另外,TQ210V6开发板新增MIPI端口. 10月23日,TQ210V6开发板完成开发板的调试

.NET开发和java开发是做什么的?

.NET开发和java开发是做什么的?     .NET开发可以开发C/S结构的东西,如QQ,铁路售票的 可以开发企业级的管理系统,如酒店管理系统可以开发B/S结构的网站,如B2C,B2B,企业门户网站,可以开发企业级的管理系统,也就网页形式的. .NET就是微软用来实现XML,Web Services,SOA(面向服务的体系结构service-oriented architecture)和敏捷性的技术.对技术人员,想真正了解什么是.NET,必须先了解.NET技术出现的原因和它想解决的问题,必须

微信公众号开发系列-启用开发模式

微信公众平台分为两种模式:编辑模式与开发模式: 微信公众帐号申请成功后,要想用程序接收处理用户的请求,就必须要在"高级功能"里进行配置,点击"高级功能". 从微信开发平台开发者中心中可以看到,高级功能包含两种模式:编辑模式和开发模式,并且这两种模式是互斥关系,即两种模式不能同时开启.那两种模式有什么区别呢,作为开发人员到底要开启哪一种呢? 编辑模式:主要针对非编程人员及信息发布类公众帐号使用.开启该模式后,可以方便地通过界面配置"自定义菜单"和&