找回密码
 立即注册

QQ登录

只需一步,快速开始

开启左侧

Sample Code to Load and Call Function in SRAM

[复制链接]
arm_nuedu 发表于 2018-1-11 14:45:32 | 显示全部楼层 |阅读模式
你好
我在官网下的这个程序:Sample Code to Load and Call Function in SRAM

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

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

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

所以,肯定程序有size定义

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

回复

使用道具 举报

Angus 发表于 2018-1-11 16:11:33 | 显示全部楼层
本帖最后由 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    ;                              
}

回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU