棋子 · 2019年12月18日

使用RVDS 4.0与OTime O3编译时,应用程序崩溃

我正在使用RVDS 4.0试用版。当我使用OTime O3编译器标志编译应用程序时,应用程序崩溃。但是,如果我指定O2,则它可以正常工作。

我的编译器标志是:

-DRVCT -DDYNAMIC_APP -DBREW --cpu = ARM926EJ-S --apcs = / ropi / interwork / norwpi -c -Otime -O2 --littleend --split_sections -zo

我的链接器标志是:--

split --reloc --entry AEEMod_Load --first AEEMod_Load --callgraph

请告诉我是否需要在编译器/链接器标志选项中指定其他内容

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2019年12月18日

可能有以下几种解释:

使用“ -O3”进行编译时,默认情况下,编译器使用多文件编译。在多文件编译会引起问题的地方,通常会在编译时这样做,尽管可能值得添加“ -no_multifile”开关来进行检查。如果您一次只编译一个文件,则没有任何区别。
如您所料,“-O3 -Otime”将生成比“ -O2 -Otime”更大的代码,因为它以代码大小为代价积极地优化了速度。因此,您的二进制图像可能已超出页面边界或超出了其他一些大小限制。
请查看RVCT参考手册,以了解您的选件的副作用是否会导致您在特定系统中看到的问题。“ -Otime”记录在[url =“ http://infocenter.arm.com/hel... ”]此处[/ url]中,而“ -O3”记录在[url =“ http://infocenter.arm.com/hel... ”]此处[/ url]。

你的回答