ST意法半导体
直播中

万物死

8年用户 1304经验值
擅长:MEMS/传感技术
私信 关注
[问答]

为什么STM32CubeIDE 1.6.0无法在Windows 10上运行呢?

进一步调查我发现问题似乎与为 se_interface 导出的符号有关,编译到 2_Images_SBSFU_CM0PLUS 项目并导出为 .elf 和 .o 文件,因此包含在 2_Images_UserA__CM0PLUS 项目链接阶段。
在带有 WL 固件包 1.0.0 的 Windows 10 上运行 STM32CubeIDE 1.6.0。
我无法继续进行……我是否遗漏了什么?
谢谢

进一步调查后的快速更新:
寻找链接器返回的第一个问题:
c:ststm32cubeide_1.6.0stm32cubeidepluginscom.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924        oolsarm -none-eabiinld.exe
:../../../2_Images_SBSFU/STM32CubeIDE/CM0PLUS/Debugse_interface_app.o:在函数“SE_KMS_CloseSession”中:
(.SE_IF_Code+0xbd8): `SE_KMS_CloseSession'的多重定义;../../../2_Images_SBSFU/STM32CubeIDE/CM0PLUS/Debugse_interface_app.o:(.SE_IF_Code+0xbd8): 首先在这里定义
似乎链接器找到了两次符号 SE_KMS_CloseSession @ .SE_IF_Code+0xbd8... 但此符号在生成的 .map 文件中仅出现一次:
.SE_IF_代码 0x000000000802c000 0x0
        0x000000000802c000 。= 对齐 (0x8)
*se_interface_app.o(.text .text*)
*se_interface_kms.o(.text .text*)
        0x000000000802c000 。= 对齐 (0x8)
.SE_IF_Code 0x000000000802c000 0x0 ../../../2_Images_SBSFU/STM32CubeIDE/CM0PLUS/Debugse_interface_app.o
        0x000000000802c000 SE_APP_GetActiveFwInfo
    [……]
        0x000000000802cbd8 SE_KMS_CloseSession
我看到该符号已从用作链接器命令行库的 se_interface_app.o 正确导入。
所以,严格来说,在我看来,同一个符号,只从链接器中包含一次,被识别两次,但在相同的相对地址......
有什么提示吗?
谢谢你。

回帖(1)

王璨

2023-1-5 14:12:39
该问题似乎与 SMT32CubeIDE 1.6.0 在打开示例项目时两次包含的 SE_*** 符号有关。
我能够按照此处提到的过程编译 2_Images_UserApp_CM0PLUS 项目
因此,总结一下,通过以下方式更改 2_Images_UserApp_CM0PLUS 项目设置:
1) 从 Tools Settings/Libraries/Libraries 中删除 -l:se_interface_app.o
2) 在 Tool Settings/Miscellaneous/Other flags 添加相同的 -l:se_interface_app.o
举报

更多回帖

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