在 IDE 中对示例进行功能扩展
从 B-L475E-IOT 板的示例项目 SBSFU KMS 开始,想扩展用户应用程序,以便为该板子引入 AZURE 示例中的应用程序及其功能。这就需要加入一些驱动程序(用于网络、传感器等)和 sme 灯额外的中间件。如果我只是从文件系统中复制中间件/驱动程序文件夹内容,需要加入的内容比示例项目多得多,这样的话 IDE 是否有 “链接”功能,指向实际源文件,比如指向 Drivers 和 Middleware 的应用程序的路径??
通过项目属性或者文件系统直接链接 可以的,STM32CubeIDE 支持链接外部文件,只要添加正确路径就行,不用硬复制一堆文件进来。 我之前也是这样搞的,把 Middleware 和 Drivers 放在一个公共目录下,然后在项目属性里加上路径就能用了。 在项目右键 Properties > C/C++ General > Paths and Symbols 里添加 include path,记得 Source Location 也要加才行。 你可以在 .project 文件或 .cproject 文件中做符号链接,效果就跟引用一样,IDE 编译器能识别。 直接复制进去容易踩坑,特别是 CubeMX 会自动覆盖掉你加的东西,还不如用链接方式来得稳定。 尝试用 STM32CubeIDE 的 Multi-project setup,一个为基础驱动库,多个项目共享,不仅清晰还能统一更新。 用软链接(symbolic link)试过吗?Windows 可以用 mklink /D 创建目录链接,也挺方便的。 我搞 AZURE 示例的时候也是拆了半天,建议你用 .ioc 文件先启用一遍需要的中间件和驱动,然后再手动调整代码。 SBSFU 结构比较复杂,加入网络和传感器这些功能时,注意 linker script 和 secure zone 的地址范围不要搞冲突了。 记得加入外部驱动后还得更新 build settings,不然虽然代码能看到,编译的时候可能会报 undefined symbol。 STM32CubeIDE 支持 链接文件夹,无需复制即可引用外部 Drivers 和 Middleware
推荐使用链接方式,避免项目臃肿、冗余代码
页:
[1]