IAR FOR ARM 9.3 PRINTF 重定位处理

9.3版本对重定位,不如8版本以下来的简单,看了类似的方法,通过实践,发现更为简单的方法,如下:

1、拷贝C:\Program Files\IAR Systems\Embedded Workbench 9.1\arm\src\lib\file目录下的write.c

     到工程目录

2、加入此文件到工程,可以是main工程文件夹,也可以自己的工程文件夹下,

3、打开此write.c文件,需要改动2个地方,

        a)把原8版本以下的转定义中的函数拷贝到write.c  文件里,具体是;

int fputc(int ch, FILE *f)  // 原重定义,拷贝里面的函数
{
         HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xffff);
         return ch;
}

     原write.c里的函数只有函数名,没有函数体。修改为:

int MyLowLevelPutchar(int ch)  // 原程序里,只有一个函数名称定义,无函数体,修改为如下
{
    HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xffff);
    return ch;
}

   b)把原函数里#if 0 修改为 #if 1   即,函数开头的定义

size_t __write(int handle, const unsigned char * buffer, size_t size)
{
  /* Remove the #if #endif pair to enable the implementation */
#if 1  // 原定义为0,改为1

          size_t nChars = 0;

。。。。。。。。。。。。。。。

同样,如果使用jlink RTT的,同样修改文件里的空函数,改成原定义函数,即可

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值