嵌入式软件开发应该学什么
我现在从事于windows下应用程序开发,但我想以自己有cc++单片机数电模电汇编数据结构和算法的基础改嵌入式软件开发,可没具体明确方向,应该学什么,怎么学,要买什么书,...
我现在从事于windows下应用程序开发,但我想以自己有c c++ 单片机 数电 模电 汇编 数据结构和算法的基础改嵌入式软件开发,可没具体明确方向,应该学什么,怎么学,要买什么书,我最希望能告诉我学什么,给我指南
展开
6个回答
2013-09-11
展开全部
如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式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、嵌入式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脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!推荐到华清远见的网站上了解嵌入式的课程体系和学习方法,还有很多资料和视频教程可以下载。
展开全部
嵌入式的学习并不像想象的那么难,主要是因为有硬件开发板,一般人敬而远之,其实对于理工科的本科毕业生(如自动化、电子、信息等专业),懂一定的C语言
知识,是否懂硬件其实关系不大,这样的条件就可以学习嵌入式了,现在,嵌入式的人才很多都是半路出家,由其他的行业转行过来,由于没有系统掌握嵌入式的相
关知识,对于这部分人,企业其实是不满意的,只是现在没有大量的人才供他们挑选。
对于求职的毕业生而言,嵌入式领域是一个较新的空间,很多技术出现的时间不长,多数人没有条件接触或进入该行业,需要接受专门的培训与专业人员的指导,才
能了解具体的开发流程。因此,要进入嵌入式系统开发领域工作,必须参加一些专业培训机构的课程,并寻找项目实践的机会,增加项目经验,只有这样才能弥补横
在企业与求职者间的鸿沟。
在众多的培训机构中,安博中南区牛耳IT实训基地率先推出了嵌入式软件工程师培养工程,并整合众多企业用人需求和计划,以就业为导向,以技能为核心,以
国内顶级的实训环境和企业氛围规范、提升学员职业素质,从真实案例入手,引入国际著名厂商、机构培训产品,不断开发适应企业人才需求的培训项目,为中国
IT业培养和输送嵌入式软件工程师,以及其他IT行业急需的实战型、综合型人才。
知识,是否懂硬件其实关系不大,这样的条件就可以学习嵌入式了,现在,嵌入式的人才很多都是半路出家,由其他的行业转行过来,由于没有系统掌握嵌入式的相
关知识,对于这部分人,企业其实是不满意的,只是现在没有大量的人才供他们挑选。
对于求职的毕业生而言,嵌入式领域是一个较新的空间,很多技术出现的时间不长,多数人没有条件接触或进入该行业,需要接受专门的培训与专业人员的指导,才
能了解具体的开发流程。因此,要进入嵌入式系统开发领域工作,必须参加一些专业培训机构的课程,并寻找项目实践的机会,增加项目经验,只有这样才能弥补横
在企业与求职者间的鸿沟。
在众多的培训机构中,安博中南区牛耳IT实训基地率先推出了嵌入式软件工程师培养工程,并整合众多企业用人需求和计划,以就业为导向,以技能为核心,以
国内顶级的实训环境和企业氛围规范、提升学员职业素质,从真实案例入手,引入国际著名厂商、机构培训产品,不断开发适应企业人才需求的培训项目,为中国
IT业培养和输送嵌入式软件工程师,以及其他IT行业急需的实战型、综合型人才。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
阶段一 - 嵌入式开发之基础阶段
嵌入式驱动开发环境搭建初级
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/
嵌入式驱动开发环境搭建初级
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/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-11
展开全部
个人觉得嵌入式开发需要有良好的硬件基础,对硬件原理非常了解。不然只能从事基本的DSP编程和硬件驱动的开发。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
嵌入式软件工程师:从事嵌入式软件开发工作的人
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询