版块
论坛
喜欢
话题
应用
搜索
登录
注册
qwdrv的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=78226
请问用PB做release OS的时候怎么针对某一个文件把优化给关掉?
我用的芯片是ARMV4I,发现在编译retail版的时候,原本好好的C代码被编成了乱七八糟的东西,看汇编发现甚至调用的函数都和我要求的不一样,不知道是什么原因。现在希望能把那个相应的文件的优化给关掉,请各位大虾指教。
回复
(
7
)
2004-12-27 09:58
来自版块 -
Wince 程序开发
◆
◆
表情
告诉我的粉丝
提 交
wxl_50685330
:
嗯,还有一种可能是链接的时候库的顺序给得不对好像也有影响,特别是几个库里面有同名函数,CE的编译器好像允许这样,好像是使用先找到的。你再看看,找到原因告知:)
(2004-12-29 13:49)
回复
qwdrv
:
哦,情况和你说的可能有点不一样,那些不是Thumb代码,无论是静态看还是动态跟踪,那些代码都和C代码相去甚远,甚至有的地方连调用的函数都不一样,所以我才怀疑是优化出了问题。 找不到解决的办法,只好绕过去了。
(2004-12-28 15:20)
回复
wxl_50685330
:
"优化以后的汇编代码和c代码在有些地方根本就对不上号,好一些的地方也是变成了完全不能完成需要的指令。是不是PB对arm指令的优化做的非常差?" 有些东西编译出来好像是有点儿怪,不过都是对的,你要注意有的代码(主要是一些函数)被编译成THUMB指令了,...
(2004-12-28 13:40)
回复
qwdrv
:
在源代码里可以用 #pragma optimize("",off) ... #pragma optimize("",on) 把你不想优化的代码包含起来. 在SOURCES文件里设上WINCECOD=1,编译的时候会产生汇编...
(2004-12-28 07:32)
回复
joyfly
:
在源代码里可以用 #pragma optimize("",off) ... #pragma optimize("",on) 把你不想优化的代码包含起来. 在SOURCES文件里设上WINCECOD=1,编译的时候会产生汇编...
(2004-12-27 15:59)
回复
qwdrv
:
一般的优化是把函数调用,堆栈使用,以及逻辑代码进行优化,即使出错也是像没有保护某个寄存器,以及把eax优化成了ax这样的而已。 但是现在出的问题确实是非常奇怪,优化以后的汇编代码和c代码在有些地方根本就对不上号,好一些的地方也是变成了完全不能完成需要的指令。是不是PB对arm指...
(2004-12-27 15:18)
回复
wxl_50685330
:
好像只是在函数入口的地方堆栈操作变了,记不太清了,不过没几条阿,怎么会是乱七八糟的?
(2004-12-27 13:24)
回复
qwdrv
加关注
写私信
0
关注
0
粉丝
991
帖子
返回顶部