RealView Compilation Tools Developer Guide - ARM Information ...
RealView Compilation Tools Developer Guide - ARM Information ...
RealView Compilation Tools Developer Guide - ARM Information ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
嵌 入 式 软 件 开 发<br />
示 例 2-1 fputc() 的 实 现<br />
extern void sendchar(char *ch);<br />
int fputc(int ch, FILE *f)<br />
{ /* e.g. write a character to an UART */<br />
char tempch = ch;<br />
sendchar(&tempch);<br />
return ch;<br />
}<br />
2.3.2 避 免 C 库 半 主 机<br />
在 一 独 立 应 用 程 序 中 , 您 不 太 可 能 支 持 半 主 机 SWI 操 作 。 因 此 , 必 须 确 保 您 的<br />
应 用 程 序 中 没 有 链 接 C 库 半 主 机 函 数 。<br />
为 确 保 没 有 从 C 库 链 接 使 用 半 主 机 SWI 的 函 数 , 必 须 引 入 符 号<br />
__use_no_semihosting_swi。 可 在 您 项 目 的 任 何 C 或 汇 编 语 言 源 文 件 中 执 行 此 操<br />
作 , 如 下 所 述 :<br />
• 在 C 模 块 中 , 使 用 #pragma 命 令 :<br />
#pragma import(__use_no_semihosting_swi)<br />
• 在 汇 编 语 言 模 块 中 , 使 用 IMPORT 命 令 :<br />
IMPORT __use_no_semihosting_swi<br />
如 果 仍 然 链 接 了 使 用 半 主 机 SWI 的 函 数 , 链 接 程 序 会 报 告 下 列 错 误 :<br />
Error : L6200E: Symbol __semihosting_swi_guard multiply defined (by use_semi.o<br />
and use_no_semi.o).<br />
为 找 出 这 些 函 数 , 请 使 用 -verbose 选 项 链 接 。 在 输 出 结 果 中 , C 库 函 数 被 标 以<br />
如 __I_use_semihosting_swi 的 标 记 。<br />
Loading member sys_exit.o from c_a__un.l.<br />
definition: _sys_exit<br />
reference : __I_use_semihosting_swi<br />
<strong>ARM</strong> DUI 0203BSC © 2002、 2003 <strong>ARM</strong> Limited 版 权 所 有 。 保 留 所 有 权 利 。 2-11