极术小姐姐 · 2020年02月03日

Processor halt in __libc_init_array assembler function

Hi,

I'm working with dual ARM Corte-A9 in FPGA Zynq7000. I have three diferents hw with same software ( .elf and same files configuration linker script ). My problem is that SW works fine only in one hw (1 of 3). In other case, the processor halt in __libc_init_array function.

  • The application runs in DDR PS memory (1023 MB)
  • The aplication baseaddr is 0x100000
  • In linker script, the stack size is 100 MB

The content of the __libc_init_array function is:

void

__libc_init_array (void)

{

size_t count;

sixe_t i;

count = __preinit_array_end - __preinit_array_start;

for(i=0; i < count;i++)

__preinit_array_start[i]();

_init();

coun = __init_array_end - __init_array_start;

for(i=0; i < count; i++)

__init_array_start[i](); // The ARM halt here when I = 10.

}

Can someone help me?

How can I debug this issue?

Why only works in one HW?

Thanks a lot.

1 个回答 得票排序 · 时间排序
棋子 · 2020年02月03日

yes, is the same SW. I have tried both modes (QSPI and JTAG). The FSBL is the same but I have always tried JTAG debugger with empty memory flash and in this case, I don´t use the FSBL (I use the SDK scripts... ps7_init, ps7_post_config to initialize ARM).

你的回答
关注数
1
收藏数
0
浏览数
2009
棋子
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息