用NUCLEO H743ZI2开发板进行开发,创建了一个STM32可执行项目如下:并按要求配置设备,项目运行良好,没有任何问题。
现在我想将此项目改为静态库,以便作为其他项目的基础。如下所示:
然后创建了一个新的STM32可执行项目如下(目标项目类型:空):并将其与第一个项目的静态库链接起来。
可执行项目中有一个包含函数的临时文件,仅作为内容填充,我使用的是静态库项目中的主函数。
现在当我运行新的可执行文件时,程序进入了:
__weak void HAL_MspInit(void)
位于文件stm32h7xx_hal.c中,这是一个空函数,而不是进入:
void HAL_MspInit(void)
位于文件stm32h7xx_hal_msp.c中,该文件包含实际需要的代码。
我看到过一些讨论提到使用标志-ffunction-sections可以解决问题,但没啥用。
|