一、异常向量表:
包含:1.异常定义
2.异常类型
3.异常入口
4.向量表
首先异常定义,在ARM Architecture Reference Manual.pdf文档中,2.Programmers' Model的2.6.Exceptions异常:

异常:因为内部或外部的一些事件,导致处理器停下来正在处理的工作,转而去处理这些发生的事件。
2.异常类型
当一种异常发生的时候,ARM处理器会跳转到对应该异常的固定地址去执行异常处理程序,而这个固定的地址,就称之为异常向量,多个异常向量在一起就形成了异常向量表。

从上面的异常向量地址可以注意到,地址0x00000014没有使用。上图的右边可以看到有两组异常向量表可以使用。一组是低地址的,一组是高地址的。可以通过CP15对应的位来配置,当没有配置CP15的时候,默认是从低地址作为异常向量表。
3.入口:00000000;
4.异常向量表:由七个异常向量和处理函数跳转关系组成的表就是异常向量表。

二、代码编写(6410)
链接器脚本:forfish.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 = .;
}

汇编文件start.S完成相应的硬件操作的代码结构:
@****************************
@File:start.S
@
@FORFISH
@****************************
.text
.global _start
_start:
b reset
ldr pc, _undefined_instruction
ldr pc, _software_interrupt
ldr pc, _prefetch_abort
ldr pc, _data_abort
ldr pc, _not_used //注意这个没有使用的地址
ldr pc, _irq
ldr pc, _fiq
_undefined_instruction: .word undefined_instruction
_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_instruction:
nop
software_interrupt:
nop
prefetch_abort:
nop
data_abort:
nop
not_used:
nop
irq:
nop
fiq:
nop
reset:
nop

上面编写好了之后就是编写这个工程的Makefile文件了:
Makefile:
all: start.o
arm-linux-ld -Tforfish.lds -o forfish.elf $^
arm-linux-objcopy -O binary forfish.elf forfish.bin
%.o : %.S
arm-linux-gcc -g -c $^
.PHONY: clean
clean:
rm *.o *.elf *.bin

编写好了之后,工程的框架就建立好了,进行make进行编译:

可以看到bin文件成功生成,说明裸机uboot工程建立完成了。
上一篇:21.核心初始化之svc模式
下一篇:19.Bootloader框架设计
推荐阅读最新更新时间:2026-03-25 06:11
- 用于 7VIN 至 16VIN、1.5V 和 1.2V 输出的 LTM4628EV DC/DC 模块稳压器的典型应用电路
- 使用 Analog Devices 的 LTC3728LIGN 的参考设计
- DER-406 - 适用于 A19 灯的 5.76 W 高 PF 非隔离降压-升压型 TRIAC 调光 LED 驱动器
- ADR5045B 5V 输出精密微功率并联模式电压基准的典型应用
- LT3970EDDB-3.42 2.5V 降压转换器的典型应用
- MC78M08BDTG 8V 电流调节器的典型应用
- LT1021DCN8-5 精密电压基准的典型应用
- DER-282 - 100W, 扁平(11 mm), LLC DC-DC转换器
- REF193 低压差开尔文连接电压基准的典型应用电路
- LT3088EM 线性稳压器用于添加软启动的典型应用
- 海康机器人视觉检测方案守护光伏组件生产质量
- 艾利特CSF系列力控协作机器人来了!
- MTBF突破4万小时!这家工业级3D相机品牌产品稳定性获权威机构认可
- 英特尔创始人、“摩尔定律”提出者戈登·摩尔去世
- 本周机器人行业大事件TOP5
- 【STM32】HAL库 STM32CubeMX教程七---PWM输出(呼吸灯)
- 【STM32】HAL库 STM32CubeMX教程六----定时器中断
- HAL库 STM32CubeMX教程五----看门狗(独立看门狗,窗口看门狗)
- 【STM32】HAL库 STM32CubeMX教程四---UART串口通信详解
- 【STM32】HAL库 STM32CubeMX教程三----外部中断(HAL库GPIO讲解)

EG30边缘计算网关用户手册V1.2
现代雷达系统的信号设计
BFR340T






京公网安备 11010802033920号