Closed pavel-a closed 10 months ago
Hello @pavel-a,
Thank you for this report. We will get back to you as soon as we analyze it further. This may take some time. Thank you for your comprehension.
With Regards,
Hi @pavel-a,
Following your request, we have tried to reproduce the issue. We have thus compiled the project you have mentioned UART_Printf using SW4STM32 and we did not detect any compilation error.
Would you please give us more details on how did you detected the issue.
With regards,
Hi @ASELSTM This issue is related to conversion of SW4STM32 examples to CubeIDE. Please try to import to CubeIDE v 1.12. The newlib used in CubeIDE toolchain needs to resolve some functions which are usually exported by file syscalls.c
.
However I have not tested the latest CubeIDE and its new toolchain yet. Maybe the newlib there treats these unresolved imports differently (which is suggested by recent forum questions).
Just note for now the example projects that contain syscalls. c for some F7 boards but do not contain it for other boards.
Hi @pavel-a,
Thank you for these details. Indeed, the issue has been detected even using the latest version of STM32CubeIDE v1.13.1. A fix will be deployed. We will keep you informed once it is available.
With regards
ST Internal Reference: 159701
Hi @pavel-a,
The issue has been fixed within this commit. Please allow me thus to close this thread.
With regards,
Note... this seems to apply to the Nucleo H723ZG board as well. I wasn't importing any project into CubeMX. Rather, I just generated a simple blank project for this board. The resulting Makefile project would not compile. Following the hints in this trouble report, I copied syscalls.c
into Core/Src
and all those linker errors went away. I found the example file in the STM32H7 repository under Projects/NUCLEO-H723ZG/Templates/STM32CubeIDE/Example/User/
. There is also a sysmem.c
in that directory as well, but this presence / absence of this file doesn't seem to generate any extra errors or warnings. Note: Also added the newly added source code to the Makefile.
Fixed in commit 959dea9846d896caecc4ea2a3e66ada01e4ff7f2
Fixed in commit 959dea9
I am confused by this comment. That commit is about this F7 repository, and my comment above was about the H7 repository which seemed to have the same issue. Also confusing is that ASELSTM closed that issue on the H7 repo, noting that this is not related to STM32Cube repositories, but rather internal operations of STM32CUBEMX. Maybe they meant that this issue, in regards to the F7 family, CAN indeed be solved by a fix in this repository (hence the referenced commit above) -- but things are handled differently for the H7 family and it has to be done in CUBEMX instead?
Syscalls.c files are present in projects for other boards, see here: https://github.com/STMicroelectronics/STM32CubeF7/tree/master/Projects/STM32F767ZI-Nucleo/Examples/UART/UART_Printf/SW4STM32
But missing for NUCLEO-746ZG:
https://github.com/STMicroelectronics/STM32CubeF7/tree/master/Projects/STM32F746ZG-Nucleo/Examples/UART/UART_Printf/SW4STM32
Same for other boards: https://github.com/STMicroelectronics/STM32CubeF7/tree/master/Projects/STM32F722ZE-Nucleo/Examples
This leads to non-building, non-working examples.
Proposal: A. put the syscalls.c in each SW4STM32 project. B. The example import tool of CubeIDE should add syscalls.c if missing.