15268851967@163 发表于 2018-3-23 16:06:10

请教如何生成hex文件?谢谢

电子星辰 发表于 2018-6-6 14:39:16

mark一下,说不定会用trueSTUDIO

ijcool 发表于 2018-6-14 01:14:58

dontknowwhoiam 发表于 2018-3-16 18:19
谢谢。你说的很对,得使用__io_putchar进行重映射。在TrueSTUDI上试了试,还是不知道怎么设置。最后找到 ...

按照你说的进行了__io_putchar 的实现,以及包含syscalls.c的文件,进行编译,当调用printf,死掉了。。。可否贡献一个helloworld供参考,多谢

ijcool 发表于 2018-6-14 01:20:18

15268851967@163 发表于 2018-3-23 16:06
请教如何生成hex文件?谢谢

在项目设置里面,如图

g921002 发表于 2018-6-15 21:55:48

沒有移植性問題
#include "string.h"
uint8_t u1txbuf;
#define u1Msg(...)sprintf((char*)u1txbuf, __VA_ARGS__);HAL_UART_Transmit(&huart1, u1txbuf, strlen((char*)u1txbuf),100)

半岛未凉° 发表于 2018-7-8 12:55:12

jjbboox 发表于 2018-3-16 18:48
是的,我居然把syscalls.c的事情给忘记了,不好意思哈!另外可能printf如果不输出浮点数的话,那个Linker ...

请问syscalls.c这个文件如何调用进去呢?

zjczm 发表于 2018-7-10 17:49:33

这个问题学习一下。还在实验。

为梦想疯狂的守夜人 发表于 2018-7-18 14:24:40

为什么我找不到这个路径?????>->->

hi201803 发表于 2018-9-2 22:40:14

本帖最后由 hi201803 于 2018-9-2 22:51 编辑

dontknowwhoiam 发表于 2018-3-16 18:19
谢谢。你说的很对,得使用__io_putchar进行重映射。在TrueSTUDI上试了试,还是不知道怎么设置。最后找到 ...根据网友回复参考库例程, 于是参考 swstm32调试的官方说明.
只要 修改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;
}
------------------------------------------------------------------------------
附件是截图.

hi201803 发表于 2018-9-2 22:49:32

anobodykey 发表于 2018-3-22 22:23
看下库例程吧,基本上每个库都会有printf示例的

谢谢, 最权威的.

另外,swstm32的,
在菜单Help / help Contents/SystemWorkbench for STM32 User Guide > Advanced/SWOTraces 下面.

还有,根据swstm32文档,还可以设置Semihosting, 支持调试.可以不需要 swo 线.
页: 1 [2]
查看完整版本: printf在TrueSTUDIO中无法使用