S5PV210_uart stdio移植
来源:互联网 发布:狂犬康丝数据 编辑:程序博客网 时间:2024/06/08 07:30
1、stdio : standard input output 标准输入输出
2、printf函数调用到的2个关键函数:
vsprintf : 格式化打印信息,最终得到纯字符串的打印信息等待输出
putc : 操控标准输出的硬件,将信息发送出去
3、移植步骤:
(1)解压printf.rar到uart_stdio目录,解压后会有include、lib两个目录,其中include放的是相关头文件,lib放的是printf、scanf相关的代码;
(2)修改uart_stdio目录下的makefile,将lib目录下的代码编译链接成lib.a,然后将lib.a编译进bin中;
1 CC = arm-linux-gcc 2 LD = arm-linux-ld 3 OBJCOPY = arm-linux-objcopy 4 OBJDUMP = arm-linux-objdump 5 AR = arm-linux-ar 6 7 INCDIR := $(shell pwd) 8 # C预处理器的flag,flag就是编译器可选的选项 9 CPPFLAGS := -nostdlib -nostdinc -I$(INCDIR)/include10 # C编译器的flag11 CFLAGS := -Wall -O2 -fno-builtin12 13 #导出这些变量到全局,其实就是给子文件夹下面的Makefile使用14 export CC LD OBJCOPY OBJDUMP AR CPPFLAGS CFLAGS15 16 17 objs := start.o led.o clock.o uart.o main.o18 objs += lib/libc.a19 20 uart.bin: $(objs)21 $(LD) -Tlink.lds -o uart.elf $^22 $(OBJCOPY) -O binary uart.elf uart.bin23 $(OBJDUMP) -D uart.elf > uart_elf.dis24 gcc mkv210_image.c -o mkx21025 ./mkx210 uart.bin 210.bin26 27 lib/libc.a:28 cd lib; make; cd ..29 30 %.o : %.S31 $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< -c32 33 %.o : %.c34 $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< -c35 36 clean:37 rm *.o *.elf *.bin *.dis mkx210 -f38 cd lib; make clean; cd ..
(3)编写main函数进行测试
void puts(const char *p);char *gets(char *p);void uart_init(void);void memset(char *p, int val, int length){ int i; for(i=0; i<length; i++) { p[i]=val; }}int main(void){ char buf[100] = {0}; uart_init(); puts("x210 Simple shell:\n"); while(1) { puts("Please input your code:"); memset(buf, 0, sizeof(buf)); gets(buf); puts("Your input code is:"); puts(buf); puts("\n"); } return 0;}
0 0
- S5PV210_uart stdio移植
- uart stdio的移植1
- uart stdio的移植2
- uart stdio的移植3
- stdio
- 第八天: 串口通信代码实战及uart stdio 移植
- 9.S5PV210移植stdio时Makefile的详解
- 用visual stdio C#编写的程序能移植到wince的系统中吗?
- stdio.h
- stdio.h
- man stdio
- " man stdio "
- stdio.h
- Stdio快捷键
- #include<stdio>与#include"stdio"的区别
- Visual Stdio IDE 与 Visual Stdio Code
- C语言stdio库(#include<stdio.h>)
- Visual Stdio.NET快捷键
- Mysql 常见报错和疑问汇总
- web项目,tomcat转到weblogic需要注意的地方
- S5PV210_串行通信
- 实例:对2个Makefile的备注
- 史上最简单的 MySQL 教程(七)「中文数据问题」
- S5PV210_uart stdio移植
- jQuery的datatable的destroy属性,和$("#test").dataTable().fnDestroy();区别,两者的区别
- shell编程:定义简单标准命令集
- centos6.4设置终端中文显示问题
- Linux下查看内存占用情况
- 日期格式转换工具类
- Log工具类
- C语言中break与continue使用
- 《智能时代》——成为智能时代的前2%