想从事嵌入式开发,C语言学算法要学到很高深吗?

作者&投稿:东鸿 (若有异议请与网页底部的电邮联系)
~

我就是做嵌入式软件开发的,C语言肯定是要掌握熟练的,对于算法,就看工作侧重点了。一般来说涉及算法不多,不用研究多深。分工作情况,对于嵌入式底层软件开发,基本用不到算法。对于嵌入式应用层软件开发,比如软件处理有些会涉及到算法的处理。这个分从事行业,一般做数据采集,算法无非是数据精度,滤波算法等,难度不大。如果是图像处理这块,算法就要求比较高了。要求对一些数据做高精度的分析过滤处理。


懂得嵌入式开发,必须要精通C语言算法从事嵌入式软件开发多年,嵌入式开发未来前景也非常广阔,消费类电子产品大部分都属于嵌入式开发系列,嵌入式软件开发从开发角度分为三层,嵌入式软件底层开发,嵌入式软件框架层开发,嵌入式应用开发。但有些公司并没有把这些结构划分的这么清楚,可能应用层和框架层直接柔和在一起了,不同层次的开发技能的要求也会不一致,不能简单的认为C语言搞定了就能顺畅的做嵌入式开发了。

嵌入式开发三个层面

嵌入式底层开发基础开发语言是C语言,有的公司还会涉及到c++,底层开发对英文也是有要求通过看很多的英文技术文档来对号寄存器的作用,如果从事驱动方面的开发需要对操作系统内部的工作原理以及内核构成有足够多的了解,任何一个层次的编程都不是简单的一种编程语言能够搞定的事情,编程语言属于工具般存在,所以在从事编程工作的时候除了掌握必备的编程语言,还要对应专业知识的学习,例如底层开发就要明白底层开发涉猎到的硬性知识点。

嵌入式中间层框架开发除了基础编程语言,然后设计一个框架能够满足上层应用层面的调用,而且还要调用集成基本的底层接口,这个层面是嵌入式里面综合能力要求比较强的,也是嵌入式高手追逐的点,不仅仅要求对嵌入式的底层接口有所了解,还要懂得软件框架设计思想,要求有一定的架构设计能力,嵌入式框架的设计可大可小,典型的安卓系统也是嵌入式框架的一种具备这种能力,如果只是简单的嵌入式产品就不需要很高的设计,框架这个概念可大可小,具体要看实际的编程环境了,适当嵌入式框架的语言常见的有C语言,c++,java等等,当然不是所有的框架都需要自己设计,很多企业直接用开源框架,但开源框架的问题是出了问题只能自己去解决。

嵌入式应用开发,这块涉及但中间层接口的调用,应用级别开发也不是单一的一种编程语言,有些嵌入式设备不需要很强的界面功能,只强调主体功能这种相对比较简单,复杂的像安卓应用也是嵌入式应用的一种,涉及到编程语言有C语言,c++,java等等,QT也是嵌入式常用的框架之一,任何一个编程方向都不是简单的一种编程语言能够轻松搞定的事情。
在嵌入式实际开发过程中C语言用的已经非常普遍了,算法是编程的基本功,既然要做一个标准的程序员就要对掌握算法,起码基本的数据结构和基本算法要掌握,嵌入式开发的顶点可以参照安卓的框架结构,然后根据自己的特点制定对号得学习计划,而且任何方向的技术大牛首先要长期积累不断的总结提升,编程的学习是水到渠成的事情,不是要指望一口气就能学会所有的技巧了,那也不是真正意义上的编程,希望能帮到你。


你好,刚好我以前也从事过嵌入式开发,我觉得做嵌入式开发不一定要c很精通:

1.任何一种开发,都有各层次的程序员,才叫做一个团队,有做基础编码的,有做代码整合的,有做技术框架的。所以任何开发都不是说一定要把语言学得很精通才行,都有一个过程。


2.嵌入式开发也分上层和底层开发,分别掌握的c语言层次不同,我就是刚参加工作就做嵌入式工位机的上层开发,觉得都还ok的。



3.当然,如果你的c语言很精通,那你做开发的时候会更得心应手,不管是嵌入式还是其他开发。



提问的逻辑就有问题,只有根据需求不断的项目开发,才能提高编程水平,不实践水平不可能有多高,另外,嵌入式开发要求软硬件都懂,你可以侧重软件,但必须懂硬件。嵌入式系统资源也有限,这要求你得编出高效率,占用内存低的代码,还得能看懂汇编,否则有些问题调死你,反之,对算法要求反而没那么高,总之,实践,总结,再实践,才能成为大神。


嵌入式开发和普通应用程序开发的主要区别在于:

调试相对困难

系统资源相对较少

可用库和服务相对较少

