新唐MCU技术
直播中

张宇

7年用户 1661经验值
私信 关注
[问答]

Sample Code to Load and Call Function in SRAM修改源程序时函数占用的空间很大是为什么?

你好
我在官网下的这个程序:Sample Code to Load and Call Function in SRAM

在修改源程序的时候发现:当我在程序里加 printf() /*这个函数占用的空间很大。*/远远大于0c。

这时候再调用修改之后的函数,在porthelper 上会提示硬件错误。

当我把可调用函数函数体清空,发现所占空间远小于0c,这个时候可以正常调用。

所以,肯定程序有size定义

但不明白在哪里修改!!!

回帖(1)

李海洪

2023-8-31 16:33:14
printf这个函数是很大,如果不考滤格式符,只是输出简单的数据。可以自己写个输出函数
//// 把 Tx FiFo 填满 /////////////////////////////////////////////////////////////////////
//输入: *pStr, 字符指针
//          Cnt , 输出字符个数
//返回 :   0,字符已全部输出
//          非0,剩余字符的首地址, 供下次调用的参数
uint8_t* Tx0FillFiFo(uint8_t*pStr, uint32_t Cnt)
{
  if(Cnt){                                                     
    do{
      if( UART0->FSR   TX_FIFO_FULL ) break ;                    //FiFo满了就退出  
      UART0->THR = *pStr++ ;                                    
    }while(--Cnt) ;                                              //直到字符发完
  }
  if(Cnt) return  pStr ;
  else    return  0    ;                              
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分