精彩牛耳,用心缔造

真正的嵌入式开发高手该会些啥?

作者: 编辑: 来源: 发布日期: 2019.03.01
信息摘要:
嵌入式新手该先学C语言还是先学汇编?这是一个非常有争议的问题。而目前C语言已渐渐深入了,有意向学习嵌入式的不少,但是疑问是,学嵌入式能不能只…

嵌入式新手该先学C语言还是先学汇编?

这是一个非常有争议的问题。而目前C语言已渐渐深入了,有意向学习嵌入式的不少,但是疑问是,学嵌入式能不能只用C写程序?

嵌入式

观点1:汇编,只是一个语言工具。你要学习的,其实是ARM。

想要搞精、搞深,汇编和计算机系统知识是必须的。尤其是对于底层嵌入式系统工程师来说,汇编是必须要掌握的。

首先系统启动、上电代码都是汇编,汇编不掌握,你如何知道系统是如何启动的?

想深入链接C语言的函数是如何调用的,参数是如何传递的,想了解指针的本质、函数名的本质,就要深入汇编级代码,通过反汇编,看底层指令是如何对C语言的高级特性进行处理的,这都需要汇编语言的功底。掌握汇编,是成为底层系统工程师、牛逼工程师的必备技能。

另外,汇编没那么恐怖,也就是那十几个常用的命令,再加上配套的伪指令,基本程序结构,半天就差不多了。与其花半天时间在这里纠结要不要学,不如赶紧学,技不压身。当然,学习汇编之前,你还要对CPU处理器架构、寄存器有一个了解,你要知道,汇编程序都是跟这些寄存器打交道的。学ARM汇编的话,需要掌握ARM处理器的基本架构、不同模式下的寄存器配置。了解之后,再去学习汇编,你会发现,你学习的哪里是汇编?学习的明明是ARM嘛!

汇编,只是一个语言工具,一些助记符而已。你要学习的,其实是ARM。

牛耳教育

观点2:先学习C语言

一个合格的硬件工程师,应该都学,我推荐你先学习C语言,因为汇编入手太慢,写程序要以C为主,需要高速的或者底层的操作用内嵌汇编的方式完成。但是汇编和C同样重要,相互配合,缺一不可!

汇编的重要性:

帮助你从根本上彻底和完全了解芯片的结构和性能,以及工作原理,如何使用。

在小的芯片上实现小的系统。

系统的调试。尽管你使用了高级语言,在调试中可以帮助你了解C代码的性能和特点,甚至找到使用开发平台本身的BUG。

编写时序要求严格的代码,实现一些高级语言不易实现的功能。

从目前的技术和应用发展来看,对工程师的硬件要求越来越高。以我的观点,作为单片机和嵌入式系统开发真正的高手,应具备以下几个方面的综合能力:

1.硬件:模拟、数字电路的雄厚基础,了解跟踪现在市场上的各种元器件的应用和发展,能够进行可靠、完善的电路设计以及PCB的设计。

2.软件:不仅需要精通汇编语言,也要精通C语言,要有好的单片机系统程序设计理念和能力,学校中学的那些分支结构、循环结构等基本原理远远不够!要有基本的数据结构的知识。否则你如何设计实现USB HOST读U盘的接口?如何实现嵌入式WEB系统?以及如何使用真正了解和使用RTOS?具备计算机网络和数字通信的基础知识,从根本上熟悉和了解各种协议的构造和实现,如:UART、RS232、SPI、I2C、USB、IEEE802、TCP/IP等。

3.计算机应用的高手

4.熟练阅读英文资料:热爱和喜欢电子技术,具备刻苦精神、踏踏实实,不弄虚作假,不浮躁。多动手,勤实践。有强烈的专业和钻研精神。最后一条最重要!

牛耳推荐资讯
IT学子们请像高考冲刺那样,圆我们的IT梦

IT学子们请像高考冲刺那样,圆我们的IT梦

还记得当年高考前教室后面的标语吗?还记得模拟考成绩出来后的悲与欢吗?还记得那最后100天我们内心的充实吗?然而随着大学生活的流式,那些埋藏在我们内心深处的美好记忆也随之消逝。各位IT专业的学子们,你们是否也是满怀期待的选择计算机专业,是否也是因为学电脑很有前途,因为现在IT行业发展火爆?确实T行业需要......
2020-01-06
长沙IT培训---计算机系实习的我们该何去何从

长沙IT培训---计算机系实习的我们该何去何从

又是一年实习季,到了这个时候就想起了当年的小编自己,没有其他词语比迷茫着两个字更加能代表自己的心情了。随着互联网经济的不断发展,IT技术也随之不断的更新、更迭,IT行业俨然成为了21世纪最火的行业之一。但是不是学计算机的人又哪懂我们计算机系的苦呢?从入学到毕业我们大大小小有七八个方向可以选择,有时候......
2020-01-06
长沙IT培训---其实转行就那么简单

长沙IT培训---其实转行就那么简单

最近我看到了一篇文章,文章的内容是关于华为公司大规模裁员的,大概的意是说,华为公司宁愿冒着赔偿10亿的风险,也要开除公司内部的7000多名“闲职”人员。看了这篇文章之后,我的感受颇深,文章有一句话很犀利:“时代抛弃你,从来都不会打招呼”,我觉得我需要正视下自己了,觉得必须要保持持续学习的习惯,否则说......
2020-01-06

咨询热线

400-0731-162
  
    • *

    • *