CCS10.0下TMS320F28335使⽤Printf函数的问题
使⽤Code Composer Studio Version: 10.1.0.00010 ,建⽴TMS320F28335⼯程。
/*
* main.c
*/
#include <stdio.h>
int fputc(int ch, FILE *f)
{
while(ScibRegs.SCICTL2.bit.TXRDY == 0);
ScibRegs.SCITXBUF=ch;
return ch;
}
int main(void) {
printf("Hello DSP!\r\n");
return0;
}
编译出错
"../d", line 66: error: program will not fit into available
memory, or the section contains a call site that requires a trampoline that
can't be generated for this section. run placement with alignment/blocking
fails for section ".stack" size 0x400page 1. Available memory ranges:
RAMM1 size: 0x400 unused: 0x0 max hole: 0x0
查看d⽂件
PAGE 1 : /* Data Memory */
/* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */
/* Registers remain on PAGE1 */
BOOT_RSVD : origin = 0x000000, length = 0x000050/* Part of M0, BOOT rom will use this for stack */
RAMM0 : origin = 0x000050, length = 0x0003B0/* on-chip RAM block M0 */
RAMM1 : origin = 0x000400, length = 0x000400/* on-chip RAM block M1 */
函数printfRAML4 : origin = 0x00C000, length = 0x001000/* on-chip RAM block L1 */
RAML5 : origin = 0x00D000, length = 0x001000/* on-chip RAM block L1 */
RAML6 : origin = 0x00E000, length = 0x001000/* on-chip RAM block L1 */
RAML7 : origin = 0x00F000, length = 0x001000/* on-chip RAM block L1 */
PAGE1 为数据存储区
/* Allocate uninitalized data sections: */
.stack : > RAMM1 PAGE = 1
.ebss : > RAML5 PAGE = 1
.esysmem : > RAMM1 PAGE = 1
stack段空间不够,修改为
/* Allocate uninitalized data sections: */
.stack : > RAML4 PAGE = 1
.ebss : > RAML5 PAGE = 1
.esysmem : > RAML4 PAGE = 1
修改Printf⽀持,Level of printf/scanf support required(--printf_support)选择minimal
堆栈设置
编译通过,可以正常使⽤printf函数打印字符串,但还是⽆法使⽤%d等格式化输出功能,即使Level of printf/scanf support required(--printf_support)选择full也不⾏。
原因待查。。。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论