1-MicroLIB与printf重定向

参考文章

使用MicroLIB原因

当前的嵌入式系统主流由C语言进行开发,大多需要使用到C语言标准库的功能,然而C语言标准库过于庞大,难以直接应用于嵌入式系统当中,需要对其简化,进而形成了MicroLIB库。

MicroLIB与C标准库区别
  1. MicroLib 专为深度嵌入式应用而设计;
  2. MicroLib 经过优化,可以使用比使用 ARM 标准库更少的代码和数据存储器;
  3. MicroLib 设计为无需操作系统即可工作,但这并不妨碍它与任何操作系统或 RTOS(例如 Keil RTX)一起使用;
  4. MicroLib 不包含文件 I/O 或宽字符支持;
  5. 由于 MicroLib 已经过优化以最小化代码大小,因此某些函数的执行速度将比 ARM 编译工具中可用的标准 C 库例程更慢;
  6. MicroLib 和 ARM 标准库都包含在 Keil MDK-ARM 中;
  7. 有关更多详细信息,请参阅与默认 C 库的差异,参考
printf重定向目的

C语言程序编写过程中需要打印调试,最为常用的是printf函数,该函数是将信息打印到屏幕上,然而嵌入式系统没有计算机常规定义的屏幕,因此需要将printf函数进行改写。
此外,printf函数位于标准库中,基于嵌入式的printf同样位于MicroLIB中,在嵌入式系统中使用printf函数,需要添加MicroLIB。

printf重定向操作

如何对printf进行改写?具体printf需要经过多层函数的实现,其中有一个名为fputc的函数,

C 库函数 int fputc(int char, FILE *stream) 把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动。

通过重写这个函数,将输出流指定到嵌入式系统的一个串口上,即可以通过这个串口输出打印信息,再通过这个串口连接到上位机,则可在上位机上观察到调试信息。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值