2021-03-11 04:42 AM
Further investigating I see that the problem seems related to symbols exported for the se_interface, compiled into the 2_Images_SBSFU_CM0PLUS project and exported as .elf and .o file, thus included in the 2_Images_UserA__CM0PLUS project linking phase.
Running STM32CubeIDE 1.6.0 on Windows 10 with WL firmware pack 1.0.0.
I'm no more able to proceed... Is there something I'm missing?
Thank you
A quick update after further investigation:
Looking for the 1st problem returned by the linker:
c:\st\stm32cubeide_1.6.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_1.5.0.202011040924\tools\arm-none-eabi\bin\ld.exe: ../../../2_Images_SBSFU/STM32CubeIDE/CM0PLUS/Debug\se_interface_app.o: in function `SE_KMS_CloseSession':
(.SE_IF_Code+0xbd8): multiple definition of `SE_KMS_CloseSession'; ../../../2_Images_SBSFU/STM32CubeIDE/CM0PLUS/Debug\se_interface_app.o:(.SE_IF_Code+0xbd8): first defined here
Seems that the linker is finding twice the symbol SE_KMS_CloseSession @ .SE_IF_Code+0xbd8... but this symbol is present only one time in the generated .map file:
.SE_IF_Code 0x000000000802c000 0x0
0x000000000802c000 . = ALIGN (0x8)
*se_interface_app.o(.text .text*)
*se_interface_kms.o(.text .text*)
0x000000000802c000 . = ALIGN (0x8)
.SE_IF_Code 0x000000000802c000 0x0 ../../../2_Images_SBSFU/STM32CubeIDE/CM0PLUS/Debug\se_interface_app.o
0x000000000802c000 SE_APP_GetActiveFwInfo
[....]
0x000000000802cbd8 SE_KMS_CloseSession
I see that the symbol has been correctly imported from the se_interface_app.o used as library in the linker command line.
So, strictly speaking, seems to me that the same symbol, included from the linker only one time, is identified twice, but at the same relative address....
Any hints on this?
Thank you.
Solved! Go to Solution.
2021-03-16 02:47 AM
The problem seems related to SE_*** symbols included twice by the SMT32CubeIDE 1.6.0 when opening the sample project.
I was able to compile the 2_Images_UserApp_CM0PLUS project by following the procedure mentioned here: https://community.st.com/s/question/0D53W00000cRsLASA0/the-update-to-cubeide-160-cause-a-linker-error-compiling-the-userapp
So, summarising, by changing the 2_Images_UserApp_CM0PLUS project settings by:
1) Removing the -l:se_interface_app.o from Tools Settings/Libraries/Libraries
2) Adding the same -l:se_interface_app.o in Tool Settings/Miscellaneous/Other flags
2021-03-16 02:47 AM
The problem seems related to SE_*** symbols included twice by the SMT32CubeIDE 1.6.0 when opening the sample project.
I was able to compile the 2_Images_UserApp_CM0PLUS project by following the procedure mentioned here: https://community.st.com/s/question/0D53W00000cRsLASA0/the-update-to-cubeide-160-cause-a-linker-error-compiling-the-userapp
So, summarising, by changing the 2_Images_UserApp_CM0PLUS project settings by:
1) Removing the -l:se_interface_app.o from Tools Settings/Libraries/Libraries
2) Adding the same -l:se_interface_app.o in Tool Settings/Miscellaneous/Other flags