[MCU] 请教:CC里可以调用printf函数吗?

[复制链接]
1119|1
 楼主| 两只袜子 发表于 2020-11-10 14:36 | 显示全部楼层 |阅读模式
我看书上的C语言例程是调用了printf函数的。
但我编的一个小程序里却因为调用了printf函数,而链接不成功。

我的程序框架是这样的:
#include "regs2407.h"
#include "stdio.h"

void main(void)
{
        ……        ;初始化                                 
        int i,j, c;
        i = 1;                                   
        j = 2;
        c = i+j;
        printf("%d", c);
}
cmd文件:
MEMORY
{
    PAGE 0 :   VECS   : origin =    0h , length =   040h   /* VECTORS */
               PROG   : origin =   40h , length = 0FFC0h   /* PROGRAM */

    PAGE 1 :   MMRS   : origin =    0h , length =   060h   /* MMRS    */
               B2     : origin = 0060h , length =   020h   /* DARAM   */
               B0     : origin = 0200h , length =  0100h   /* DARAM   */
               B1     : origin = 0300h , length =  0100h   /* DARAM   */
               DATA   : origin = 8000h , length =  8000h   /* XDM     */
   

}

SECTIONS
{
        .text        :{}> PROG PAGE 0
        .cinit        :{}> PROG PAGE 0        
        .data        :{}> DATA PAGE 1
        .stack        :{}> DATA PAGE 1
        .bss        :{}> B0   PAGE 1
        .vectors:{}> VECS PAGE 0
}
注:cmd文件不是我自己写的,是从ti上下的例程中照搬过来的。
但build时编译器总是出现这样的错误提示:
>> cannot allocate .bss in B0 (page 1)
>> errors in input - SumTest.out not built
Build Complete,
  2 Errors, 0 Warnings.
把printf注释掉编译就通过了。
请问各位高手,这是什么原因?究竟能不能调用printf函数?
zhangmangui 发表于 2020-11-10 23:26 | 显示全部楼层
把堆栈改大一些试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2122

主题

8121

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部