qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1382回复:7

请问用PB做release OS的时候怎么针对某一个文件把优化给关掉?

楼主#
更多 发布于:2004-12-27 09:58
我用的芯片是ARMV4I,发现在编译retail版的时候,
原本好好的C代码被编成了乱七八糟的东西,
看汇编发现甚至调用的函数都和我要求的不一样,
不知道是什么原因。
现在希望能把那个相应的文件的优化给关掉,
请各位大虾指教。
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-27 13:24
好像只是在函数入口的地方堆栈操作变了,记不太清了,不过没几条阿,怎么会是乱七八糟的?
根据地的兄弟们,团结就是力量
qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-27 15:18
一般的优化是把函数调用,堆栈使用,以及逻辑代码进行优化,即使出错也是像没有保护某个寄存器,以及把eax优化成了ax这样的而已。
但是现在出的问题确实是非常奇怪,优化以后的汇编代码和c代码在有些地方根本就对不上号,好一些的地方也是变成了完全不能完成需要的指令。是不是PB对arm指令的优化做的非常差?
有哪位仁兄遇到过相似的问题吗?
我是希望把出错的文件的优化给关掉。
joyfly
驱动小牛
驱动小牛
  • 注册日期2002-07-02
  • 最后登录2009-09-17
  • 粉丝0
  • 关注0
  • 积分319分
  • 威望32点
  • 贡献值0点
  • 好评度31点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-27 15:59
在源代码里可以用
#pragma optimize("",off)
...
#pragma optimize("",on)

把你不想优化的代码包含起来.

在SOURCES文件里设上WINCECOD=1,编译的时候会产生汇编文件
www.cnemb.com
qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-28 07:32
在源代码里可以用
#pragma optimize("",off)
...
#pragma optimize("",on)

把你不想优化的代码包含起来.

在SOURCES文件里设上WINCECOD=1,编译的时候会产生汇编文件

感觉应该没有问题了,我试试看。
谢谢joyfly!
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-28 13:40
"优化以后的汇编代码和c代码在有些地方根本就对不上号,好一些的地方也是变成了完全不能完成需要的指令。是不是PB对arm指令的优化做的非常差?"


有些东西编译出来好像是有点儿怪,不过都是对的,你要注意有的代码(主要是一些函数)被编译成THUMB指令了,是16位的。
根据地的兄弟们,团结就是力量
qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-12-28 15:20
哦,情况和你说的可能有点不一样,那些不是Thumb代码,无论是静态看还是动态跟踪,那些代码都和C代码相去甚远,甚至有的地方连调用的函数都不一样,所以我才怀疑是优化出了问题。
找不到解决的办法,只好绕过去了。
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-12-29 13:49
嗯,还有一种可能是链接的时候库的顺序给得不对好像也有影响,特别是几个库里面有同名函数,CE的编译器好像允许这样,好像是使用先找到的。你再看看,找到原因告知:)
根据地的兄弟们,团结就是力量
游客

返回顶部