6874|18

7815

帖子

56

TA的资源

裸片初长成(中级)

楼主
 

谈一谈,你如何工作(或者说如何高效解决卡壳的问题) [复制链接]

在工作中,最有挑战性,也是真正耗费我们精力和时间的问题,就是那些卡壳的问题。
它们就像一条水路上,偶尔跌荡起来的几个点——尽管从总体时间上来看,并不多,可能只占很小一部分比例,但是,它们却是耗费的关键.
犹如CPU的功耗关键在于被唤醒的时间。

讨论问题不说空话,我以自己这阵子工作中遇到的问题来谈吧。

我现在的工作,是一款TI 的达芬奇系列的多媒体处理器,OMAP3系列,同时进行的是两款兼容的芯片的开发板,我的是DM3730,同事那边是OMAP3530。我的意思是,我们基本当这两个是一回事。

然后,我的工作是负责几个驱动——当然了,不是底层驱动那种复杂的东西,我做不了也没轮到我做。

简单的说就是,利用LINUX系统提供的接口函数,写一些 诸如 串口传输协议 网络socket编程一类的 子程序,以备以后调用。

从顺序上来说,我正式转入写这些驱动,首先是 串口,然后是GPIO,接着是现在的 网络编程(socket编程)。

其中,串口做了两个星期,当然也因为那两个星期里各种杂事多,但是不可否认的是,这个子程序的确花费了我不少精力。
GPIO做了一个星期,但是始终是可以写1写0,然则却没能解决输入问题,至今搁浅,因为实在没辙,不想浪费时间,于是转而进入socket编程。
socket编程比较幸运的是,在一本书上找到一个很不错的例程,经过简单修改,它可以完成单次的CS连接,传输数据。

可是也有好些问题,目前卡住,大致卡了两天。

由于这不是一个技术讨论贴,只是讨论 技术以外 的问题,应该说是从 另一个角度,比如说 策略,解决方式 上去考虑如何更好地应对这些 关键性的卡壳问题。

从串口开始,到socket,这些都是我完全没有接触的东西,每一个任务都是一个全新的东西,我总是从寻找例程,然后以它为基础,修改看懂程序这样一条线往下走。
然后调试,遇到各种问题的时候,只能大量地百度搜索,以期找到解决方案。
但是,很多时候并没有这么幸运。
比方说都是ARM+LINUX,网上的内容绝大多数都以什么S3C2410,6410等芯片为主,虽说有很多东西有共通之处,但是到了具体细节却完全两回事。
这一点在GPIO上记忆尤深。

似乎2410用的一套API完全是基于它的头文件来做。
我自然也想用自己开发板上自带的OMAP3的头文件来做,最惨的是,我连这个头文件都无法加载。
于是,我总是不断地翻百度,却不断地感叹,又是OMAP3,要么就是系统自带的GPIO.H。很可惜,这个我也没办法加载,直到后来,tuxygood教了我怎样重新编译一个新内核,并用加载驱动模块的方法,这个gpio.h终于让我用上了。(很可惜,那个问题始终没有解决。)

当然了,这种事情试多了,我就知道如何分析哪些东西值得仔细研读,那些东西可以直接忽略。
——我吸取的教训之一:跟只找到少得可怜的真正相关的资料相比,更糟糕的事情,你还找到了很多其实没多大关联的资料。因为你的思路会被它们搅黄,你的时间会被大量浪费。

这是浪费时间和白费精力的一种情形。

另一种是,有时候,你找到的资料可能非常完整,甚至是 教科书 式的资料,假如你仔细阅读,你可能会很深入了解这一部分的东西,但是,你会花费很多很多时间——学一门课的时间就不少吧。
但是,里面可能只有一点对你当前问题有用的(甚至更糟糕的时候,是一点都没有。)
可是,并不是那么容易地通过一目十行你就可以搜索到它——如果是,那给我一笔钱买下当今世界所有最好最权威的LINUX ARM书籍就好了。