应用在系统中权限相对较高


要适应这些特点,用C语言进行嵌入式开发,需要的能力主要有:

对嵌入式系统资源有一定了解

编码错误率较低,调试能力较强

自己造轮子的能力较强


算法方面未必需要学到多么高深,其实基础、简单的算法就足以应付大多数情况了。





做嵌入式开发只会C,现在想学一门上层语言,该学C#还是C++?
学会了c++或者java,c#整个就是个库的应用。现在要用c#,大大看一下,基本就懂了。对于c语言牛叉的人,做面向对象,只需调整下架构,和软件工程思想就行,语法已经不是难点了。另外有一点,.net是个平台,软件开发都是相通的,对于我们做开发,不是说学了一门语言就想万能了,IT更新远远超过了诺基亚...

为什么说学嵌入式开发一定要精通C而不是C++
这个也不全对,嵌入式开发分为底层驱动开发和应用层开发,如果做底层驱动开发,需要跟硬件打交道,C具备这种能力,同时内核一般都是C编写的,所以开发底层驱动和内核基本都是使用C;而嵌入式应用程序就不一定了,比如图形界面开发,那C++的优势就会显现 ...

假设将来从事嵌入式系统开发的工作,C语言只有二级水平,够用吗?
其实考证只是一个方面,嵌入式系统开发的工作是一个综合的工作,会c语言不是全部。还需要嵌入式操作系统方面的知识,比如linux系统或wince系统等等。做底层的话还需要硬件方面的知识,比如接口技术,数字电路和模拟电路知识等等。真正的嵌入式系统工程师,还需要很多相关知识,比如网络,各种规范协议等等。我...

做嵌入式开发,C和C++有什么区别
c 比较倾向于底层的开发,系统内核和驱动一般都用c语音写。c++倾向于高层应用开发,比如使用qt开发gui界面。

嵌入式软件开发为什么用c语言而不用java
����C 对高速、底层、输入\/输出操作等提供了很好的支持,而这些特性是许多嵌入式系统的基本特性。����由于应用的逐步增长的复杂性,高级语言的使用较汇编语言更为适合。����相对于其他一些高级语言,C 能够...

嵌入式开发是到底学c还是c++好
看你搞嵌入式的方向了,如果硬件底层或驱动什么的,还是C方便些。C++当然也行,但一般还是在嵌入式高层应用,产能高点。我觉得精通C更适合嵌入式。

想做嵌入式硬件开发,不知道做嵌入式硬件开发需要用C语言还是C++?做嵌入...
硬件开发不需要任何编程预言。。做嵌入式应用开发,才需要。。一般用C做底层,驱动。。 C++ 做上层应用,例如QT

嵌入式开发中是不是对c++和c的要求很高~
对的,对代码的质量和编码人员经验要求比较高 因为嵌入式系统中的内存,很小,一般只有几K到几十K 如果编码人员经验不足,代码像老太婆的裹脚布又臭又长,而且不考虑代码内存消耗,不考虑执行效率,不考虑内存泄漏等等问题的话是无法完成嵌入式代码的编写的 ...

嵌入式系统开发中的C语言编程和普通C语言编程有何区别?
因为编译器不一样,执行的c语言标准就跟编译器相关。管理内存映射,设置中断系统等在pc上也有,不是嵌入式的专利。只是做嵌入式里的界面、网络、文件编程的话,跟pc上几乎没有差别,因为有操作系统罩着。如果开发驱动程序,就要求你对所使用的cpu和板子的结构很了解,也就是看得懂硬件手册即可。另外...

linux嵌入式学习方向 我想从事linux下嵌入式C开发。大家说说看有哪些方...
搜索下《在嵌入式系统开发领域中的社会分工系统》有做应用的,也有做低层的,主要是根据基础、兴趣、能力等因素,看你对自己的定位。细分行业的话,比方安防监控、消费类产品、智能家居类等等吧。这些行业都有他自己特有的行业知识要求,但离不开共有的基础。

凌源市17231179007: 想从事嵌入式开发,C语言学算法要学到很高深吗? -
祗往素安: 嵌入式也分很多种的,据我所知,有硬件做芯片的(主要学FPGA VerilogHDL/VHDL语言),硬件设计电路的(模电+PCB+MCU(C语言)),软件做操作系统驱动的(C/C++语言),软件做操作系统应用的(C/C++语言),软件做BSP的(C/C++语言)...很多种,主要看你打算学哪些了,偏软件一定要学好C,C++也是必备.偏硬件的话C一般就行.

