cutfall 发表于 2025-4-16 09:00

在 IDE 中对示例进行功能扩展

从 B-L475E-IOT 板的示例项目 SBSFU KMS 开始,想扩展用户应用程序,以便为该板子引入 AZURE 示例中的应用程序及其功能。这就需要加入一些驱动程序(用于网络、传感器等)和 sme 灯额外的中间件。
如果我只是从文件系统中复制中间件/驱动程序文件夹内容,需要加入的内容比示例项目多得多,这样的话 IDE 是否有 “链接”功能,指向实际源文件,比如指向 Drivers 和 Middleware 的应用程序的路径??

flycamelaaa 发表于 2025-4-16 10:50

通过项目属性或者文件系统直接链接

公羊子丹 发表于 2025-5-28 07:27

可以的,STM32CubeIDE 支持链接外部文件,只要添加正确路径就行,不用硬复制一堆文件进来。

周半梅 发表于 2025-5-28 07:28

我之前也是这样搞的,把 Middleware 和 Drivers 放在一个公共目录下,然后在项目属性里加上路径就能用了。

帛灿灿 发表于 2025-5-28 07:29

在项目右键 Properties > C/C++ General > Paths and Symbols 里添加 include path,记得 Source Location 也要加才行。

童雨竹 发表于 2025-5-28 07:30

你可以在 .project 文件或 .cproject 文件中做符号链接,效果就跟引用一样,IDE 编译器能识别。

万图 发表于 2025-5-28 07:31

直接复制进去容易踩坑,特别是 CubeMX 会自动覆盖掉你加的东西,还不如用链接方式来得稳定。

Wordsworth 发表于 2025-5-28 07:32

尝试用 STM32CubeIDE 的 Multi-project setup,一个为基础驱动库,多个项目共享,不仅清晰还能统一更新。

Bblythe 发表于 2025-5-28 07:32

用软链接(symbolic link)试过吗?Windows 可以用 mklink /D 创建目录链接,也挺方便的。

Pulitzer 发表于 2025-5-28 07:33

我搞 AZURE 示例的时候也是拆了半天,建议你用 .ioc 文件先启用一遍需要的中间件和驱动,然后再手动调整代码。

Uriah 发表于 2025-5-28 07:34

SBSFU 结构比较复杂,加入网络和传感器这些功能时,注意 linker script 和 secure zone 的地址范围不要搞冲突了。

Clyde011 发表于 2025-5-28 07:35

记得加入外部驱动后还得更新 build settings,不然虽然代码能看到,编译的时候可能会报 undefined symbol。

t60yz 发表于 2025-5-31 23:41

STM32CubeIDE 支持 链接文件夹,无需复制即可引用外部 Drivers 和 Middleware

推荐使用链接方式,避免项目臃肿、冗余代码
页: [1]
查看完整版本: 在 IDE 中对示例进行功能扩展