找回密码
 立即注册

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定义

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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

楼主
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