tiny6410异常向量表初始化

    xiaoxiao2021-04-16  52

     设置异常向量表:

    首先根据手册《ARM Architecture Reference Manual》的2.6小节找到异常的类型

    然后建立start.S文件,代码如下

    .text .global _start _start: b reset ldr pc, _undefined_instructions ldr pc, _software_interrupt ldr pc, _prefetch_abort ldr pc, _data_abort ldr pc, _not_used ldr pc, _irq ldr pc, _fiq _undefined_instructions: .word undefined_instructions _software_interrupt: .word software_interrupt _prefetch_abort: .word prefetch_abort _data_abort: .word data_abort _not_used: .word not_used _irq: .word irq _fiq: .word fiq undefined_instructions: nop software_interrupt: nop prefetch_abort: nop data_abort: nop not_used: nop irq: nop fiq: nop reset: nop

    然后建立链接器脚本gboot.lds文件

    代码如下

    OUTPUT_ARCH(arm) ENTRY(_start) SECTIONS{ . = 0x50008000; . = ALIGN(4); .text : { start.o(.text) *(.text) } . = ALIGN(4); .data : { *(.data) } . = ALIGN(4); bss_start = .; .bss : { *(.bss) } bss_end = .; }

    最后建立makefile工程文件出代码如下:

    all : start.o arm-linux-ld -Tgboot.lds -o gboot.elf $^ arm-linux-objcopy -O binary gboot.elf gboot.bin %.o : %.S arm-linux-gcc -g -c $^ %.o : %.c arm-linux-gcc -g -c $^ .PHONY: clean clean: rm *.o *.elf *.bin

    编译得到.bin的二进制文件。

    转载请注明原文地址: https://ju.6miu.com/read-672976.html

    最新回复(0)