梦书之家(移动开发)

你有一个苹果,我有一个苹果,我们交换一下,一人还是一个苹果;你有一个思想,我有一个思想,我们交换一下,一人就有两个思想。 ——肖伯纳

导航

BREW编程有感(1)

最近用ARM 编译器(ADS 1.2)来编译链接(动态模块)程序,出现以下的错误:
Error: L6265E:Non-RWPI Section XXX.o<.bss> cannot be assigned to PI Exec region ER_ZI.
Error: L6248E:XXX.o(i.myfunc) in PI region 'ER_RO' cannot have address type relocation to .bss$2 in PI region 'ER_ZI'.
如果用GCC-ARM编译器编译的话,不会出现以上的错误的。
如果是生成静态链接库的话,也不会出现以上的错误。

找了好久,以为是这个错误:http://www.arm.com/support/faqdev/1240.html,改了,还是出现错误,后来才发现原来是几个函数里面(一个小循环里面)使用了静态变量,晕死我了。
我初步检查了下,发现这几个变量根本没有必要使用静态变量,而且没有注释,汗!
这个例子也给我一个启示:
以后,在函数内部不得不使用静态变量的地方,最好写个注释,说下为什么这么做?或者可能的替代方案。
如果不这样做,以后有人在阅读以及修改我写的代码的时候,估计都在心里骂我了。

posted on 2007-11-20 10:56  梦书  阅读(1433)  评论(2编辑  收藏  举报