新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式软件开发之: 调整C库使其适应目标硬件

嵌入式软件开发之: 调整C库使其适应目标硬件

作者:时间:2013-09-30来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/257028.htm

13.3 调整使其适应目标硬件

默认情况下,利用semihosting机制来提供设备驱动级的功能,使得主机能够用作输入和输出设备。这种机制对于嵌入式开发十分有用,因为用于开发的硬件系统通常没有最终系统的输入和输出设备。

本节介绍如何重定向代码中的,使其真正适用目标系统。

13.3.1 函数重定向

所谓C重定向,就是用户使用自己编写的函数代码代替C库中的函数,使最终程序更适用于实际的目标硬件。图13.6显示了C重定向的过程。

图13.6 C库函数重定向

最简单的函数重定向的例子就是用户希望fputc()函数能够将字符从目标系统的串口输出而不是在调试时将字符从调试器的控制台输出。这时就需要重新实现该函数。下面的例子将fputc()的输入字符参数重新指向一连续输出函数sendchar(),将该例在一个独立的源文件中实现的。这样,fputc()在依目标而定的输出和C库标准输出函数之间充当一个抽象层。

例子程序的代码如下所示。

extern void sendchar(char *ch);

int fputc(int ch, FILE *f)

{ /* 向UART写一个字符 */

char tempch = ch;

sendchar(tempch);

return ch;

}

13.3.2 从最终代码映像中去掉

在一个实际的应用程序中,不可能支持的SWI操作机制。因此,必须在最终的代码映像中去掉C库中的Semihosting函数。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