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

我现在从事于windows下应用程序开发,但我想以自己有c c++ 单片机 数电 模电 汇编 数据结构和算法的基础改嵌入式软件开发,可没具体明确方向,应该学什么,怎么学,要买什么书,我最希望能告诉我学什么,给我指南

如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式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脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!推荐到华清远见的网站上了解嵌入式的课程体系和学习方法,还有很多资料和视频教程可以下载。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-09-25
嵌入式的学习并不像想象的那么难,主要是因为有硬件开发板,一般人敬而远之,其实对于理工科的本科毕业生(如自动化、电子、信息等专业),懂一定的C语言
知识,是否懂硬件其实关系不大,这样的条件就可以学习嵌入式了,现在,嵌入式的人才很多都是半路出家,由其他的行业转行过来,由于没有系统掌握嵌入式的相
关知识,对于这部分人,企业其实是不满意的,只是现在没有大量的人才供他们挑选。

对于求职的毕业生而言,嵌入式领域是一个较新的空间,很多技术出现的时间不长,多数人没有条件接触或进入该行业,需要接受专门的培训与专业人员的指导,才
能了解具体的开发流程。因此,要进入嵌入式系统开发领域工作,必须参加一些专业培训机构的课程,并寻找项目实践的机会,增加项目经验,只有这样才能弥补横
在企业与求职者间的鸿沟。

在众多的培训机构中,安博中南区牛耳IT实训基地率先推出了嵌入式软件工程师培养工程,并整合众多企业用人需求和计划,以就业为导向,以技能为核心,以
国内顶级的实训环境和企业氛围规范、提升学员职业素质,从真实案例入手,引入国际著名厂商、机构培训产品,不断开发适应企业人才需求的培训项目,为中国
IT业培养和输送嵌入式软件工程师,以及其他IT行业急需的实战型、综合型人才。本回答被网友采纳
第2个回答  推荐于2017-10-09
阶段一 - 嵌入式开发之基础阶段
嵌入式驱动开发环境搭建初级
C语言语法概述
C语言内存操作
C语言函数使用
linux操作系统基础
选修课 - GNU工具简介

阶段二 - 嵌入式linux应用开发阶段
Linux文件IO操作
Linux进程间通信
Linux多线程编程
Linux网络编程

阶段三 - 嵌入式Linux之ARM体系结构与编程阶段
选修 - ARM开发板基础知识
选修 - ARM汇编语言
选修 - ARM硬件开发基础
ARM Bootloader开发
ARM硬件接口开发

阶段四 - 嵌入式Linux底层系统开发阶段
探寻嵌入式系统移植的世界
看懂uboot的神秘面容
Linux内核及文件系统制作
linux字符设备驱动初探
linux驱动策略及框架
linux下输入子系统

阶段五 - 项目及选修阶段
嵌入式Linux网络编程基础
嵌入式综合项目-智能家居
Linux网络编程项目实战 - 轻量级HTTP服务
linux下网卡设备驱动
探索Android底层开发
选修课-NDK初探
linux下usb驱动
选修课 - 数据结构与算法
C++面向对象编程

详细的可参考:http://www.maiziedu.com/course/qrs/
第3个回答  2013-09-11
个人觉得嵌入式开发需要有良好的硬件基础,对硬件原理非常了解。不然只能从事基本的DSP编程和硬件驱动的开发。
第4个回答  2021-01-22

嵌入式软件工程师:从事嵌入式软件开发工作的人

嵌入式主要学什么
嵌入式系统,结合计算机硬件与软件,专为特定功能设计。学习嵌入式系统,需掌握基础概念与技能。基础知识包括数据结构、算法、操作系统原理等计算机科学知识,以及数字电路、模拟电路、微处理器架构等电子工程基础。C语言,因其直接与硬件交互的特性,成为嵌入式开发首选。学习C语言语法、控制结构、指针操作、内...

