你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
dontknowwhoiam 发表于 2018-3-16 18:19 谢谢。你说的很对,得使用__io_putchar进行重映射。在TrueSTUDI上试了试,还是不知道怎么设置。最后找到 ...
查看全部评分
anobodykey 发表于 2018-3-22 22:23 看下库例程吧,基本上每个库都会有printf示例的
jjbboox 发表于 2018-3-16 17:06 TrueSTUDIO没用过,但是和SW4STM32都用的是GUN的编译器,所以和SW4STM32的方式是一样的,就是重定向 int __ ...
15268851967@163 发表于 2018-3-23 16:06 请教如何生成hex文件?谢谢
只要 修改3点:
1. 添加:
#include <stdio.h> /* 不要写成 #include ”stdio.h“ , 教训*/
2. 加入:
int __io_putchar(int ch)
{
ITM_SendChar(ch);
return ch;
}
3. 加入:
int _write(int file, char *ptr, int len)
{
int DataIdx;
for (DataIdx = 0; DataIdx < len; DataIdx++)
{
__io_putchar(*ptr++);
}
return len;
}
------------------------------------------------------------------------------
附件是截图.
这样就可以用了。
另外在工程属性设置的[C/C++ Build]->[Settings]->[Tool Settings]->[MCU G++ Linker]->[Miscellaneous]->[Linker flags]中添加[-u _printf_float]参数就可以了。
评分
查看全部评分
谢谢, 最权威的.
另外, swstm32的 ,
在菜单 Help / help Contents/SystemWorkbench for STM32 User Guide > Advanced/ SWOTraces 下面.
还有,根据swstm32文档, 还可以设置 Semihosting, 支持调试. 可以不需要 swo 线.
谢谢。你说的很对,得使用__io_putchar进行重映射。在TrueSTUDI上试了试,还是不知道怎么设置。最后找到了解决办法,需要调用一个叫syscalls.c的源文件,配合__io_putchar来实现。
是的,我居然把syscalls.c的事情给忘记了,不好意思哈!另外可能printf如果不输出浮点数的话,那个Linker的参数可以不加。毕竟加上以后会占掉差不多10K的空间。
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
按照你说的进行了__io_putchar 的实现,以及包含syscalls.c的文件,进行编译,当调用printf,死掉了。。。可否贡献一个helloworld供参考,多谢
在项目设置里面,如图
评分
查看全部评分