如何才能自学嵌入式?
学过C++,自信语言关已经过了,想自学嵌入式,还需要哪些知识?网上看了好多学习板开发板,感觉好强悍好想要,但是不敢买因为完全不会用。单片机有什么好的书看么?我想先在书上了...
学过C++,自信语言关已经过了,想自学嵌入式,还需要哪些知识?
网上看了好多学习板开发板,感觉好强悍好想要,但是不敢买因为完全不会用。
单片机有什么好的书看么?我想先在书上了解一下,然后再仔细学习。 展开
网上看了好多学习板开发板,感觉好强悍好想要,但是不敢买因为完全不会用。
单片机有什么好的书看么?我想先在书上了解一下,然后再仔细学习。 展开
展开全部
C语言是嵌入式最重要的基础知识,但是掌握了它并不代表你的基础已经很好了,嵌入式学习相关的基础知识主要是这些:
一是程序设计的基础,例如:基本的编程语言基础,至少对数据类型、程序的结构及流程控制等最基本的内容要相当清楚,所以建议恶补一下C语言,推荐谭浩强的C语言程序设计,好好看一下,呵呵!另外有不少同学都问到数据结构的基础,我一直认为数据结构和算法的学习是帮助形成程序设计逻辑思维的很好训练方式,对于程序员的长期专业素养的提高一定有好处,所以建议即使已经在嵌入式行业中工作之后也应该多补充一些相关的知识。许多在学校没有学过数据结构的同学往往认为这部分非常枯燥、难学。而实际上如果你能明白研究计算机存储和数据组织方式的意义,就一定能够充分体会到数据结构的价值和魅力。一旦兴趣有了,一切就会迎刃而解,呵呵!
二是操作系统工作原理,这部分往往是非计算机专业的同学在学校时没有接触过的。而由于嵌入式软件设计相关的多任务环境、模块间的同步与通信协同、驱动设计等往往都需要有对操作系统工作机制的了解和掌握作为基础,因此建议没有系统学习过的同学,找一本相关的操作系统工作原理书籍认真看一下(不用特厚、特专业、特内核的,先以普及知识为主,呵呵!)。
三是基本的硬件基础,由于嵌入式Linux开发往往是ARM+Linux路线,所以为了能够在后续学习过程中很好地掌握主流嵌入式微处理器的结构与原理(例如:ARM9),就需要对硬件工作原理有初步的了解和掌握,建议看一下诸如计算机组成原理、体系结构等相关的专业书籍。
要深入学习你可以尝试以下路线:
(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脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!
华清远见的嵌入式专业教材比较专业,也很出名,高校图书馆以及外面书店都有卖,你可以去网上搜一下,买本看看,华清远见的网站和技术论坛上面也有很多嵌入式学习资料和视频可以下载,而且更新的速度也很快,LZ没事可以去转转,相信对你会有帮助!
一是程序设计的基础,例如:基本的编程语言基础,至少对数据类型、程序的结构及流程控制等最基本的内容要相当清楚,所以建议恶补一下C语言,推荐谭浩强的C语言程序设计,好好看一下,呵呵!另外有不少同学都问到数据结构的基础,我一直认为数据结构和算法的学习是帮助形成程序设计逻辑思维的很好训练方式,对于程序员的长期专业素养的提高一定有好处,所以建议即使已经在嵌入式行业中工作之后也应该多补充一些相关的知识。许多在学校没有学过数据结构的同学往往认为这部分非常枯燥、难学。而实际上如果你能明白研究计算机存储和数据组织方式的意义,就一定能够充分体会到数据结构的价值和魅力。一旦兴趣有了,一切就会迎刃而解,呵呵!
二是操作系统工作原理,这部分往往是非计算机专业的同学在学校时没有接触过的。而由于嵌入式软件设计相关的多任务环境、模块间的同步与通信协同、驱动设计等往往都需要有对操作系统工作机制的了解和掌握作为基础,因此建议没有系统学习过的同学,找一本相关的操作系统工作原理书籍认真看一下(不用特厚、特专业、特内核的,先以普及知识为主,呵呵!)。
三是基本的硬件基础,由于嵌入式Linux开发往往是ARM+Linux路线,所以为了能够在后续学习过程中很好地掌握主流嵌入式微处理器的结构与原理(例如:ARM9),就需要对硬件工作原理有初步的了解和掌握,建议看一下诸如计算机组成原理、体系结构等相关的专业书籍。
要深入学习你可以尝试以下路线:
(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脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!
华清远见的嵌入式专业教材比较专业,也很出名,高校图书馆以及外面书店都有卖,你可以去网上搜一下,买本看看,华清远见的网站和技术论坛上面也有很多嵌入式学习资料和视频可以下载,而且更新的速度也很快,LZ没事可以去转转,相信对你会有帮助!
展开全部
单片机有学过吗,一般用51系列的,可以买个开发板,一般都有学习视频,而且还有一些示例代码,边用边学,纸上得来终觉浅,绝知此事要躬行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-08-01
展开全部
把C好好看看,找个开发板慢慢从应用开发开始学起,千万不要一开始就学硬件或者驱动,即使有人教你,也会事半功倍的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在PC上编程和嵌入式开发编程还是有点区别的。需要对硬件有一定的了解。
如果觉得自己一点硬件基本都没有就先从单片机开始,不过不要太简单的,选AVR的单片机,以后升级嵌入式比较容易。如果你觉得单片机太简单了那就直接看看ARM的书,硬件架构,存储器操作,驱动程序等等
单片机的书基本上差不多,你找两本比较可以发现就连表达都几乎是一样的,所以买书的话主要关注目录,也就是这本书介绍了哪些内容,是不是你想要的。
光是理论当然不行,肯定要有一块开发板哈。边学边动手学得更快
如果觉得自己一点硬件基本都没有就先从单片机开始,不过不要太简单的,选AVR的单片机,以后升级嵌入式比较容易。如果你觉得单片机太简单了那就直接看看ARM的书,硬件架构,存储器操作,驱动程序等等
单片机的书基本上差不多,你找两本比较可以发现就连表达都几乎是一样的,所以买书的话主要关注目录,也就是这本书介绍了哪些内容,是不是你想要的。
光是理论当然不行,肯定要有一块开发板哈。边学边动手学得更快
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先必须了解目前嵌入式用的都是什么开发板,然后根据开发板的硬件环境去学习.
同时需要学习linux内核 arm系列处理器等
同时需要学习linux内核 arm系列处理器等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先学好c语言,和c++还是有别的。你c++好,学界面的部分会比较快。
学嵌入式最基本的要求就是c和单片机,剩下的都可以慢慢学。
基础有了就可以向下学习了,贴一个凌阳的培训课程安排,仅供参考:
凌阳教育嵌入式培训—“嵌入式Linux就业班”历时四个月,通过对嵌入式Linux系统全面的学习,能够独立胜任嵌入式Linux应用开发、系统开发、驱动开发等多方面工作,完成学习凌阳教育100%保证就业。
第一阶段:嵌入式C语言编程
培训时间:2周
本期目标:嵌入式C语言在整个过程中起着至关重要的作用。C语言有功能强、使用方便灵活等特点,更重要的是可移植性比较强。一个精通C语言程序设计的程序员,可以很容易地进入Linux、WinCE、Vxworks等嵌入式操作系统下的软件开发工作。本阶段学习目标是掌握C语言基本知识、C编程语法基础,以及C语言高级编程,为将来的编程工作打下结实的基础。
第二阶段:Linux应用及系统编程
时间7周
本期目标:嵌入式Linux应用开发和系统开发是嵌入式Linux中最重要的一部分,也是企业人才需求最广的一部分。本期学习的主要目标是精通嵌入式Linux下的程序设计,熟练掌握嵌入式Linux的开发环境、系统编程以及网络编程,熟悉C++、QT编程并且深刻体会整个嵌入式Linux项目开发流程,强化学员对Linux应用开发的能力.
第三阶段:嵌入式微处理器及平台开发
时间:3周
目标:平台开发是嵌入式Linux底层开发必备的基本技能,本阶段主要任务有:了解ARM体系结构和编程,掌握bootloader和kernel的移植技能,并了解Linux内核开发相关内容,具备ARM硬件接口的基础知识、制作自己的Linux系统。
第四阶段:嵌入式Linux驱动开发
时间:2周
目标:驱动开发是嵌入式Linux开发难度最高的内容,也是目前嵌入式行业最紧缺的人才之一。本课程介绍嵌入式Linux驱动开发相关概念及开发流程,了解驱动开发的关键技术点,重点讲解嵌入式Linux下常用接口驱动的编写方法,包括:GPIO驱动、SPI驱动、flash驱动、块设备驱动、网卡驱动、液晶驱动、sd卡驱动等。
学嵌入式最基本的要求就是c和单片机,剩下的都可以慢慢学。
基础有了就可以向下学习了,贴一个凌阳的培训课程安排,仅供参考:
凌阳教育嵌入式培训—“嵌入式Linux就业班”历时四个月,通过对嵌入式Linux系统全面的学习,能够独立胜任嵌入式Linux应用开发、系统开发、驱动开发等多方面工作,完成学习凌阳教育100%保证就业。
第一阶段:嵌入式C语言编程
培训时间:2周
本期目标:嵌入式C语言在整个过程中起着至关重要的作用。C语言有功能强、使用方便灵活等特点,更重要的是可移植性比较强。一个精通C语言程序设计的程序员,可以很容易地进入Linux、WinCE、Vxworks等嵌入式操作系统下的软件开发工作。本阶段学习目标是掌握C语言基本知识、C编程语法基础,以及C语言高级编程,为将来的编程工作打下结实的基础。
第二阶段:Linux应用及系统编程
时间7周
本期目标:嵌入式Linux应用开发和系统开发是嵌入式Linux中最重要的一部分,也是企业人才需求最广的一部分。本期学习的主要目标是精通嵌入式Linux下的程序设计,熟练掌握嵌入式Linux的开发环境、系统编程以及网络编程,熟悉C++、QT编程并且深刻体会整个嵌入式Linux项目开发流程,强化学员对Linux应用开发的能力.
第三阶段:嵌入式微处理器及平台开发
时间:3周
目标:平台开发是嵌入式Linux底层开发必备的基本技能,本阶段主要任务有:了解ARM体系结构和编程,掌握bootloader和kernel的移植技能,并了解Linux内核开发相关内容,具备ARM硬件接口的基础知识、制作自己的Linux系统。
第四阶段:嵌入式Linux驱动开发
时间:2周
目标:驱动开发是嵌入式Linux开发难度最高的内容,也是目前嵌入式行业最紧缺的人才之一。本课程介绍嵌入式Linux驱动开发相关概念及开发流程,了解驱动开发的关键技术点,重点讲解嵌入式Linux下常用接口驱动的编写方法,包括:GPIO驱动、SPI驱动、flash驱动、块设备驱动、网卡驱动、液晶驱动、sd卡驱动等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询