硬汉嵌入式论坛

 找回密码
 立即注册
查看: 236|回复: 4
收起左侧

[STM32H7] H750启动卡死

[复制链接]

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2025-7-1 12:04:47 | 显示全部楼层 |阅读模式
硬件信息: CPU:STM32H750,内部FLASH:2M,RAM:1M,外部FALSH: 32M,SDRAM:32M
内部Flash烧录bootloader, 主要作用为转跳到外部Flash运行代码,  外部Flash放置6M左右主镜像运行
当前代码配置能正常转跳运行, 网口配置也正常能使用, 主镜像基础代码只有500K左右
当添加了三方的静态库链接和接口(C/C++)(主镜像大小为1.5M)后bootloader转跳到住镜像时会直接卡死, 通过分析是卡死在启动汇编中的 "bl __libc_init_array", 屏蔽掉这句之后能正常转跳但是主镜像运行起来之后会导致系统运行异常卡死
__libc_init_array卡死会是什么原因导致的

启动汇编
```
    .section  .text.Reset_Handler
  .weak  Reset_Handler
  .type  Reset_Handler, %function
Reset_Handler:
  ldr   sp, =_estack      /* set stack pointer */

/* Call the clock system initialization function.*/
  bl  SystemInit

/* Copy the data segment initializers from flash to SRAM */
  ldr r0, =_sdata
  ldr r1, =_edata
  ldr r2, =_sidata
  movs r3, #0
  b LoopCopyDataInit

CopyDataInit:
  ldr r4, [r2, r3]
  str r4, [r0, r3]
  adds r3, r3, #4

LoopCopyDataInit:
  adds r4, r0, r3
  cmp r4, r1
  bcc CopyDataInit
/* Zero fill the bss segment. */
  ldr r2, =_sbss
  ldr r4, =_ebss
  movs r3, #0
  b LoopFillZerobss

FillZerobss:
  str  r3, [r2]
  adds r2, r2, #4

LoopFillZerobss:
  cmp r2, r4
  bcc FillZerobss

/* Call static constructors */
    bl __libc_init_array
/* Call the application's entry point.*/
  bl  main
  bx  lr
.size  Reset_Handler, .-Reset_Handler
```


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2025-7-1 17:37:13 | 显示全部楼层
__libc_init_array应该是包含了RW变量的初始化。
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2025-7-2 09:14:17 | 显示全部楼层
那这种问题应该怎么解决, 是要修改静态库还是其他方式?
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2025-7-2 09:42:08 | 显示全部楼层
设备中的SDRAM有没有可能在调用__libc_init_array之前进行初始化
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2025-7-2 11:07:44 | 显示全部楼层
eMaskTh 发表于 2025-7-2 09:14
那这种问题应该怎么解决, 是要修改静态库还是其他方式?

查了下,这个主要是C/C++库的初始化,比如你用的libc或者newlib,或者其它的库。是对他们的初始化。并且你的的程序里面调用到相关API的话,会有影响。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 04:21 , Processed in 0.038559 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表