x210项目裸机代码之一移植uart

这篇博客介绍了在S5PV210平台上进行UART2的配置和使用,通过修改Makefile和uart.c文件实现了裸机程序的编译和下载流程。作者详细解释了编译选项、链接脚本以及UART的硬件地址更改,并提供了完整的源码链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考我之前的博客:s5pv210的学习之路(7)裸机uart--uboot下下载运行_weixin_43097675的博客-优快云博客

代码存放到:https://github.com/jimingkang/news5pv210/tree/master/tftboot/noOS/chapter7/2.uart_c_printf

修改了两处 :
1Makefile

CC              = /arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc
LD              = /arm/arm-2009q3/bin/arm-none-linux-gnueabi-ld
OBJCOPY = /arm/arm-2009q3/bin/arm-none-linux-gnueabi-objcopy
OBJDUMP = /arm/arm-2009q3/bin/arm-none-linux-gnueabi-objdump
AR              = /arm/arm-2009q3/bin/arm-none-linux-gnueabi-ar

INCDIR  := $(shell pwd)
# C预处理器的flag,flag就是编译器可选的选项
CPPFLAGS        := -nostdlib -nostdinc -I$(INCDIR)/include
# C编译器的flag
CFLAGS          := -Wall -O2 -fno-builtin

#导出这些变量到全局,其实就是给子文件夹下面的Makefile使用
export CC LD OBJCOPY OBJDUMP AR CPPFLAGS CFLAGS
objs := start.o led.o clock.o uart.o main.o
objs += lib/libc.a

uart.bin: $(objs)
        $(LD) -Tlink.lds -o uart.elf $^
        $(OBJCOPY) -O binary uart.elf uart.bin
        $(OBJDUMP) -D uart.elf > uart_elf.dis
        gcc mkv210_image.c -o mkx210
        ./mkx210 uart.bin 210.bin

lib/libc.a:
        cd lib; make;   cd ..

%.o : %.S
        $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< -c

%.o : %.c
        $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< -c

clean:
        rm *.o *.elf *.bin *.dis mkx210 -f
        cd lib; make clean; cd ..
 

2.uart.c
由于我用的是UART2所以UCONn是UCON2 ,GPAnCON是 GPA1CON
UCON2地址为UCON0+800
GPA1CON地址为GPA0CON+20
这里懒得改名字,只改动地址

define GPA0CON 0xE0200020
define UCON0 0xE2900804
define ULCON0 0xE2900800
define UMCON0 0xE290080C
define UFCON0 0xE2900808
define UBRDIV0 0xE2900828
define UDIVSLOT0 0xE290082C
define UTRSTAT0 0xE2900810
define UTXH0 0xE2900820
define URXH0 0xE2900824
make
cp uart.bin /tftpboot
smdk210> tftp d0020010 uart.bin
smdk210>go d0020010
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值