[STM32H7] 静态库选择了弱函数而不是我定义的函数。

[复制链接]
47|0
地瓜patch 发表于 2025-10-5 18:39 | 显示全部楼层 |阅读模式
用NUCLEO H743ZI2开发板进行开发,创建了一个STM32可执行项目如下:并按要求配置设备,项目运行良好,没有任何问题。
6068268e24a3a735f6.png
现在我想将此项目改为静态库,以便作为其他项目的基础。如下所示:

2631868e24a5452a67.png
然后创建了一个新的STM32可执行项目如下(目标项目类型:空):并将其与第一个项目的静态库链接起来。
7780468e24a6698be1.png
可执行项目中有一个包含函数的临时文件,仅作为内容填充,我使用的是静态库项目中的主函数。
2933768e24aa0891c7.png
现在当我运行新的可执行文件时,程序进入了:
__weak void HAL_MspInit(void)
位于文件stm32h7xx_hal.c中,这是一个空函数,而不是进入:
void HAL_MspInit(void)
位于文件stm32h7xx_hal_msp.c中,该文件包含实际需要的代码。

我看到过一些讨论提到使用标志-ffunction-sections可以解决问题,但没啥用。



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

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

1932

主题

15224

帖子

31

粉丝
快速回复 在线客服 返回列表 返回顶部