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

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

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

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

嵌入式开发三个层面

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

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

嵌入式应用开发,这块涉及但中间层接口的调用,应用级别开发也不是单一的一种编程语言,有些嵌入式设备不需要很强的界面功能,只强调主体功能这种相对比较简单,复杂的像安卓应用也是嵌入式应用的一种,涉及到编程语言有C语言,c++,java等等,QT也是嵌入式常用的框架之一,任何一个编程方向都不是简单的一种编程语言能够轻松搞定的事情。

在嵌入式实际开发过程中C语言用的已经非常普遍了,算法是编程的基本功,既然要做一个标准的程序员就要对掌握算法,起码基本的数据结构和基本算法要掌握,嵌入式开发的顶点可以参照安卓的框架结构,然后根据自己的特点制定对号得学习计划,而且任何方向的技术大牛首先要长期积累不断的总结提升,编程的学习是水到渠成的事情,不是要指望一口气就能学会所有的技巧了,那也不是真正意义上的编程,希望能帮到你。

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

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

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

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

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

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

调试相对困难

系统资源相对较少

可用库和服务相对较少

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

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

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

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

自己造轮子的能力较强

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

《嵌入式系统设计与实践》(Elecia White)电子书网盘下载免费在线阅读

资源链接:

链接:> 提取码:entp

书名:嵌入式系统设计与实践

作者:Elecia White

豆瓣评分:80

出版社:机械工业出版社

出版年份:2013-6

页数:282

内容简介:

对嵌入式系统的开发感兴趣吗由于嵌入式系统对效率有很高的要求,所以需要遵循严格的设计原则。怀特专著的《嵌入式系统设计与实践》简单易读,结合传统的软件设计模式和嵌入式程序设计领域中新颖、独特的设计模式,帮助你建立良好的程序设计实践技巧,学习如何针对处理器而非 *** 作系统建立系统架构,以及处理硬件难题与制造需求的特殊技能。本书作者是嵌入式系统专家,创建过各种嵌入式系统,从城市道路监控系统到DNA扫描仪再到儿童玩具。

《嵌入式系统设计与实践》主要内容:

·深入分析嵌入式系统的架构设计步骤和架构设计模式。

·介绍嵌入式系统中独有的设计模式,如环形缓冲区、中断和定时器、硬件调试、PID控制、系统优化等。

·如何优化系统以降低成本并提高性能。

·如何在资源有限的环境中建立健壮的软件架构。

·探讨了扫描仪、电机以及其他I/0设备。

·介绍事半功倍的方案:降低内存消耗、代码空间占用、处理器周期以及功耗。 ·学习如何在处理器中直接更新嵌入式程序代码。

·掌握如何在小型处理器上实现复杂的数学计算。

·提供了招聘嵌入式工程师的面试题,以及回答这些面试题的独到思路。

什么是嵌入式开发和软件开发

其实很简单,你百度一下就知道的,但是既然你提问了,我就说哈,我也是学嵌入式开发的,虽然还没毕业。

1自从有了单片机,就有了嵌入式

2嵌入式系统是软件和硬件的综合体,有嵌入式软件开发和嵌入式硬件开发,一般都是软件开发,硬件太难了(要学习硬件的知识,数字电路和模拟电路是必修的,计算机的架构。。。),既然叫嵌入式就不是纯软件了,还得一些硬件的知识,多数时候搞得是烧写,调试电子器件。

3嵌入式系统是可以自己定制的系统(顾名思义,就是要什么就留下什么,可以剪切的系统,追求的是小型化,适用,低成本,低功耗,可扩展),多数抚采用的linux的内核(最简单的ucOS-||,新手接触),一大特点就是专用,定制,内核是一大难。

4应用:手机(像现在android手机的游戏开发,运用开发等),各种手持终端,车载系统,各种监控各种带程序的电子器件,只能家居,只能机器人。。。。

什么是嵌入式软件和非嵌入式软件

简单的说,嵌入式软件就是基于嵌入式平台(比如ARM+Linux)的应用软件或者系统软件;而非嵌入式软件大多指基于通用处理器和 *** 作系统平台俯软件(比如桌面应用软件)。

嵌入式应用软件开发与嵌入式系统软件开发区别

你好,就我自身而言,两者都在做。应用软件主要是PC机的软件或者手机上的各种app,而嵌入式系统是指更底层的,也就是应用软件的平台。给你举个例子吧,我是做智能卡的,比如公交卡,CPU卡芯片内存有 *** 作系统(cos)这属于嵌入式系统软件,而你要往卡里充值时就要用到电脑上的充值软件(上位机),这个则是应用软件!

什么是嵌入式软件开发如何学习

嵌入式自学的话非常难,因为嵌入式需要学习的东西很多而且很难,如果你没掌握学习嵌入式的方法的话,可能1-2年都只能入门,如果你掌握嵌入式的学习的方法的话,半年就能学会嵌入式。

