牛卧堂MCU技术交流

标题: Sample Code to Load and Call Function in SRAM [打印本页]

作者: arm_nuedu    时间: 2018-1-11 14:45
标题: Sample Code to Load and Call Function in SRAM
你好
我在官网下的这个程序:Sample Code to Load and Call Function in SRAM

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

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

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

所以,肯定程序有size定义

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


作者: Angus    时间: 2018-1-11 16:11
本帖最后由 Angus 于 2018-1-11 16:16 编辑

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    ;                              
}






欢迎光临 牛卧堂MCU技术交流 (http://www.nuvoton-mcu.com/) Powered by Discuz! X3.2