The STM32 lib v3.1.0 was written with the previous version of the RKit-ARM. In the latest version of RKit-ARM, the linker has been updated and the libraries scanning scheme has changed a little. The IDE was changed accordingly, but it seems we did something there that is incorrect in the case of this example.
We have planned a new release of the RKit-ARM very soon (hopefully next week) and we will make sure that this problem does not appear in this new version.
In the meantime there is an easy workaround: You just need to add the missing functions directly in your project, which will force the linker to take them. You also need to force the linker to take printf from the small printf library and not libc. Otherwise, the link will succeed, but the resulting application will be much larger than it should be...
1. Copy these three files in your project's directory:
\lib\ARM\io_putchar\syscalls.c
\lib\ARM\io_putchar\swi.h
\lib\ARM\e_stdio\e_stdio_thumb.a
Hi,
I've got the same problem like mrobins. But I don't know how to add the e_studio_thumb.a to the project, could anybody explain how to add the e_studio_thumb.a to the project?
Sorry, in the first post I gave the wrong path for the syscalls.c and swi.h files. It should be this:
\lib\ARM\io_putchar\syscalls.c
\lib\ARM\io_putchar\swi.h
Hi,
The STM32 lib v3.1.0 was written with the previous version of the RKit-ARM. In the latest version of RKit-ARM, the linker has been updated and the libraries scanning scheme has changed a little. The IDE was changed accordingly, but it seems we did something there that is incorrect in the case of this example.
We have planned a new release of the RKit-ARM very soon (hopefully next week) and we will make sure that this problem does not appear in this new version.
In the meantime there is an easy workaround: You just need to add the missing functions directly in your project, which will force the linker to take them. You also need to force the linker to take printf from the small printf library and not libc. Otherwise, the link will succeed, but the resulting application will be much larger than it should be...
1. Copy these three files in your project's directory:
\lib\ARM\io_putchar\syscalls.c
\lib\ARM\io_putchar\swi.h
\lib\ARM\e_stdio\e_stdio_thumb.a
2. Add your copies of syscalls.c and e_stdio_thumb.a, in this order, in your project. Like this:
ftp://www.raisonance.com/temp/ST/pic_workaround_STM32lib310_RKitARM0120090154.jpg
3. Rebuild the project.
Or you can just wait for the next version of RKit-ARM.
Best Regards,
Vincent
Hi,
I've got the same problem like mrobins. But I don't know how to add the e_studio_thumb.a to the project, could anybody explain how to add the e_studio_thumb.a to the project?
Best Regards
Steffen
Hi,
The easiest is to drag it from an explorer window and drop it in the Ride window.
Best Regards,
Vincent
Sorry, in the first post I gave the wrong path for the syscalls.c and swi.h files. It should be this:
\lib\ARM\io_putchar\syscalls.c
\lib\ARM\io_putchar\swi.h
Vincent
...And now I have corrected the first post.
Vincent
Hi,
Thanks a lot!