…………………………………………

看你问的问题,应该是对嵌入式很感兴趣,其实你可以自学嵌入式。关于如何学习嵌入式,我刚才看到一篇很不错的文章,是一个专科生介绍自己如何自学嵌入式,并找到嵌入式的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。

先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。

退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。

一次偶然的机会,我才听到嵌入式这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。

回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学嵌入式了。于是我去找嵌入式培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。

后来,我在百度知道看到一篇让我很鼓舞的文章,是一个嵌入式高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。

我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。

主意一定,我就去搜索嵌入式的视频,虽然零星找到一些嵌入式的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。

后来我又找到一份很好的视频,是在IT学习联盟网站推出的一份视频《零基础嵌入式就业班》(喜欢《零基础嵌入式就业班》的可以复制 sinalt/qKh 粘贴浏览器地址栏按回车键即打开)。里面的教程还不错,很完整,可以让我从基础的开始学起。视频比较便宜。

下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。

收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视频教程学起,话说简单,其实我还是很多不懂的,我只好请教他们,他们还是很热心的,都帮我解决了。C语言我差不多学了一个礼拜,接下来我就学了linux的基本命令,我在他们提供linux虚拟机上都有做练习,敲linux的基本命令,写简单的C语言代码,差不多也就三个礼拜。我每天都在不停的写一些简单的代码,这样一月后我基本掌握了C和linux的基本 *** 作。

接下来我就去学习了人家的视频的培训教程,是整套的,和去参加培训没有多大的区别,这一看就是两个月,学习了ARM的基本原理,学习嵌入式系统的概念,也

嵌入式软件开发和软件开发有区别吗

*** 作系统不一样,嵌入式软件开发属于软件开发的一种。

嵌入式软件开发主要针对计算能力有限的CPU进行的软件开发,比如INTEL的CPU芯片时钟频率可以达到1G HZ,虽然INTEL的CPU运算能力强大,但是体积大,发热大,不适合使用在某些场合,这个时候就要使用一些体积小,功耗低,运算能力有限的专用CPU,比如手机上使用的CPU处理器,在这种CPU上运行的 *** 作系统就是嵌入式 *** 作系统,这些 *** 作系统占用比较小的硬件资源,但是却有相对较高的执行调度效率。

嵌入于宿主设备,智能地完成宿主设备功能的计算机就是嵌入式计算机,或简称为嵌入式。嵌入式计算机的构成:可以是单片的微控制器(MC-micro-controller),在我国习惯于称做单片机;也可以是由微处理器(MP-microprocessor)另加存储器及外部设备构成;还可以在MC/MP的基础上附加数字信号处理器(DSP)核心部件,构成多核MP/MC。

新一代嵌入式计算机的主要特征:是继承了整个PC机时期的技术成就,特别是进入90年代后的全球万维网(Web)技术(产品有可接入万维网的手持式PDA设备等)和多媒体技术(产品有高质量数字音响、数字视盘播放器,数码静态相机、数码视频摄像机等等)。这类嵌入式的目标是想把桌面PC机上成熟的技术拆解下来,放入手持设备或移动设备,供用户随时随地进行消费。全球网中行之有效的众多通信协议,多媒体的MP3、JPEG、MPEG等所采用的标准数据格式及各种库函数都使用32位格式和32位的编程软件,所以嵌入式也注定要使用32位的微处理器。

为顺应形势发展的需要,32位手持设备用的嵌入式 *** 作系统应运而生,著名的有Windows CE、Epoch、 Palm OS等等,可见今日嵌入式的立点水平是很高的。

新一代嵌入式主要面向手持或移动消费类设备,电池供电和低价位是重要考虑因素,这就从根本上决定了它不可能照搬PC机上原来使用的微处理器。下面先介绍嵌入式32位微处理器的技术进步,然后再举一些新型嵌入式微处理器的实例,使读者对新一代嵌入式有一个较清晰的认识。

由上述可见,当前嵌入式所用MP多是32位RISC DSP双核或RISC/DSP单核结构。过去比较著名的RISC生产厂家起著基石作用。许多新兴的嵌入式厂家购买他们的RISC专利嫁接到自己的DSP核上。一些著名的生产CISC微处理器的厂家不甘心丢失嵌入式市场,也纷纷向RISC及DSP靠拢。

