小编use*_*988的帖子

什么时候使用.ARM.exidx

我正在使用mbxxx目标处理Contiki 2.7.在构建我的代码时,链接器抱怨.ARM.exidx和.data部分重叠.在使用链接器脚本contiki-2.7/cpu/stm32w108/gnu-stm32w108.ld进行了一些修补之后,我通过替换修复了问题:

__exidx_start = .;
__exidx_end = .;
Run Code Online (Sandbox Code Playgroud)

有:

.ARM.exidx : {
    __exidx_start = .;
    *(.ARM.exidx* .gnu.linkonce.armexidx.*)
    __exidx_end = .;
} >ROM_region
Run Code Online (Sandbox Code Playgroud)

后来当我试图通过使用objdump -h看到其他一些示例应用程序的标题列表时,我没有找到这个特定的.ARM.exidx部分,而它存在于我的应用程序中.谷歌搜索.ARM.exidx让我知道它用于一些c ++异常处理.由于我的代码是纯C代码,为什么这部分出现在我的代码中?通常.ARM.exidx存在于代码中,它的实用性是什么?

================================================== ================================

嗯不,我没有任何这样的编译器选项.我实际上正在使用AxTLS api并撕掉证书处理代码并将其移植到contiki.在进一步的挖掘中,我在bigint实现中发现了一个可疑的行为.简而言之......这是bigint.c文件中函数的主体:

static bigint *bi_int_multiply(BI_CTX *ctx, bigint *bia, comp b)
{
   int j = 0, n = bia->size;
   bigint *biR = alloc(ctx, n + 1);
   comp carry = 5;
   comp *r = biR->comps;
   comp *a = bia->comps;

   check(bia);

   /* clear things to start with */
   memset(r, 0, ((n+1)*COMP_BYTE_SIZE));


   do …
Run Code Online (Sandbox Code Playgroud)

arm stm32 linker-scripts codesourcery contiki

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

arm ×1

codesourcery ×1

contiki ×1

linker-scripts ×1

stm32 ×1