ARM·中斷控制器
之前在基礎(chǔ)篇里面看過(guò)中斷概念的視頻,不過(guò)因?yàn)榻榻B的十分繁瑣,效果不是很好。今天看了高級(jí)開發(fā)篇,決定把中斷的內(nèi)容簡(jiǎn)化一些。
我覺得可以把這篇筆記分成2個(gè)區(qū),寄存器區(qū)和代碼區(qū)。寄存器區(qū)方便以后查看,代碼區(qū)方便對(duì)中斷控制的分析
【代碼分析】
@******************************************************************************
@ File:head.S
@ 功能:初始化,設(shè)置中斷模式、管理模式的棧,設(shè)置好中斷處理函數(shù)
@******************************************************************************
.extern main @extern 聲明引用main函數(shù)
.text
.global _start
_start:
@******************************************************************************
@ 中斷向量,本程序中,除Reset和HandleIRQ外,其它異常都沒(méi)有使用
@******************************************************************************
@ 0x04: 未定義指令中止模式的向量地址
HandleUndef:
@ 0x08: 管理模式的向量地址,通過(guò)SWI指令進(jìn)入此模式
HandleSWI:
@ 0x0c: 指令預(yù)取終止導(dǎo)致的異常的向量地址
HandlePrefetchAbort:
@ 0x10: 數(shù)據(jù)訪問(wèn)終止導(dǎo)致的異常的向量地址
HandleDataAbort:
@ 0x14: 保留
HandleNotUsed:
@ 0x18: 中斷模式的向量地址
@ 0x1c: 快中斷模式的向量地址
HandleFIQ:
Reset:
halt_loop:
HandleIRQ:
int_return:
注意:
(1)異常向量表(這里只用到了reset和IRQ異常)和各工作模式的CPRS
(2)
1.在管理模式允許中斷,在中斷模式屏蔽中斷,防止中斷嵌套;且在管理模式用來(lái)Thumb,可以對(duì)表查看,做了解。
2.在每一中異常下都必須設(shè)置堆棧指針,便于調(diào)用C函數(shù),因?yàn)閜c在每種狀態(tài)下都是獨(dú)立的。
3.中斷初始化的同時(shí),也順便將硬件GPIO管腳初始化,把中斷函數(shù)初始化 ;
【關(guān)于中斷寄存器,也就是這章的重點(diǎn),也就都在中斷函數(shù)初始化 bl init_irq @ 調(diào)用中斷初始化函數(shù),在init.c中中】
#include "s3c24xx.h"
#define GPF4_out (1<<(4*2))
#define GPF5_out (1<<(5*2))
#define GPF6_out (1<<(6*2))
#define GPF4_msk (3<<(4*2))
#define GPF5_msk (3<<(5*2))
#define GPF6_msk (3<<(6*2))
#define GPF0_eint (0x2<<(0*2))
#define GPF2_eint (0x2<<(2*2))
#define GPG3_eint (0x2<<(3*2))
#define GPF0_msk (3<<(0*2))
#define GPF2_msk (3<<(2*2))
#define GPG3_msk (3<<(3*2))
void disable_watch_dog(void)
{
}
void init_led(void)
{
}
void init_irq( )
{
}
紅色部分,便是我們這章的重點(diǎn)內(nèi)容,也就是對(duì)中斷寄存器的配置,init的初始化 。
關(guān)鍵詞:
ARM中斷控制
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論