欢迎来到天天文库
浏览记录
ID:8850702
大小:17.50 KB
页数:2页
时间:2018-04-09
《粤嵌带您走进嵌入式软件开发高质高效殿堂》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、粤嵌带您走进嵌入式软件开发高质高效殿堂 嵌入式软件开发与软硬件结合有着非常紧密的联系,对工程师的能力有一定的要求,这也决定了进入嵌入式软件开发领域将面临更大的困难和挑战。对于刚开始学习嵌入式软件开发的工程师,着重学习操作系统原理和处理器方面的知识尤为重要。从业后,如要实现高效工作还得掌握开发所需的各种工具和流程。在实际工作中,开发者需要掌握哪些知识?使用哪些工具?超大工作量与生活如何平衡?在这里,集结粤嵌老师,我们一起探讨有关嵌入式软件开发那些事。 Q:刘老师,您好!我想请问下,现在常用的嵌入式开发工具有哪些?哪个比较
2、好用常用,以前到了解用过RealViewMDK开发工具,不知它与别的工具有什么不同。 A:你好,从我的个人经验来看,大型的嵌入式软件开发大多采用的是基于命令行的开发方式,很少有采用GUI界面的。即使象VxWorks有那么好用的Workbench,我曾工作的团队也是基于命令行进行开发工作的。至于RealViewMDK,我想它更多地运用于基于ARM处理器的嵌入式系统开发中,是一款很好的开发工具。至于与其他工具的比较问题,我不能很好地回答。 大体说来,一个好的开发工具能极大地提高工作效率,但成为一个专业的嵌入式开发工程师这不
3、是至关重要的一步。因为你会用这个别人也会用,对于我们的能力没有什么区分度。就开发工具方面,成为专业的嵌入式开发工程师的关键点,在于我们能否理解和掌握开发工具背后的行为。比如,编译器是如何编译整个项目的?程序文件的结构是怎样的?调试时断点的原理又是什么?如何通过编写Makefile来更好地完成项目编译?等等。这也是我为什么会在《专业嵌入式软件开发》中加入介绍程序结构和开发工具相关篇章的缘故。 Q:刘老师,你好,我是嵌入式初学者,嵌入式从应用层到驱动动层的一些实验都走过了,然后觉得这个专业学的东西太多了,涉及太多的知识,即将
4、毕业,不知道从应用层还是从底层入手进入这个行业,本人比较喜欢偏向底层开发,但是自己在这方面的知识和经验还是不足,请问刘老师有什么好的意见呢? A:我相信这是很多新手都会面临的问题,我也是曾经这样走过来的。首先,正如您所说,真正的嵌入式软件开发需要掌握很多的知识。从硬件方面,工程师需要完全理解计算机的体系结构;从软件方面,工程师需要掌握各种开发工具、了解程序的结构、精通编程语言等等。正因如此,这决定了从事嵌入式软件开发是一个艰难和长期的学习和成长过程,我们先要从思想上树立这种观念,这使得我们在成长的过程中不会因为畏惧而放弃
5、。 短期来看,我觉得您需要从软件基础入手,掌握嵌入式软件开发所需掌握的各种软件开发技能。毕竟,我们一上手工作是以软件作为切入点的。至于硬件方面的知识,虽然也很重要,但学习它的紧迫程度更低一点,我们可以边工作边积累。 如果您喜欢做底层开发,那我建议您跟着自己的兴趣走。有兴趣是很难能可贵的一件事!至于知识和经验,每一个新手上路时都缺乏,这不是根本问题。对您最关键的,或许是能找到一个符合自己兴趣的新工作,这样就有机会成为一个真正的底层嵌入式软件开发人才。 祝您进入职场有一个好的起点!也愿您能坚持自己的兴趣! Q:刘老师,
6、您好。嵌入式软件开发相对而言与硬件结合更加紧密,但各种芯片又不可能全部掌握。作为软件开发人员,您认为应该对硬件知识的掌握达到何种程度?另外需不需要研究算法呢? A:你好,其实不论是什么芯片,我们掌握它们的方法都是一样的:1)能看懂时序图。2)能熟练地查阅芯片手册。这也间接地回答了要掌握到什么程度。我认为您是在问软件算法对吗?如果这样,是否要研究算法取决于工作内容。在很多情形下,掌握《数据结构》这类书中的算法就够用了。 Q:刘老师,您好!我在学习嵌入式的过程中,发现总是不能专注于一种平台来学习,今天学两下Linux,明天
7、就开始玩Android,老是无法专注,对此您有好的建议吗? A:这可能和我们自己的定位有关—不清楚以后到底要干什么。 我个人觉得学习Linux与学习Android是不大一样的。前者侧重于操作系统,后者则更侧重于应用框架;前者是用C语言,后者则更多的是Java。相比之下,做Android应用(不是驱动等)的门槛更低。对于没有多少工作经验的人来说,从事Android是一件好事。从就业前景来讲,移动互联网是个大趋势,因此Android所需的开发工程师数量会很大。 做软件开发有一些内容我们要注意。比如,真正的高水平是指我们能
8、掌握一定的开发方法、能理解软件开发的困境、有很强的设计能力、熟悉计算机体系结构和操作系统实现原理等。可以说,这些内容与具体是Linux或Android是无关的(还可以是其它的VxWorks或iOS什么的),我更倾向于将Linux和Android开发理解为是一条帮助我们理解困境和掌握技能的一种途径。 对
此文档下载收益归作者所有