免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 无风之谷
打印 上一主题 下一主题

[其它] 探讨高质高效嵌入式软件开发(特邀诺基亚西门子系统架构师李云) [复制链接]

论坛徽章:
0
71 [报告]
发表于 2011-12-29 16:11 |只看该作者
李老师,我是嵌入式的爱好者,想请教三个方法上的问题:
1)我感到系统级的编程和驱动、尤其是要和硬件相关的编程很难找到好的中文资料,反而很多地使用英文,请问您所知道的比较好的资料搜集和获取方法是什么?(尤其是英文文档的获取途径,能否推荐几个好的渠道,比如网站,工具,论坛,甚至一些可供参考的源码的获得途径)
2)面对一个上万行代码的大型工程,我应该怎样做才能迅速的把握整个系统的框架,进而能够和原本编写这套代码的工程师的逻辑设想保持一致,使得修改代码不会影响原工程师的逻辑?工程中的细节部分是否真的不重要?
3)您是否有参加过嵌入式开源项目的经历?如果有可否分享一下?(应为我有参加开源项目的想法,中文和英文项目都行,但是感觉找不到途径)
4)据我所知,从事嵌入式这一行需要时间的积淀,由于我们在工作的过程中接触到很多很多的东西比如一种好的编程思想、一款新的开发板、一种新的体系架构、某个问题的解决思路等等,但是很可惜人是一种会遗忘的动物,您是否有在您的工作历程中经常地总结和回顾一些东西呢?如果有可否分享一下您的总结方法?(有时候我们去做某些总结的时候可能目的并不是让自己记忆清楚问题的具体解决细节,而是能让自己知道大致的解决方向以便将来能有全局的把握)
哈哈,我是“问题青年”!谢谢

论坛徽章:
0
72 [报告]
发表于 2011-12-29 17:12 |只看该作者
我最擅长的就是遗忘~~~~~~~~~{:3_196:}

论坛徽章:
0
73 [报告]
发表于 2011-12-29 17:30 |只看该作者
谢谢!我原来是学电子的,看懂原理图绝对没有问题,但是碰到复杂的时序图就晕了! 回复 61# 杭州李云


   

论坛徽章:
0
74 [报告]
发表于 2011-12-29 18:22 |只看该作者
秋水长天_WH 发表于 2011-12-29 16:11
李老师,我是嵌入式的爱好者,想请教三个方法上的问题:
1)我感到系统级的编程和驱动、尤其是要和硬件相关 ...


哇,很好的问题。回复如下:

1) 我也觉得绝大多数datasheet是用英文的,所以一定要有一定的英语功底。以前我经常使用www.21ic.com去获得芯片手册,是个很不错的网站。除了它,可以到芯片厂商的网站上去找。比如,以前我常去AMD和Intel的官网上找资料。当然,现在有Google更加不错。其他渠道我没有用过了。在看芯片手册时,如果Linux内核已支持它,则我建议结合Linux的驱动部分的代码去读。

2)a> Brooks在他的《人月神话》中谈到概念一致性的重要性,而我自己的体会也是这样的。也就是说,我们需要了解系统的架构,并在原架构的确设计得不错的情形下遵循它。致于如何掌握原始架构,这不是一件易事,也与个人能力有关。只要一个系统的架构设计得好,那它的模块化应当不差,结合架构图还是有力可使的,怕就怕碰到没有架构的架构。b> 我认为细节很重要,不论你是做工程师、开发架构师或系统架构师。人其实是有一致性的,如果你有了解细节的习惯,那你在做各种(喜欢)的事时,都会去努力了解细节,这对于我们提高技能非常重要。当我们的能力达到一定的层次时,我们那时有判断哪些细节重要、哪些细节不重要的能力,但在我们达到那种层次之前,一定要钻细节。

3)对不起,我也没有这方面的经验。

4)这个问题问得非常好。我认为这是每一个IT从业人员应当去思考的问题。随着年龄的增长,我们会在不同时期从事不同的项目,当然,记忆力也会不断地下降,找到一种好的沉淀知识的方法就很重要了。首先,有的知识一旦你掌握,是永远不会忘记的,正如我们学会了骑自行车后也不会忘记那样,对于这类知识的沉淀方法很简单。 Do thing is enough!但是有些知识就容易忘记了,比如,我们在从事一个项目时,其中的一个解决方法很好,当多年不做那项目时就忘记了。对于这类问题,我的建议是可以写Blog什么的记下来,当然保存那时的代码也很重要。其实有些解决方法好,是因为它符合一定的原则,等到我们的能力增长和思想慢慢成熟后就能领悟到其中是什么原则在“作怪”。我们记录这些片段就是为了帮助某天找到其中的原则。随着这种知识的积累,我们会慢慢形成自己的思想,并制定出自己思想中的各种原则,到了这种境界就可以写书、做技术专栏什么的。虽然,我二年前才开始写书,但我在7年前就有写文章的习惯了,而且写了后很喜欢在自己的团队中与大家分享。总的说来,多想、总结。这几个字虽然简单,但要长期坚持并不容易,我们坚持得越长就越“牛”。

你是个“问题好青年”!

论坛徽章:
0
75 [报告]
发表于 2011-12-29 18:26 |只看该作者
daifeng1985 发表于 2011-12-29 17:30
谢谢!我原来是学电子的,看懂原理图绝对没有问题,但是碰到复杂的时序图就晕了! 回复 61# 杭州李云 ...


那很有基础的。静下心来看会没有问题的。时序图其实一旦掌握也很简单(废话,什么东西不是掌握了就简单 )。

论坛徽章:
0
76 [报告]
发表于 2012-01-01 15:13 |只看该作者
李老师,请问下阅读代码有什么好方法啊,是整个项目的代码,很多,内部互相调用很繁杂,而且有c、汇编。不知道您的书里面是否有介绍啊

论坛徽章:
0
77 [报告]
发表于 2012-01-01 15:27 |只看该作者
20081745 发表于 2012-01-01 15:13
李老师,请问下阅读代码有什么好方法啊,是整个项目的代码,很多,内部互相调用很繁杂,而且有c、汇编。不知 ...


通过使用Source Insight这样的工具,有助于方便代码的阅读。但是,对于模块化不清晰的项目,我认为没有什么好的方法,只能是硬着头皮看。在看的过程中,可以先专注于某一个模块(尽管模块化不清晰,但仍应能看到模块的影子)。

论坛徽章:
0
78 [报告]
发表于 2012-01-04 16:24 |只看该作者
我有几个问题:
1.设计模式的c实现,我看到的设计模式的书都是基于面向对象语言的,而嵌入式工程师工作中用的都是c,所以请问李老师有没有这方面的资料或者经验?
2. 我们现在做的是终端,用的是高通的架构,感觉自己越来越多变成了一个debug工程师,而且很多的debug还需要高度依赖于高通的工程师,因为时间的关系(没有时间让我们慢慢看代码),一些代码的细节只有他们才知道在哪里改,我相信很多中国的工程师都是从事这样的工作,长此下去怕是水平很难提高。李老师对此有没有什么看法?
3. 用不用学c++?

论坛徽章:
0
79 [报告]
发表于 2012-01-04 16:26 |只看该作者
对了,还有问题,李老师你书中讲的qBench指的是什么?DVD光盘中有什么内容?

论坛徽章:
0
80 [报告]
发表于 2012-01-04 20:25 |只看该作者
andloani 发表于 2012-01-04 16:26
对了,还有问题,李老师你书中讲的qBench指的是什么?DVD光盘中有什么内容?


指的是书中所介绍的开发环境(embedded项目和ClearRTOS所采用的)、设计方法和质量保证方法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP