韋東山ARM第一期作業(三)記憶體控制器和SDRAM
阿新 • • 發佈:2019-01-13
文章目錄
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