当前位置: 技术问答>linux和unix
嵌入式软件开发的一个困惑:究竟应该自上而下,还是可以自下而上
来源: 互联网 发布时间:2016-10-15
本文导语: 大家好,我从教研室毕业参加工作已经两年多了,本科我是电子信息专业的,只学过C语言,其他的计算机专业课没有学过,更谈不上写过很多程序了;教研室的时候开始接触嵌入式软件开发,从事的是简单的终端UI设...
大家好,我从教研室毕业参加工作已经两年多了,本科我是电子信息专业的,只学过C语言,其他的计算机专业课没有学过,更谈不上写过很多程序了;教研室的时候开始接触嵌入式软件开发,从事的是简单的终端UI设计——准确说是终端UI的修改而已,用的全是C,而对于OOP编程则一窍不通。工作之后,开始从事Linux嵌入式BSP开发,不过做的时钟都只是独立的模块,而且框架别人都搭好了的,只是需要进行修改和代码优化、测试就可以了,这样的工作两年下来,我却时钟觉得收获很少,而且明明是自己完成的工作几个月之后就很容易忘记了,更谈不上系统架构的理解。于是我开始思考,对于 应用级—中间件—系统级 这样的嵌入式软件大模块,我究竟应该是从上而下,还是可以自下而上地研究和实践?似乎前者才更有逻辑一些,但是我请教一些师兄,他们却说直接玩底层没有问题,不需要涉及多少应用的东西。
现在我们将要开始进行基于Android的开发,对于Java我没有学过,而对于Android系统移植我觉得也是个很繁杂的工作,我应该在有限的时间内从哪里入手呢?这两天趁着有空,向xdjm们虚心求教了,谢谢
现在我们将要开始进行基于Android的开发,对于Java我没有学过,而对于Android系统移植我觉得也是个很繁杂的工作,我应该在有限的时间内从哪里入手呢?这两天趁着有空,向xdjm们虚心求教了,谢谢
|
出现这种困惑也很容易理解,当初我也一样的困惑过。
我觉得吧,自上而下,或自下而上,需要根据你所从事的工作而定,
首先努力去完成领导安排的任务,
然后再想办法去学习自己不足的地方
学校的考试成绩不能说明什么,只要多参与一些项目,需要知识的时候再去翻书,补充基础知识。
相信你很快就是高手
我觉得吧,自上而下,或自下而上,需要根据你所从事的工作而定,
首先努力去完成领导安排的任务,
然后再想办法去学习自己不足的地方
学校的考试成绩不能说明什么,只要多参与一些项目,需要知识的时候再去翻书,补充基础知识。
相信你很快就是高手
|
无论自上而下,还是自下而上,对面向对象的理解都是必须的。因为这是设计思路,不是工作起点和顺序的问题。
移植严格来讲有点另类,它并不是系统设计和实现的问题,而已对系统的修改。linux的移植要掌握的东西真的多如牛毛(我说的是真正把linux移植到一个新的芯片,不是那种改改配置就KO的移植),对计算机系统的深入理解必要的,中断,原子操作,内存屏障,多任务,cache等等,还有这些改练之间的互相关系和影响都要一清二楚。
而非移植类的开发工作,无论底层还是上层,OO都是必不可少的基础,直接影响code的质量,除非你愿意写些千疮百孔code。应用,特别是大型的应用,架构设计比较重要。所以如果你是用oo的方式来开发,那么懂点design pattern很有好处。
移植严格来讲有点另类,它并不是系统设计和实现的问题,而已对系统的修改。linux的移植要掌握的东西真的多如牛毛(我说的是真正把linux移植到一个新的芯片,不是那种改改配置就KO的移植),对计算机系统的深入理解必要的,中断,原子操作,内存屏障,多任务,cache等等,还有这些改练之间的互相关系和影响都要一清二楚。
而非移植类的开发工作,无论底层还是上层,OO都是必不可少的基础,直接影响code的质量,除非你愿意写些千疮百孔code。应用,特别是大型的应用,架构设计比较重要。所以如果你是用oo的方式来开发,那么懂点design pattern很有好处。
|
针对你说的做过的事情忘得干干净净的问题,我有如下建议:
1. 养成良好的笔记习惯,把做过的项目详细写一个过程文档,把当时所需要的各种资源做一个分门别类的备份。
2. 增强体育锻炼,提高自己的记忆能力。
3. 平台搭建和模块移植有共性的东西,善于总结,对于过往的工作进行总结,会发现其实技术本身就是根据人们的需求而逐渐演变的过程,可以把这个叫做 “技术思维”,下次遇到一个自己不熟悉的项目,也可以根据这个思维模式来进行探索和尝试,也许你就可以应付一些未知领域的技术难题了。
1. 养成良好的笔记习惯,把做过的项目详细写一个过程文档,把当时所需要的各种资源做一个分门别类的备份。
2. 增强体育锻炼,提高自己的记忆能力。
3. 平台搭建和模块移植有共性的东西,善于总结,对于过往的工作进行总结,会发现其实技术本身就是根据人们的需求而逐渐演变的过程,可以把这个叫做 “技术思维”,下次遇到一个自己不熟悉的项目,也可以根据这个思维模式来进行探索和尝试,也许你就可以应付一些未知领域的技术难题了。
|
嵌入式linux学习需要掌握的东西确实太多了,这段时间也在努力。
个人感觉还是应该从基础做起,对linux的整个结构有个大致的了解,能够根据需要对linux进行裁剪。根据需要编写相应的驱动程序。这些过程会涉及到很多方面的知识。做什么还是能够做到知其所以然比较好,这样会越做越有信心。
建议根据工作的方向,有目的的学习,由表及里,逐步深入了解。
个人感觉还是应该从基础做起,对linux的整个结构有个大致的了解,能够根据需要对linux进行裁剪。根据需要编写相应的驱动程序。这些过程会涉及到很多方面的知识。做什么还是能够做到知其所以然比较好,这样会越做越有信心。
建议根据工作的方向,有目的的学习,由表及里,逐步深入了解。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。