uart stdio的移植1

时间:2021-03-17 06:35:17

什么是stdio?

  • #include<stdio.h>
  • stdio.o:standard input output,标准输入输出
  • 标准输入输出就是操作系统定义的默认输入和输出通道。一般在PC机标准输入指的是键盘,标准输出指的是屏幕。
  • printf函数和scanf函数可以和底层输入/输出函数绑定,然后这两个函数就可以和stdio绑定起来。也就是说我们直接调用printf函数输出,内容就会从标准输出输出出去。
  • 在我们这里,标准输出当然不是屏幕了,而是串口。标准输入也不是键盘,而是串口。

printf函数的工作原理

printf函数工作是内部实际调用了2个关键函数:一个是vsprintf函数(它的主要功能是格式化打印信息,最终得到纯字符串格式的打印信息,然后等待输出),另一个就是真正的输出函数putc(操控标准输出的硬件,将信息发送出去)

移植printf函数的是三种思路

  • 我们希望在我们的开发板上使用printf函数进行(串口)输出,使用scanf进行(串口)输入,就像PC机键盘和屏幕进行输入输出一样
  • 我们说的移植而不是编写,我们不希望自己完全重新开始编写而是想金陵借用已有的代码(叫移植)
  • 一般移植printf函数可以有3个途径获取printf的实现源码:最原始最原本的本源就是linux内核中的printk。稍微简单点的方法是从uboot中移植printf;更简单的方法就是直接使用别人移植好的。