凌源市17231179007: 想成为嵌入式工程师需要学习哪些内容? -
祗往素安: 大致分为三个阶段:基础篇、进阶篇、大咖篇. 入门嵌入式工程师 此阶段主要是前期的入门过程,主要针对入行没多久的新人.其实成功没有捷径,所以打好基础才是关键.嵌入式开发要学什么主要包含以下4个方面的内容: 1.电路知识 首先...

凌源市17231179007: 嵌入式开发要学哪些? -
祗往素安: 嵌入式主要内容包括linux系统,C语言开发,数据库等,JAVA部分的安卓开发等,学成后可以开发应用软件的,内核开发,驱动开发等工作,做项目.目前国内零基础的入门性课程较多,如果自己是软件开发相关专业或有较好的基础的,应该考虑星创客这样的专为培养中高级工程师的课

凌源市17231179007: 想做一个嵌入式开发工程师需要学什么 -
祗往素安: 1.ASM/C/C++语言,可以说这是计算机行业的一门必修课,所以要扎扎实实掌握好.2.操作系统,要学习一下操作系统的基本原理,熟悉Linux环境下的开发环境,然后你就照着相关的资料写一个操作系统试试看.3.计算机组成原理,要能够熟悉计算机的基本原理,看看你一个计算机的基本组成以及软件实质是如何来跑的.4.可以选择一些书籍来作为参考,华清远见有很多专业的书籍,初学嵌入式的朋友可以作为参考.5.arm,可以说是当下很流行的微机,自己可以想办法移植一个操作系统上去.6.硬件编程语言,芯片到底是怎么做成的呢,学习完这门课程,你就很清楚了.7.模拟电路&数字电路,硬件的基础,如果可以的话,学习下protel ,自己做个硬件pcb板试试.

凌源市17231179007: 要学习嵌入式的话要不要学习C++? 现在会模电,c语言的话想要学嵌入式要要学什么? -
祗往素安: 一定的……C++中的CLI(俗称托管C++)便是嵌入式应用开发的不二之选…… 嵌入式系统要求内存占用小,CPU主频率较低(亦即单位时间内并行的运算数量有限,C++的OpenGL可以自动根据CPU大小分配并行任务),而且代码简洁有效,移植性强.C++凭借其简洁高效的代码,和接近于C的执行效率,成为几乎除汇编之外嵌入式开发系统的唯一选择 注:以上文字引述自 陈良乔《我的第一本C++书》,有改动

凌源市17231179007: 学嵌入式方向要学好哪些东西 -
祗往素安: 1. 基础要好:语言C,汇编,操作系统原理,体系结构,网络;需要的话还有偏硬件相关的阅读引脚图,画pcb,甚至物电的拿焊枪都得搞.2. 常用的入手嵌入式的“套餐”就是arm+linux,当然这不是固定不变的,相关资料多而已吧,可以这么说~而且开发板有必要也搞一套.3. 方向很大,不要迷失了自己,老师大都离开真正研发岗很久,经验不太有价值,能在整个嵌入式行业中的一个方向点上有突破,钱、身份都有了.比如:我只做网络这块的等等...

凌源市17231179007: 做嵌入式开发,要掌握哪些知识..... -
祗往素安: 我这里有嵌入式的一套课程希望对你的嵌入式学习有帮助:第一阶段 Unix开发环境、开发规范培训 Oracle数据库 C++核心 数据结构和算法、标准库 OOAD第二阶段 Shell编程 Unix环境编程和开发工具 网络编程和数据库编程第三阶段 ARM系统体系结构 ARM系统编程 嵌入式Linux构建 嵌入式Linux内核开发 嵌入式Linux驱动程序开发 Linux驱动程序开发高级第四阶段 企业实训 基于ARM的串行数据无线传输系统,主要有以下三个方面的运用:点对点控制;点对多点控制;中继传输参与完成实际项目,积累软件开发经验,经历完整的软件开发过程:需求、软件分析设计、编码、调试,交付.串行数据无线传输系统

凌源市17231179007: 我想以后找一份嵌入式开发的工作,我现在已经学了c语言,unix核心编程,有电路基础,请问还需要学什 -
祗往素安: C语言 Linux基础 Linux系统编程 数据结构与算法 C++ 、QT Cortex A8 、Linux 平台开发 还有驱动开发,驱动程序设计是嵌入式Linux开发工作中重要的一部分,也是比较困难的一部分.

凌源市17231179007: 请问学习嵌入式开发需要学习知道些什么 -
祗往素安: 首先C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言,你说不掌握它可以吗?至于如何学习C语言,我想这些基础的...

凌源市17231179007: 计算机嵌入式软件开发专业要学什么程序设计语言 -
祗往素安: 一、定义 嵌入式技术就是"专用"计算机技术,这个专用,是指针对某个特定的应用,如针对网络、针对通信、针对音频、针对视频,针对工业控制等,从学术的角度,嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网