找回密码
 注册
搜索
查看: 5088|回复: 44

[讨论] 从ASSERT之多---看MTK的代码是否垃圾

[复制链接]
发表于 2010-7-19 11:05:32 | 显示全部楼层 |阅读模式
MTK之所以用了这么多的ASSERT,归根结底就是错误的选择了用
#define  MICRO
而不是用
#define MICRO   XXXX
发表于 2010-7-20 10:29:22 | 显示全部楼层
围观。。。。。。。。。。。。
点评回复

使用道具 举报

发表于 2010-7-20 08:53:06 | 显示全部楼层
哈全,路过
点评回复

使用道具 举报

 楼主| 发表于 2010-7-20 08:11:01 | 显示全部楼层
以下是引用aromar在2010-7-19 17:23:17的发言:
楼主刚入MTK吧。 人家做的是turn key。 为了这个目标,牺牲一些不合理的是必须的, 否则mtk早都退出市场了。 考虑问题全面些,OK?

另外,我说的这两点,跟MTK是否TURN KEY没有任何关系。

我指出的只是MTK的不足之处,没有否定MTK。

事实上,我看好MTK,甚至超过ANDROID,但是MTK的代码积重难返,把所有芯片都集成在一个代码里面,导致6218  6205等早已淘汰的方案的代码都在里面,确实影响阅读。MTK有理由做到更快,更强,更高。

只是目前由于时间和竞争的关系,导致无法解决当初规划时的代码问题。

当初MTK可能自己都没想到自己会这么火
点评回复

使用道具 举报

 楼主| 发表于 2010-7-20 08:04:57 | 显示全部楼层
如果这样,MTK的DH没必要招大学生了,招个初中毕业生就行了

只要打打开关
点评回复

使用道具 举报

发表于 2010-7-19 17:23:17 | 显示全部楼层
楼主刚入MTK吧。 人家做的是turn key。 为了这个目标,牺牲一些不合理的是必须的, 否则mtk早都退出市场了。 考虑问题全面些,OK?
点评回复

使用道具 举报

 楼主| 发表于 2010-7-19 16:08:20 | 显示全部楼层
fm_drv\MT6189A1_drv.c
fm_drv\MT6188A1_drv.c
fm_drv\AR1000_drv.c
fm_drv\MT6616_drv.c
fm_drv\MT6616_rds.c


MTK的编译真是NC,比如编译FM,我们只用其中一个,但是MTK把不用的都编译了,时间能不长吗!

类似的,还有CAMERA等等。
点评回复

使用道具 举报

发表于 2010-7-19 12:37:31 | 显示全部楼层
请大家详解?
点评回复

使用道具 举报

 楼主| 发表于 2010-7-22 09:55:42 | 显示全部楼层
以下是引用michaelnami在2010-7-22 9:38:07的发言:
但不正是定义多                所以MTK才全面吗 打开开关就多了一种新功能


那DH只需要招小学生就可以了,不懂的地方,打个电话给MTK,喂喂喂,我需要XXX功能,请问需要打开哪个开关?在哪个文件?

Ooo,好,知道了,

一分钟改好,半小时编译,

喂,老板,可以出货了。
点评回复

使用道具 举报

发表于 2010-7-22 09:38:07 | 显示全部楼层
但不正是定义多  所以MTK才全面吗 打开开关就多了一种新功能
点评回复

使用道具 举报

发表于 2010-7-21 23:19:40 | 显示全部楼层
以下是引用hztianxie在2010-7-21 11:03:20的发言:
MTK好有很多事复制文件夹的
我始终想不出这样做的意义是什么,我们要取钞票,但是放钞票的保险箱的钥匙却放在另一个保险箱里,我们要先开第一个保险箱,拿出钥匙,再去开放钞票的保险箱

我始终不明白这么做有什么意义,不如直接用

MTK的做法是不是让人费解?

Mmi_features_camera.h (plutommi\customer\custresource):                                                                #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):                                                                #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):                                                                #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):                                                                #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):                                                                #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):                                                                #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):                                                                #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):                                                                #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):                                                                #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):                                                                #define __CAMERA_FEATURE_WB_AUTO__

这样写也是有好处的,资源工具编译的时候可以保留一个备份,知道可以当前的资源是根据哪个feature进行编译的。查一些资源和代码不匹配的问题比较有用。LZ仔细考虑一下就知道了
点评回复

使用道具 举报

 楼主| 发表于 2010-7-21 14:05:47 | 显示全部楼层
我其实有点完美主义,我不能容忍自己手下出垃圾代码,所以每次做项目,我都要多多少少改动其风格的。只不过之前只是C51的(大家也不要小看51,51做的事情可多了,高清视频,音频,文本都可以做,可以播放H264格式的高清电影),不涉及什么MAKE的  BOOTLOAD什么的,所以对MTK,一直不敢大幅度的修改,只是局部优化。

我向来认为,你改动一个程序的风格成功了,按照你的意思改成功了,才叫理解了这个系统。
点评回复

