最近作一个项目,是基于ARM CPU + TI DSP的一个平台,由于DSP并不具备串口,只能通过仿真器调试DSP程序,非常麻烦,所以想到借助CPU的串口输出能力来完成DSP的调试信息打印,通过这种方式输出调试信息速度更快,对DSP系统影响更小,更有利于调试。为了能够方便编程,所以这个输出功能使用了printf的形式,具体就是通过了C的变长参数来实现这个功能。
下边是源代码
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
void cpuprintf(const char * format, ...)
{
va_list arg_ptr;
char printbuf[MAXLEN];
va_start(arg_ptr, format);
vsprintf(printbuf, format, arg_ptr);
va_end(arg_ptr);
//printf("%s", printbuf);
/*
此处代码将printbuf的数据传送给CPU,CPU再负责将接收到的数据输出到串口即可
*/
}
下边是源代码
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
void cpuprintf(const char * format, ...)
{
va_list arg_ptr;
char printbuf[MAXLEN];
va_start(arg_ptr, format);
vsprintf(printbuf, format, arg_ptr);
va_end(arg_ptr);
//printf("%s", printbuf);
/*
此处代码将printbuf的数据传送给CPU,CPU再负责将接收到的数据输出到串口即可
*/
}