tiny6410异常向量表初始化

 设置异常向量表:

首先根据手册《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的二进制文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值