在这种时候,你可能会陷入一个两难抉择:
一方面,你很担心这种工作耗时巨大,甚至毫无所获,另一方面,你很清楚,这些问题如果你不系统性了解,而总是试图通过网络寻找相关问题相关解决办法,这是一个治标不治本,甚至说,经常连标都治不了。这个时候,很困难。

而更常见更糟糕的情况是:
在你精疲力尽,眼睛疼得不像话,无奈之际,你想,那我还是扫一扫这本 教科书 吧,至少也许我能确定里面没有我想知道的条目和知识点。
但是这种时候很明显,你的精神和专注程度已经变得很低下。
而你还只是打算 扫一下而已,在这种时候,你可能只是加重了自己的疲劳。

如果这么说,问题似乎变得很简单了,那我们就换一下做事的时间和顺序就好了嘛?!
我们先阅读那些教科书式的资料(他们有的真的很棒。很多是LINUX OS系统编写者手笔),把问题彻底搞明白了,系统性学习一番再去看百度不就好了嘛?

很可惜,有时候,也不见得有用。
比方说,在看socket编程时,我参考了网上一个 署名 龙飞 的人写的很详细的将近十几二十篇的socket详细教程,我敢说,网上能找到的,至少中文,不可能有比这更详细的了。
可是坦白说,不知道真的是我眼光不够,没找到自己需要的呢?还是,
对的,有时候,写资料的人其实很厉害,只可惜他和你关注的地方不一样,于是,你在他的大海里搜索你想要的那根针,却一无所获,这不是他垃圾,也不是你没用心,而是你找错了地方。
(问题是,谁能告诉我,或者说,我该怎么找到那个 对的地方呢?)

这次就是这样,我很关注一个问题,如何 实现 非阻塞socket链接,很可惜,我没找到。
我那本参考书上教的两种方法都不管用。

写着写着,不小心写成了流水帐,很晚了,再写也很难写出什么总结。
所以我决定就这么滴吧。
我会再次通读,把一些我认为关键的东东选大字号。

PS:这不是一篇诉苦贴,也不想博取同情或者听到一句什么 辛苦了 之类的话。(虽然我表示很感激,但那真的是没用的东西。)
我期待听到你们的看法和一些过来人的意见——我想,大家曾经都是这么走过来的吧?

最新回复

!!!!!!!!!!  详情 回复 发表于 2012-5-8 18:50
点赞 关注
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复
举报

5015

帖子

13

TA的资源

裸片初长成(初级)

沙发
 
辛昕现在上班几个月了?我还记得你那个去看公司的帖子。
其实做工程大家的经历都很相似,每一个工程都会面对一个新的挑战,做的都是新的东西,当磕磕碰碰把原型整出来了。回头再看,发现自己只是解决了所遇到的问题(更多是是勉强搞定了,还不能算解决),自己对这个工程所涉及的核心知识却是不甚了解。你有想法去主动的把问题所需要的知识学习一遍,但是实际上你确是没有时间的,会有新的工作赶着往前走。我觉的这样只是完成工作,只是一种职业技巧,但是对个人的事业规划未必有利。其实,也是跟你一样苦恼
 
 
 

回复

1万

帖子

16

TA的资源

版主

板凳
 

我遇到困难时,就绕过去

不要发生正面碰撞,从后边慢慢解决。就好象吸一支烟,喝一口茶,然后想别的问题,但始终不放弃这个问题。
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

4
 

回复 沙发 wstt 的帖子

再过一个星期左右,可以拿第四个月工资了。
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

1万

帖子

16

TA的资源

版主

5
 

回复 4楼 辛昕 的帖子

幸福啊
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 
 

回复

732

帖子

0

TA的资源

纯净的硅(高级)

6
 
工作之中遇到问题 正常 。

我的经验,遇到问题的时候,主要还是要依靠自己去思考。

遇到问题就baidu、找一些例程修改,我觉得不是一个很好的办法。
虽然短时间内 可以把项目进行下去,可对自己却并没有实质性的提高。

