韦东山ARM第一期作业(三)内存控制器和SDRAM
2020-04-18 来源:eefocus
01 - 作业所在路径
ARM裸机1期加强版源码文档图片文档图片第012课_内存控制器与SDRAM
02 - 作业描述
把第11课实现的printf函数移植到011_sdram程序中,修改内存数据,再以16进制打印出来
03 - 作业解答
移植很简单,把.h和.c以及除法库lib1funcs.S放到工程中,只需要在Makefile中添加uart_printf.c和lib1funcs.S的编译,再在arm-linux-ld链接后面添加.o文件,最后在需要使用printf的地方#include “uart_printf.h”,直接使用就可以
#修改前
all:
arm-linux-gcc -c uart.c -o uart.o
arm-linux-gcc -c leds.c -o leds.o
arm-linux-gcc -c init.c -o init.o
arm-linux-gcc -c main.c -o main.o
arm-linux-gcc -c -o start.o start.S
arm-linux-ld -Ttext 0 start.o uart.o main.o
init.o leds.o -o uart.elf
arm-linux-objcopy -O binary -S uart.elf uart.bin
arm-linux-objdump -D uart.elf > uart.dis
clean:
rm *.bin *.o *.elf *.dis
#修改后
all:
arm-linux-gcc -c uart.c -o uart.o
arm-linux-gcc -c leds.c -o leds.o
arm-linux-gcc -c init.c -o init.o
arm-linux-gcc -c main.c -o main.o
arm-linux-gcc -c uart_printf.c -o uart_printf.o
arm-linux-gcc -c -o start.o start.S
arm-linux-gcc -c -o lib1funcs.o lib1funcs.S
arm-linux-ld -Ttext 0 -Tdata 0x1200 start.o uart.o main.o uart_printf.o
lib1funcs.o init.o leds.o -o uart.elf
arm-linux-objcopy -O binary -S uart.elf uart.bin
arm-linux-objdump -D uart.elf > uart.dis
clean:
rm *.bin *.o *.elf *.dis