软件开发需要学习什么?
软件开发主要分为WEB开发、移动端开发、嵌入式开发三个开发方向,不同方向的学习内容也不同。1、WEB分为前端开发和后端开发,前端开发需要学CSS3、JavaScript、Html5,后端开发开发需要学PHP、Python、Java。2、移动端开发需要学OC或者Swift。3、嵌入式开发需要学C语言、计算机基础知识等。关于软件开发 软件...

嵌入式要学哪些课程
嵌入式要学课程包括:1. 嵌入式系统概述与基本原理。2. 嵌入式处理器架构。3. 嵌入式操作系统及实时系统原理。4. 嵌入式软件开发工具与环境。5. 嵌入式系统硬件设计基础。6. 嵌入式编程语言和编程技术。7. 嵌入式通信与网络原理。8. 嵌入式系统应用开发与实践。嵌入式系统是一个广泛应用的领域,涉...

嵌入式系统开发学什么
嵌入式系统需要学C语言编程。嵌入式系统由硬件和软件组成.是能够独立进行运作的器件。其软件内容只包括软件运行环境及其操作系统。硬件内容包括信号处理器、存储器、通信模块等在内的多方面的内容。1、C开发经验 条件:Linux。方法:主要是掌握ANSIC编程(不包括gtk,qt等图形可视化开发)2、网络、操作系统...

学好嵌入式必须要学的课程有什么
4、《unix\/linux编程实践教程》可以说是linux编程的必修课,很不错的一本书,初学嵌入式的朋友可以看看。5、单片机,其实就是一台电脑,像现在的汽车控制、led控制、屏幕亮光程度控制,它都可以实现,自己买块开发板弄一下,你能学到很多的别人学不到的。6、arm,现在流行的微机,说白了就是32位的...

嵌入式开发要学哪些课程
嵌入式开发的核心课程包括计算机组成原理、C\/C++语言、数字信号处理、汇编语言、汇编原理、操作系统概论、Linux编程、信号与系统、模拟电路与数字电路、硬件编程语言、ARM、微积分、离散数学、线性代数等。嵌入式开发应用广泛,涵盖消费电子、工业控制和通信设备三大领域。嵌入式开发涉及硬件设计、电路构建与软件...

嵌入式开发都需要学习什么?
9.嵌入式软件开发工具:掌握嵌入式软件开发工具,如编译器、调试器、仿真器等。熟悉使用这些工具进行嵌入式软件的开发和调试。10.物联网和传感器技术:如果涉及到物联网应用,了解物联网技术和各种传感器的原理和应用,以实现设备之间的数据交互。以上是嵌入式开发所需学习的基本内容,不同的项目和行业可能...

学嵌入式开发应该学哪个专业
嵌入式开发涉及电气、电子和计算机科学多个领域,需要掌握硬件设计、软件编程、电路设计等知识。选择学习哪个专业,取决于个人兴趣和职业规划。例如,电气工程或电子工程专业的学生,由于具备电路设计、电机驱动、传感器技术等知识,更易理解嵌入式系统的硬件设计。而计算机科学或软件工程专业的学生,则能在嵌入式...

嵌入式软件开发需要学习哪些课程
嵌入式软件开发需要学习的课程:嵌入式软件开发涵盖了多个领域,包括硬件和软件。以下是在学习嵌入式软件开发时可能涉及的一些关键课程:1.计算机组成原理:了解计算机硬件体系结构、指令集架构、中央处理器(CPU)、存储器等基本概念,为嵌入式系统的设计提供基础。2.操作系统原理:学习操作系统的基本原理,...

学好嵌入式必须要学的课程有什么
单片机和ARM是嵌入式开发的核心,单片机可以控制汽车、LED等设备,而ARM是一种流行的微机架构。学习FPGA能够让你了解芯片的制造过程,模拟电路和数字电路则是硬件开发的基础。嵌入式开发可以分为硬件、驱动、内核和应用四个方向。如果希望向嵌入式软件方向发展,Linux+ARM是一个常见的选择。嵌入式Linux开发...

相似回答