所以俺一般在遇到问题的时候 比如代码有问题跑不下去
就先分析  是什么原因导致程序运行不了?
找不到原因的话 就查阅资料或者能用的代码 为什么别人的能用 我的代码跟别人的代码区别在哪儿?
找到问题的源头 下次才会避免再出同样的错误。
个人签名学习的乐趣在于分享。
 
 
 

回复

5015

帖子

13

TA的资源

裸片初长成(初级)

7
 

回复 板凳 ddllxxrr 的帖子

总是想先把问题摆平,以后再进一步分析,但是一到后面就没有时间再回头去看了
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

8
 

回复 6楼 tx_xy 的帖子

说到对比例程,那倒还真管用,只是经常做的东西,找不到直接可以对比的例程。
这个悲剧。
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

9
 

回复 7楼 wstt 的帖子

嗯,能管的问题不多
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

2130

帖子

0

TA的资源

五彩晶圆(中级)

10
 
卡,真卡
 
 
 

回复

732

帖子

0

TA的资源

纯净的硅(高级)

11
 
现在网络资源成千上万   能够很快找到自己需要的东西 也是一种能力哈 。。。
个人签名学习的乐趣在于分享。
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(高级)

12
 
现在网络资源虽成千上万,但是有些方面的中文资料很少的,适合你的资料就少之更少啦。

我也经常遇到这些问题,也试过像楼主那样,凡是遇到不懂的,先baidu、google下看看有没有跟自己遇到同样问题的网页,有的话就好办啦,参考人家对比自己慢慢查出问题的所在;如果找不到相应的资料时,就唯有逐步调试(例如用点灯来测试)。

恩,还有当我们要接触一个新的领域,而且这领域的网上资料很少的话,又想更快弄明白的话,可以找找厂商技术支持。(其实呢,我也不知为何,不到最后都不会去找技术支持的,总想自己去解决)

这是我自认为的解决办法,但是我发现自己解决问题好慢啊,求更好跟快的解决方法
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

13
 

回复 12楼 sai明 的帖子

有的技术支持真不敢恭维,
有的技术支持则比较惨
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

14
 
比方说,买的板子是TI的,说找TI吧,可惜,有的操作其实跟LINUX有关系,那就没辙了,LINUX是免费的,人家不提供技术支持。
找卖开发板的,又实在郁闷的不行。
那货(做人的基本素质,我就不点它名子了)
那货真够挫的。
最早有过三次登门寻求技术支持,问的问题,没一个能解决,其实那不是很复杂的问题,后来还是我们自己搞定的。
当然了,其中有一个解决的启发性信息,倒是跟它们要的,那是他们以前解决的一个客户问题留下的,他们跟我提到这个事情,我抱着试试的想法,跟他们要回来的。

然后,他们做的板子也很挫。
最初的上网问题最后被证实就是硬件问题,而且修了几个月没修好。居然搪塞为 板子上没有用铁箱盖着,进灰尘了。

然后,经常电话骚扰,一天控制在3次以内,GPIO的问题,至今没答复,大致有半个月了。

所以,很多时候,有的技术支持实在不敢恭维。

GPIO的问题试过寻求过TI的亚洲代理,最初跟它要一个GPIO例程,因为以前玩430的时候,记得例程很多,可是这款处理器的自己找了一个下午没找着,才写邮件。
对方给了一个不知道是什么的GPIO例程,没用上。
后来再问细一些,对方说,这是LINUX系统的问题了,这个没给钱人家当然就不管了。

这叫做 有的技术支持比较惨,当然这回惨的不是别人,是我。
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

255

帖子

0

TA的资源

一粒金砂(高级)

15
 
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

16
 

跟楼主有同感啊。

 
 
 

回复

1469

帖子

0

TA的资源

五彩晶圆(中级)

17
 
老大好啊...到了7月小弟也要工作了...惶恐哪.....
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(中级)

18
 
!!!!!!!!!!
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

19
 
汗,这样写,无法回答.......
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表