使用道具 举报

发表于 2010-7-21 13:58:09 | 显示全部楼层
一开始也有这些疑问:庞大的宏定义、考来考去。。。
但是做的开发不多,也不知MTK是出于什么方面考虑的
做久了适应了就不去问为什么了。[em11]

楼主的精神值的学习,赞一个,[em08][em08]
点评回复

使用道具 举报

 楼主| 发表于 2010-7-21 13:16:40 | 显示全部楼层
以下是引用mobiletech在2010-7-21 13:09:18的发言:
复制文件是方便版本管理,你没有用过clearcase当然这么说。
MTK其实软件是强项,以前有pp-com公司,专门做软件,都垮了


方便版本管理?

请具体介绍下用法好伐?

我实在不清楚复制文件到底有什么意义。

另外我用过clearcase,但是不代表我懂clearcase
点评回复

使用道具 举报

发表于 2010-7-21 13:09:18 | 显示全部楼层
复制文件是方便版本管理,你没有用过clearcase当然这么说。
MTK其实软件是强项,以前有pp-com公司,专门做软件,都垮了
点评回复

使用道具 举报

发表于 2010-7-21 11:25:05 | 显示全部楼层
不管怎么样,楼主看代码精神值得佩服,能够看懂代码并且提出质疑的更值得佩服。
现在很多号称MTK的开发人员从来没有也不愿意考虑这些问题。
攒一个。
点评回复

使用道具 举报

 楼主| 发表于 2010-7-21 11:03:20 | 显示全部楼层
MTK好有很多事复制文件夹的
我始终想不出这样做的意义是什么,我们要取钞票,但是放钞票的保险箱的钥匙却放在另一个保险箱里,我们要先开第一个保险箱,拿出钥匙,再去开放钞票的保险箱

我始终不明白这么做有什么意义,不如直接用

MTK的做法是不是让人费解?

Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
点评回复

使用道具 举报

 楼主| 发表于 2010-7-21 11:00:53 | 显示全部楼层
MTK好有很多事复制文件夹的
我始终想不出这样做的意义是什么,我们要取钞票,但是放钞票的保险箱的钥匙却放在另一个保险箱里,我们要先开第一个保险箱,拿出钥匙,再去开放钞票的保险箱

我始终不明白这么做有什么意义,不如直接用

MTK的做法是不是让人费解?

Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
Mmi_features_camera.h (plutommi\customer\custresource):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\customer\custresource\pluto_mmi):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
MMI_features_camera.h (plutommi\mmi\inc):        #define __CAMERA_FEATURE_WB_AUTO__
点评回复

使用道具 举报

 楼主| 发表于 2010-7-21 10:36:40 | 显示全部楼层
以下是引用takumi在2010-7-20 23:49:22的发言:
说MTK NC的其实才是NC。
FM的代码的编译量很小。而且认证的也就这么点。
camera是直接在makefile内指定了路径的。只会编译你选择的。
这么大一个系统,架构已经做得不错了。
看看展讯的,你会觉得无语。
连tool都不会做。


如果真的只在MAKEFILE里指定你选择的,那为什么要在MAKE文件夹下的路径里面都写上?

这样会造成不熟悉的人困扰

好比程序里3个文件,

A文件:#define  USE_A

B文件“
#UNDEF USE_A

#DEFINE  use_b

C文件:

#ifdef  USE_A

xxxx

#endif

那么我们在看代码的时候,我们在SOURCEINGIGHT里看的时候,到底是定义了还是没定义
一看A文件是定义了,但是B文件没有定义

那么到底是定义了还是没定义

更令人烦恼的时候,有时候肯定A文件整个程序根本就没INCLUDE,也就是说根本是个无用的文件,比如芯片A用到的,但是芯片B是不会用到的,这样会使我们看代码的时候很郁闷


我个人倾向的方案是拒绝使用#define   xxxx
而用#define  XXXX   0/1

这样是否定义了,我们一看就明白

顶多加上

#if (chip==mtk6225)
#define USE_A  0
#elif(chip==mtk6223)

#define USE_A  1

#endif

这样不是非常清楚嘛。
点评回复

使用道具 举报

 楼主| 发表于 2010-7-21 10:23:21 | 显示全部楼层
以下是引用takumi在2010-7-20 23:49:22的发言:
说MTK NC的其实才是NC。
FM的代码的编译量很小。而且认证的也就这么点。
camera是直接在makefile内指定了路径的。只会编译你选择的。
这么大一个系统,架构已经做得不错了。
看看展讯的,你会觉得无语。
连tool都不会做。


80分虽然比65要好,但是还是80分,难道就不能上升到90分?

MTK完全有可能从80分上升到90分,

你为什么要求这么低呢,只要80分就很好了?

MSTAR的手机方案我不是很清楚,但是在TV领域,MSTAR的方案的架构要比MTK好很多。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-26 00:04 , Processed in 0.050380 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表