【DSP】ti和SYS/BIOS的printf

本文介绍了如何在CCS环境中对printf进行重定向,涉及对fputc和fputs函数的改写,以支持串口打印,并提及了使用ar6x工具修改官方库文件的过程。
摘要由CSDN通过智能技术生成

1. 引入

  • 目的是在CCS中对printf进行重定向。
  • 关键是对fputc和fputs的重写。
  • 由下图可知,在sys/bios中的printf函数,会调用fputc打印一般的字符,会调用fputs打印转义字符得到的新的字符串。
    在这里插入图片描述

2. 改写

  • 首先,根据实际情况,找到包含fputc和fputs的库文件lib,以及对应的源文件C文件。
  • 新建一个建议工程,添加需要修改的文件。
  • 将文件中的函数修改。(我这里是直接划掉了fputc和fputs两个函数)
    在这里插入图片描述
  • 在之后使用printf时,需要在正式工程中,重写fputc和fputs函数。下面为重写的fputc和fputs函数,支持串口打印输出。
#include <stdio.h>

int fputc(int ch, FILE *f)
{
	while( (*(unsigned int* )0x02540004) &0x00000200);
	 *(unsigned int* )0x02540004 =(unsigned char)ch;
	return (unsigned char)ch;
}

int fputs(const char *_ptr, FILE *_fp)
{
    int   i, ptr_strlen;
    ptr_strlen = strlen(_ptr);
    for(i=0;i<ptr_strlen;i++)
    {
    	while( (*(unsigned int* )0x02540004) &0x00000200);
    	 *(unsigned int* )0x02540004 =(unsigned char)_ptr[i];
    }
    return ptr_strlen;
}

3. 生成

在这里插入图片描述

  • 使用ar6x工具,修改官方库rts6600_elf.lib。
    在这里插入图片描述
    在这里插入图片描述
  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值