从1981年Ready System发展了世界上第1个商业嵌入式实时内核(VRTX32),到今天已经有近20年的历史。20世纪80年代的产品还只支持一些16位的微处理器,如68k,8086等。这时候的RTOS还只有内核,以销售二进制代码为主。当时的产品除VRTX外,还有IPI公司的MTOS和80年代末ISI公司的PSOS。产品主要用于军事和电信设备。进入20世纪90年代,现代 *** 作系统的设计思想,如微内核设计技术和模块化设计思想,开始渗入RTOS领域。老牌的RTOS厂家如Ready System(在1995年与Microtec Research合并),也推出新一代的VRTXsa实时内核,新一代的RTOS厂家Windriver推出了Vxwork。另外在这个时期,各家公司都有力求摆脱完全依赖第三方工具的制约,而通过自己收购、授权或使用免费工具链的方式,组成1套完整的开发环境。例如,ISI公司的Pri t、著名的Tornado(Windriver)和老牌的Spectra(VRTX开发系统)等。

进入2

嵌入式软件开发应该学什么

如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux+ARM方向,关于这个方向,我认为大概分3个阶段:

1、嵌入式linux上层应用,包括QT的GUI开发

2、嵌入式linux系统开发

3、嵌入式linux驱动开发嵌入式目前主要面向的几个 *** 作系统是,LINUX,WINCE、VxWorks等等

Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。所以自学的话你可以尝试以下路线:

(1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。

推荐书籍:谭浩强的很不错,《The C Programming Language》 这本经典的教材是老外写的,也有中译版本。

(2) *** 作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。

(3) Linux *** 作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。

推荐书籍:《UNIX环境高级编程》(第2版)

(4) 了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。

(5) 系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。

(6) 驱动开发

linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。

linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:交叉编译、makefile、shell脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!推荐到华清远见的网站上了解嵌入式的课程体系和学习方法,还有很多资料和视频教程可以下载。

嵌入式软件开发好还是硬件开发好

硬件相对比较死板固定,但软件特别是系统架构的设计就很能锻炼

人的脑力。巨立安技术一直认为做软件更能体现人脑的价值。

不过对工作,尤其是嵌入式这个方向的开发来说,也许最好的策略

就是坚持 linux 内核里面多任务调度时所采用的 “完全公平的调度(C

FS)”哲学。任何一个进程,只要它最需要cpu、或者已得到cpu时间

相对于其他进程最少,那调度器就优先调度cpu给他。

软件硬件的学习也是一样,什么时候哪方面需要你花时间多一些、

或者你自己不擅长哪一方面,那就坚持往那方面发展用劲。如此,

到最后,你就会发现已然成为一个嵌入式乃至计算机系统的专家。

什么是嵌入式开发和软件开发

嵌入式开发和硬件关系稍显密切,主要是编写程序 *** 作硬件,比如:手机、打印机、电子显示屏等等

软件开发主要是编写程序 *** 作计算机。

嵌入式系统开发与软件开发的区别

嵌入式系统开发是软件开发的一种,嵌入式系统开发就是对于除了电脑之外的所有电子设备上 *** 作系统的开发,开发对象有手机,掌上电脑,机电系统等。

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式 *** 作系统以及用 户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能

嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括 *** 作系统软件(OS)(要求实时和多任务 *** 作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而 *** 作系统控制着应用程序编程与硬件的交互作用。

嵌入式非常难,到底怎么学习嵌入式,我刚才看到一篇很不错的文章,是一个专科生介绍自己如何自学嵌入式,并找到嵌入式的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。

==========================================

先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。

退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。

一次偶然的机会,我才听到嵌入式这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。

回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学嵌入式了。于是我去找嵌入式培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。

后来,我在百度知道看到一篇让我很鼓舞的文章,是一个嵌入式高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。

我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。

主意一定,我就去搜索嵌入式的视频,虽然零星找到一些嵌入式的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。

后来我又找到一份很好的视频,是在IT学习联盟网站推出的一份视频《零基础嵌入式就业班》(喜欢《零基础嵌入式就业班》的可以复制 sinalt/qKh 粘贴浏览器地址栏按回车键即打开)。里面的教程还不错,很完整,可以让我从基础的开始学起。视频比较便宜。

下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。

收到他们寄过来的光盘后,

嵌入式软件开发与软件开发有什么区别

1、嵌入式软件开发指的是针对单片机、ARM、FPGA的编程,没有window或linux *** 作系统,即使有,也是功能较为简单的 *** 作系统,比如ucos。总之嵌入式软件开发和硬件关系比较紧密,一般需要编写硬件驱动。

2、软件开发一般指在已经安装了像window或linux的电路板上编写应用,软件开发不直接编写硬件驱动,因为驱动已经 作系统实现了,软件开发注重逻辑功能的实现,比如要实现拍照,只需调用摄像头驱动即可。

以上就是关于想从事嵌入式开发,C语言学算法要学到很高深吗全部的内容,包括:想从事嵌入式开发,C语言学算法要学到很高深吗、《嵌入式系统设计与实践》pdf下载在线阅读,求百度网盘云资源、嵌入式软件开发是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10070289.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存