你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

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

2021/12/27 3:54:42

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

代码存放到:/home/jimmy/news5pv210/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