ST意法半导体
直播中

王利祥

7年用户 1451经验值
私信 关注
[问答]

有没有人成功地将HAL库分离成静态库呢?

我有多个项目使用相同的代码但使用不同的处理器 (STM32F4xx)。为了尝试解决常见的代码问题,我创建了一个静态库,其中包含 HAL 驱动程序代码,每个处理器的主要应用程序都链接到该库。
现在由于某种原因 I2C 和 SPI 没有正确初始化。例如 I2C,它将进入 HAL_I2C_Init 函数,但当它尝试设置结构属性“instance”时,它总是被设置为 0。它应该设置为 788 的值,但它永远不起作用。我试图在调试模式下设置它,但它总是回到 0。
我知道这段代码在我将代码分离到一个库之前工作得很好,当它全部在一个项目中时它工作得很好没有问题。结构“实例”属性将被正确设置。
有没有人成功地将 HAL 库分离成静态库?有 I2C 或 SPI 等工作吗?


回帖(1)

李阳

2022-12-19 14:14:27
问题解决了。不是最好的方式,但它已解决。它只是将 stm32f4xx_hal_msp.c 文件从库移动到主项目中,出于某种原因,在 HAL_I2C_Init 函数中它看不到 stm32f4xx_hal_msp.c 中 HAL_I2C_MspInit() 的覆盖函数。
如果有更多对多处理器库或项目的支持,那就太好了。我完成它的方式有效并且没有问题,只需要一些“陷阱”或手动步骤,特别是如果重新生成代码。如果 STM 提供更多支持以允许在 STM32CubeIDE 中实现这一点,那么在同一系列处理器中管理具有不同硬件的多个项目将会变得更加容易。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分