
想要入门嵌入式linux,哪位高手能指点一下整个学习过程,并且在其过程中推荐的书和方法,谢谢
想要入门嵌入式linux,哪位高手能指点一下整个学习过程,并且在其过程中推荐的书和方法,差不多需要多少时间。不要网上复制的,谢谢...
想要入门嵌入式linux,哪位高手能指点一下整个学习过程,并且在其过程中推荐的书和方法,差不多需要多少时间。不要网上复制的,谢谢
展开
4个回答
2010-12-14
展开全部
想要入门嵌入式linux,哪位高手能指点一下整个学习过程,并且在其过程中推荐的书和方法?
首先C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言,你说不掌握它可以吗?至于如何学习C语言,我想这些基础的知识每个人都有自己的方法,关键要去学习,看书也好,网上找些视频看也好。很多人会问,C语言要学到怎么样,我觉得这没有标准的答案。我想至少你在明白了一些基础的概念后,就该写代码了,动手才是最重要的,当你动手了,遇到问题了,再反过来学习,反过来查查课本,那时的收获就不是你死看书能得到的。
其次,应该对操作系统有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。应该把系统的管理理解一下,比如进程、线程,系统如何来分配资源的,系统如何来管理硬件的,当然,不是看书就能把这些理解透,如果不是一时能理解,没关系,多看看,结合以后的项目经验,会有更好的理解的。
还有应该学习嵌入式系统,如linux或者wince下的编程,这些对以后做应用的编程很有帮助,当然,如果做手机的话,那可以学习MTK、塞班、Android等操作系统,Android是以后发展的趋势,现在很热门,Android也是基于linux系统封装的,所以建议先学习下linux。
还有,应该学习下单片机或者ARM或者MIPS,很多人说我没有单片机的经验,直接学ARM可以吗?我觉得那完全没有问题的,当然如果你学习过单片机,那最好不过了,以后学习ARM就更简单了。
最后如果你把以上的知识都有所了解后,就该去阅读阅读一些优秀的代码,比如结合arm芯片手册学习去学习下UBOOT的源代码,了解下最小的系统开发,那对你整个嵌入式开发的非常有帮助的,可以的话,还可以学习下linux的源代码,当然如果你直接阅读2.6的代码,我想你会很痛苦的,可以先看看linux 代码早期的版本,比如0.12 的代码等等,麻雀虽小,五脏俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程师。
至于上面说的知识如何学习呢?每个人都应该去找自己最好的方法,所谓的最好的方法就是最适合自己的方法。很多人看不进书,那就去看看视频吧。视频也应该要选择,不是随便看看,应该要有所选择,有所挑选。我也是这样一路走过来的,不过我这人比较懒,我看不进书,一看书我就想睡觉,所以这几年我都是看视频过来的,现在也算学有所成,但也不敢说是高手吧。
=================================
再给你推荐一篇学习嵌入式的经典文章,你不让复制网上的,我就不复制自己到百度搜索《专科生学嵌入式到找到工作的前前后后》,这是一篇介绍专科生如何学习嵌入式,里面详细介绍了他的学习方法,学习的详细步骤和书籍,肯定能帮你的。
首先C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言,你说不掌握它可以吗?至于如何学习C语言,我想这些基础的知识每个人都有自己的方法,关键要去学习,看书也好,网上找些视频看也好。很多人会问,C语言要学到怎么样,我觉得这没有标准的答案。我想至少你在明白了一些基础的概念后,就该写代码了,动手才是最重要的,当你动手了,遇到问题了,再反过来学习,反过来查查课本,那时的收获就不是你死看书能得到的。
其次,应该对操作系统有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。应该把系统的管理理解一下,比如进程、线程,系统如何来分配资源的,系统如何来管理硬件的,当然,不是看书就能把这些理解透,如果不是一时能理解,没关系,多看看,结合以后的项目经验,会有更好的理解的。
还有应该学习嵌入式系统,如linux或者wince下的编程,这些对以后做应用的编程很有帮助,当然,如果做手机的话,那可以学习MTK、塞班、Android等操作系统,Android是以后发展的趋势,现在很热门,Android也是基于linux系统封装的,所以建议先学习下linux。
还有,应该学习下单片机或者ARM或者MIPS,很多人说我没有单片机的经验,直接学ARM可以吗?我觉得那完全没有问题的,当然如果你学习过单片机,那最好不过了,以后学习ARM就更简单了。
最后如果你把以上的知识都有所了解后,就该去阅读阅读一些优秀的代码,比如结合arm芯片手册学习去学习下UBOOT的源代码,了解下最小的系统开发,那对你整个嵌入式开发的非常有帮助的,可以的话,还可以学习下linux的源代码,当然如果你直接阅读2.6的代码,我想你会很痛苦的,可以先看看linux 代码早期的版本,比如0.12 的代码等等,麻雀虽小,五脏俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程师。
至于上面说的知识如何学习呢?每个人都应该去找自己最好的方法,所谓的最好的方法就是最适合自己的方法。很多人看不进书,那就去看看视频吧。视频也应该要选择,不是随便看看,应该要有所选择,有所挑选。我也是这样一路走过来的,不过我这人比较懒,我看不进书,一看书我就想睡觉,所以这几年我都是看视频过来的,现在也算学有所成,但也不敢说是高手吧。
=================================
再给你推荐一篇学习嵌入式的经典文章,你不让复制网上的,我就不复制自己到百度搜索《专科生学嵌入式到找到工作的前前后后》,这是一篇介绍专科生如何学习嵌入式,里面详细介绍了他的学习方法,学习的详细步骤和书籍,肯定能帮你的。
展开全部
linux / c 一站式编程
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,学过单片机了没有?
没有的话,建议先学学51单片机,了解一下计算机的底层运作机理。如果你能在学学数电、模电(一点点)、计算机组成原理,那么你的硬件基本功就更扎实了。最好,汇编也好学,如果你将来想做底层开发的话。
然后,就是Linux编程。C语言学了没?Linux会用命令行来操作了没?懂得在Linux下用Makefile来管理工程代码了没?
以上的都是基础,基础打好了后,接下来就是逐步深入了:
嵌入式Linux开发环境的搭建会不会?:交叉编译工具链(用来编译出目标平台的机器代码)、交叉编译出的GDB调试器进行远程调试、NFS/FTP服务会搭建了不(用来下载可执行程序文件)?
这下子,你发现自己可以编写一些平台无关性的代码(主要用到标准输入输出流而没调用其他硬件)运行在开发板上了。
===============华丽丽的分界线======上面是基础,下面是你的选择=======
此后,你需要选择自己的发展方向:应用开发、底层开发。
1,应用开发:
建议买本《Linux程序设计--第三版》来看看,学会Linux应用编程,然后再看看用在嵌入式上的图形编程--QT编程。
2,底层开发:(推荐《嵌入式Linux应用开发完全手册》)
你需要选择一种SOC来学习,好比如ARM9(S3C2440是其中一种)。这个阶段相对漫长点.........................................................................................................................................................加油!
然后,软硬结合,深入底层:
嵌入式系统搭建、移植:bootloader 、编译配置Linux内核、根文件系统的构建。
最后,驱动开发....有难度,加油!
有兴趣的Q我:380467850
没有的话,建议先学学51单片机,了解一下计算机的底层运作机理。如果你能在学学数电、模电(一点点)、计算机组成原理,那么你的硬件基本功就更扎实了。最好,汇编也好学,如果你将来想做底层开发的话。
然后,就是Linux编程。C语言学了没?Linux会用命令行来操作了没?懂得在Linux下用Makefile来管理工程代码了没?
以上的都是基础,基础打好了后,接下来就是逐步深入了:
嵌入式Linux开发环境的搭建会不会?:交叉编译工具链(用来编译出目标平台的机器代码)、交叉编译出的GDB调试器进行远程调试、NFS/FTP服务会搭建了不(用来下载可执行程序文件)?
这下子,你发现自己可以编写一些平台无关性的代码(主要用到标准输入输出流而没调用其他硬件)运行在开发板上了。
===============华丽丽的分界线======上面是基础,下面是你的选择=======
此后,你需要选择自己的发展方向:应用开发、底层开发。
1,应用开发:
建议买本《Linux程序设计--第三版》来看看,学会Linux应用编程,然后再看看用在嵌入式上的图形编程--QT编程。
2,底层开发:(推荐《嵌入式Linux应用开发完全手册》)
你需要选择一种SOC来学习,好比如ARM9(S3C2440是其中一种)。这个阶段相对漫长点.........................................................................................................................................................加油!
然后,软硬结合,深入底层:
嵌入式系统搭建、移植:bootloader 、编译配置Linux内核、根文件系统的构建。
最后,驱动开发....有难度,加油!
有兴趣的Q我:380467850
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自学还是培训,我也是学习c/c++嵌入式编程的,需要的话我给你一些课件,给你个参考,可以百度消息或邮箱(百度资料都有)联系我。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询