Part5核心初始化_lesson1---异常向量表

发布者:EnchantedBreeze最新更新时间:2024-10-09 来源: cnblogs关键字:核心初始化  异常向量表  脚本文件 手机看文章 扫描二维码
随时随地手机看文章

1.1异常

异常向量:

异常向量表:

代码的编写

start.S文件

gboot.lds链接器脚本文件

 

makefile工程文件:


关键字:核心初始化  异常向量表  脚本文件 引用地址:Part5核心初始化_lesson1---异常向量表

上一篇:Part5核心初始化_lesson2---设置svc模式
下一篇:Part4_lesson4---Bootloader架构设计

推荐阅读最新更新时间:2026-03-25 10:46

20.核心初始化异常量表
一、异常向量表: 包含:1.异常定义 2.异常类型 3.异常入口 4.向量表 首先异常定义,在ARM Architecture Reference Manual.pdf文档中,2.Programmers' Model的2.6.Exceptions异常: 异常:因为内部或外部的一些事件,导致处理器停下来正在处理的工作,转而去处理这些发生的事件。 2.异常类型 当一种异常发生的时候,ARM处理器会跳转到对应该异常的固定地址去执行异常处理程序,而这个固定的地址,就称之为异常向量,多个异常向量在一起就形成了异常向量表。 从上面的异常向量地址可以注意到,地址0x00000014没有使用。上图的右边可以看到有
[单片机]
20.<font color='red'>核心</font><font color='red'>初始化</font>之<font color='red'>异常</font>向<font color='red'>量表</font>
22.核心初始化之看门狗
看门狗定时器,在嵌入式领域,有些设备需要工作一些极端的环境,就是人很少到或者很难到的地方。在长期的运作中,难免会出现故障死机的情况,这时,如果派人去查看情况,耗费耗时等,所以人们就设置了一种机制,就是系统里有一个重启的机制叫看门狗定时器。它工作的方式:就是系统的watchdog在硬件上实现了计时功能,启动计时后,用户(软件)必须在计时结束前重新开始计时,俗称 喂狗 ,如果到了超时的时候,还没有重新开始计时,那么就认为系统死机了,进行自动重启系统。 芯片手册:6410的34章里: 看门狗的工作流程: 由于我们现在使用的日常里的操作系统,没那么容易死机,所以为了避免系统老是重启,因为没喂狗。所以干脆把它给关闭掉。 关闭的操作: 看
[单片机]
22.<font color='red'>核心</font><font color='red'>初始化</font>之看门狗
23.核心初始化之中断屏蔽-2440
在上一节中,我在设置关闭看门狗的时候,已经把WTCON的 设置为0,屏蔽了中断。如下图: 这一节是要屏蔽中断寄存器: 下面是2440芯片处理中断的机制: 中断屏蔽寄存器: 可以看到,只要把中断对应的中断屏蔽寄存器对应的位置为1即可。所以屏蔽中断就是往中断屏蔽寄存器置为全1,就屏蔽了所有中断。 编译:
[单片机]
23.<font color='red'>核心</font><font color='red'>初始化</font>之中断屏蔽-2440
26.核心初始化之关闭MMU和cache
下面看看ARM存储体系: 可以看到速度最快的是处理器和内部寄存器,他们的数量很少,价格很昂贵。接着是TCM紧耦合存储器:cache和main memory。速度最慢的是外部存储介质:Flash和SD卡等。 CACHE: 上面是两种访存的两种机制,一种是处理器直接访问主存,另一种是处理器-cache-主存。第一种中,处理器的速度相比主存是非常快的,所以两者的速度很不匹配。浪费了处理器的很多资源。第二种是为了改进第一种的缺陷,在处理器和主存之间增加了一种叫Cache的原件,cache的访问速度比主存快,比处理器慢了点,这样就缓和了第一种的资源浪费现象。 其实在cache里存放的是主存的一些数据的拷贝:当处理器要访问主存里的数据
[单片机]
26.<font color='red'>核心</font><font color='red'>初始化</font>之关闭MMU和cache
Part5核心初始化_lesson2---设置svc模式
我们的Linux系统以及bootloader是工作在SVC模式!!怎么把处理器设置为SVC模式呢? CPSR寄存器或者SPSR寄存器最低5位可以设置模式,把该5位设置为0b10011, start.s文件
[单片机]
Part5<font color='red'>核心</font><font color='red'>初始化</font>_lesson2---设置svc模式
Part5核心初始化_lesson3---关闭看门狗
1、看门狗---作用 2、看门狗工作方式 3、原理图 时钟源来自于PCLK经过分频器,经过选择器,输出到作为看门狗定时器,WTDAT为一个预载值,当它计数为零的时候,还没有给WTDAT赋值,那么它会发出一个重启信号RESET。 找到S3C6410X文件,找到里面的watch dog章节, 关闭代码如下: start.s代码:
[单片机]
Part5<font color='red'>核心</font><font color='red'>初始化</font>_lesson3---关闭看门狗
S3C6410核心初始化
一:异常向量表 异常定义:因为内部或者外部一些事件,导致处理器停下正在处理的工作,转而去处理这些发生的事件。当一种异常发生的时候,ARM处理器会跳转到对应该异常的固定地址去执行异常处理程序,而这个固定的地址,就称之为异常向量。以下为七个异常向量及处理函数跳转关系组成的表。 在Data Abort和IRQ之间有一段地址没有用上,在初始化的时候需要补上一段_not_used ,不然的话会报错,在发生异常的时候,程序会跳转到undefined_instruction: nop这段去执行,由于现在还不需要操作这些异常向量,所以在后面只加上nop。具体以后还会进一步学到 .text .global _start _st
[单片机]
S3C6410<font color='red'>核心</font><font color='red'>初始化</font>
基于S3C6410的ARM11学习(三) 核心初始化之设置中断向量表
前面将流程搞清楚后,下面就开始进行按照顺序来编写程序了。 第一步就是进行中断向量表的设置。在ARM11中,中断向量表叫做异常向量表。 ARM11共有10种异常,这个在ARM11的datasheet中有。 这里说明一下: 异常 说明 详细说明 Reset 复位异常 当系统刚上电,或者按下复位键时候,触发这个异常,这个时候,程序跳转到这个地址处执行程序 undefined_instruction 未定义指令异常 当程序执行发现有一条指令是未定义的指令,会触发这个异常,这个时候,程序跳转到这个地址处执行程序 software_interrupt 软中断异
[单片机]
基于S3C6410的ARM11学习(三) <font color='red'>核心</font><font color='red'>初始化</font>之设置中断向<font color='red'>量表</font>
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved