2.3 调整 C 库使其适应目标硬件
默认情况下,C 库利用半主机来提供设备驱动程序级的功能,使得主机能够用作
输入和输出设备。这种机制很有用,因为开发硬件经常没有最终系统的所有输入
和输出设备。
2.3.1 C 库的重新目标化
您可建立属于自己的 C 库函数实现版本,它能充分利用目标硬件,并自动链接
到支持您 C 库实现版本的映象。该过程称为 C 库的重新目标化,如图 2-6 所示。
图 2-6 C 库的重新目标化
例如,fputc() 函数将结果写入调试器控制台,您可能有个外围 I/O 设备(如
UART),您想要重新实现该函数,将结果输出到 UART。由于 fputc() 的实现链
接最终的映象,整个 printf() 系列函数打印输出到 UART。
fputc() 实现的一个例子如第 2-11页的示例 2-1 所示。
该示例将 fputc() 的输入字符参数重新指向一连续输出函数 sendchar(),而这是
假定在一个独立的源文件中实现的。这样,fputc() 在依目标而定的输出和 C 库
标准输出函数之间充当一个抽象层。
嵌入式软件开发
ARM DUI 0203BSC . 2002、2003 ARM Limited 版权所有。 保留所有权利。2-11
示例 2-1 fputc() 的实现
extern void sendchar(char *ch);
int fputc(int ch, FILE *f)
{
char tempch = ch;
sendchar(&tempch);
return ch;
}
引文来源
RealView&8482;
编译工具 - 辉辉网页 - ygh2006330 - 和讯博客
加载中,请稍候......