Makefile如下:
led.bin: start.o led.o
arm-linux-ld -Ttext 0x0 -o led.elf $^#代码段运行地址为0x0,将所有依赖文件链接为led.elf
arm-linux-objcopy -O binary led.elf led.bin #将led.elf复制一份为led.bin文件
arm-linux-objdump -D led.elf > led_elf.dis#将led.elf文件转换为.dis反汇编文件
gcc mkv210_image.c -o mkx210
./mkx210 led.bin 210.bin
%.o : %.S
arm-linux-gcc -o $@ $< -c
%.o : %.c
arm-linux-gcc -o $@ $< -c
clean:
rm *.o *.elf *.bin *.dis mkx210 -f
编译后出现:
原因是:我自己写了一个start.S的启动文件,不需要系统自带的启动文件了
解决:
arm-linux-gcc -o $@ $< -c -nostdlib
注释:-nostdlib
不使用系统标准启动文件和标准库文件,只把指定的文件传递给连接器。这个选项常用于编译内核、bootloader等程序,它们不需要启动文件、标准库文件。
转载请注明原文地址: https://ju.6miu.com/read-661302.html