对新手学习嵌入式软件开发的基本建议
2012-07-26 07:58
302 查看
嵌入式软件开发学习的过程,需要面对很多的专业性知识,让很多新手望而怯步!其实,这是没有必要的,你只要了解了嵌入式系统的整体构架和知识组成部分,重点突破才是取胜之道。
让我们来看下嵌入式系统的构成:
嵌入式系统的构成:硬件+软件;现代嵌入式软件构成很多系统已经由单片机过渡到了智能系统,因此软件内容非常广泛:
软件 = bootloader + kernel + root + application + advanced-application
其中,bootloader和kernel与系统硬件结合紧密,涉及到部分跨专业的问题。但是从root开始,我们基本可以认为是与硬件无关的知识体系。
从现在市场上流行的高级应用开发工程师需要的技能上看,你会发现一个很奇怪的现象,他们几乎不懂系统,直接使用厂家提供的API进行开发即可o_0!!,同样也过得非常HAPPY啊!难道这就是嵌入式软件开发???其实并不是这样的,这种开发严格上来说是advanced-application,前面所有的东西已经被别人做完了而已。作为一个真正的嵌入式软件开发人员必须了解整个嵌入式的构架和原理,这样的人才才可以经得住行业的风云变幻啊!所谓的高级开发人员如果只懂得advanced-application,一旦失去前面所有(包括:bootloader + kernel + root + application)的支撑,其实他什么也不是!可以明白的说,他是嵌入式软件开发的一个“不完整版”。
所以,个人认为(仅代表个人观点),嵌入式软件开发人员应该是掌握整个软件构架的人才,了解bootloader、了解kernel、定制root、精通程序设计提供各种高级开发的支撑,并能使用所以资源完成高级应用的一个全方位人才。但是对于一个对操作系统、组成原理等不太精通的人来说,研究bootloader和kernel简直是一种自虐行为。那么个人浅见:你如果是一个初学者,并且不具备硬件和操作系统相关知识的功底,你完全可以从root开始!它是完全迎合软件开发专业学生最佳的起跑线,是快速而系统地研究嵌入式系统的好办法!等你一旦完成了root以后所有知识的学习和运用,只要你感兴趣,你随时可以对bootloader、kernel和硬件进行一番从容的研究和探讨。毕竟硬件部分是电子和通信方面的专利,我个人同时认为,你把bootloader和kernel弄明白,你就已经是嵌入式的高级人才了!
另外,必须说明一下:嵌入式从root开始学习(甚至从bootloader、kernel开始)最好的系统是linux,好好学习他吧,他会让你真正的明白什么是嵌入式系统的,同时也会让你成为一个合格的嵌入式人才!
搞掂Linux你终于可以喘口气了,可以涉猎一些其他方面的内容和系统,如wince、uCOS等等,最后可以搞下只关注高端应用的系统,Android和IPhone!到此为止,你终于在软件方面圆满了,可上至高端开发,可下至内核修改,全才啦!恭喜你!
坚持是胜利的保证,恒心是成功的基石,努力吧,追梦人!本文出自 “驿落黄昏” 博客,请务必保留此出处http://yiluohuanghun.blog.51cto.com/3407300/942761
让我们来看下嵌入式系统的构成:
嵌入式系统的构成:硬件+软件;现代嵌入式软件构成很多系统已经由单片机过渡到了智能系统,因此软件内容非常广泛:
软件 = bootloader + kernel + root + application + advanced-application
其中,bootloader和kernel与系统硬件结合紧密,涉及到部分跨专业的问题。但是从root开始,我们基本可以认为是与硬件无关的知识体系。
从现在市场上流行的高级应用开发工程师需要的技能上看,你会发现一个很奇怪的现象,他们几乎不懂系统,直接使用厂家提供的API进行开发即可o_0!!,同样也过得非常HAPPY啊!难道这就是嵌入式软件开发???其实并不是这样的,这种开发严格上来说是advanced-application,前面所有的东西已经被别人做完了而已。作为一个真正的嵌入式软件开发人员必须了解整个嵌入式的构架和原理,这样的人才才可以经得住行业的风云变幻啊!所谓的高级开发人员如果只懂得advanced-application,一旦失去前面所有(包括:bootloader + kernel + root + application)的支撑,其实他什么也不是!可以明白的说,他是嵌入式软件开发的一个“不完整版”。
所以,个人认为(仅代表个人观点),嵌入式软件开发人员应该是掌握整个软件构架的人才,了解bootloader、了解kernel、定制root、精通程序设计提供各种高级开发的支撑,并能使用所以资源完成高级应用的一个全方位人才。但是对于一个对操作系统、组成原理等不太精通的人来说,研究bootloader和kernel简直是一种自虐行为。那么个人浅见:你如果是一个初学者,并且不具备硬件和操作系统相关知识的功底,你完全可以从root开始!它是完全迎合软件开发专业学生最佳的起跑线,是快速而系统地研究嵌入式系统的好办法!等你一旦完成了root以后所有知识的学习和运用,只要你感兴趣,你随时可以对bootloader、kernel和硬件进行一番从容的研究和探讨。毕竟硬件部分是电子和通信方面的专利,我个人同时认为,你把bootloader和kernel弄明白,你就已经是嵌入式的高级人才了!
另外,必须说明一下:嵌入式从root开始学习(甚至从bootloader、kernel开始)最好的系统是linux,好好学习他吧,他会让你真正的明白什么是嵌入式系统的,同时也会让你成为一个合格的嵌入式人才!
搞掂Linux你终于可以喘口气了,可以涉猎一些其他方面的内容和系统,如wince、uCOS等等,最后可以搞下只关注高端应用的系统,Android和IPhone!到此为止,你终于在软件方面圆满了,可上至高端开发,可下至内核修改,全才啦!恭喜你!
坚持是胜利的保证,恒心是成功的基石,努力吧,追梦人!本文出自 “驿落黄昏” 博客,请务必保留此出处http://yiluohuanghun.blog.51cto.com/3407300/942761
相关文章推荐
- 嵌入式底层软件开发学习系列之四基本技能篇
- 【赛迪网】新手看招 嵌入式开发都需要学习什么
- 介绍的嵌入式软件开发的背景知识,基本逻辑和流程,基本名词、概念和理念
- 嵌入式软件开发学习导引
- 嵌入式底层软件开发学习系列之五调试方法
- 给学习嵌入式Linux的新手的一点建议
- 嵌入式学习的误区及建议(软件硬件)
- 嵌入式科普:基本概念,设计流程,开发特点,如何学习
- 学习嵌入式linux开发的一点建议
- 嵌入式linux软件开发学习笔记--uboot
- 嵌入式Linux软件开发学习计划
- 嵌入式软件开发需要学习的书
- 新手看招 嵌入式开发都需要学习什么
- 嵌入式环境下的算法开发之学习建议
- 嵌入式学习的误区及建议(软件硬件)
- 嵌入式底层软件开发学习系列之一目录
- 嵌入式开发学习技巧建议
- 新手如何入门嵌入式软件开发
- 嵌入式底层软件开发学习系列之六软件工程
- 建议ASP.NET Web开发新手学习的几个基础框架