微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > 关于printf问题

关于printf问题

时间:10-02 整理:3721RD 点击:
#include <stdio.h>
#include<string.h>

void main(void)
{

char s[20];
strcpy(s, \"Hello! Turbo C2.0\"

;
puts(s);
strcpy(s, \"Hello! Turbo \"

;
printf(\"%s\\n\", s);

}

stdout中只有Hello! Turbo C2.0
为什么只有puts函数的输出,没有printf的输出?

多把是没有加入rts55.lib
向工程中加入此文件即可

搜索一下ti按照文件夹即可找到此文件

rts55.lib是什么库文件?
我用的是rts2812。lib

也有可能是需要开启Large Memory支持罢
还有一件事:需要配置合适的cmd文件
(一般工程自带的cmd配置的程序存储区大小不足以容纳printf库,这个库还是蛮大的)。
这里是一个范例的cmd文件,确保是可用的。

MEMORY
{
DARAM: o=0x100, l=0x7f00
VECT : o=0x8000, l=0x100
DARAM2: o=0x8100, l=0x7f00
SARAM: o=0x10000, l=0x30000
SDRAM: o=0x40000, l=0x3e0000
}

SECTIONS
{
.text: {} > DARAM
.vectors: {} > VECT
.trcinit: {} > DARAM
.gblinit: {} > DARAM
frt: {} > DARAM

.cinit: {} > DARAM
.pinit: {} > DARAM
.sysinit: {} > DARAM
.bss: {} > DARAM2
.far: {} > DARAM2
.const: {} > DARAM2
.switch: {} > DARAM2
.sysmem: {} > DARAM2
.cio: {} > DARAM2
.MEM$obj: {} > DARAM2
.sysheap: {} > DARAM2
.sysstack: {} > DARAM2
.stack: {} > DARAM2

}

不过如果编译没错,那应该不是cmd文件的问题

=============

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top