1.6410和210採用向量中斷,由硬體執行。有兩組中斷源,相應的控制暫存器也有多個
2.6410和210使能和遮蔽是分開的暫存器
3.遮蔽控制暫存器的讀寫操作從而遮蔽中斷,都是寫入全1
4.6410的**:
@遮蔽中斷,要操作兩個暫存器,目的是將使能中斷暫存器的相關位清除
#define vic0intenclear 0x71200014
#define vic1intenclear 0x71300014
disable_interrupt:
ldr r0, =vic0intenclear
mvn r1, #0x0
str r1, [r0]
ldr r0, =vic1intenclear
str r1, [r0]mov pc, lr
5.中斷的遮蔽與否由兩部分控制
(1)cpsr的i f位
(2)中斷遮蔽暫存器
6.完整**
@****************************
@file:start.s
@@tiny6410裸機上學期**
@****************************
.text
.global _start
@異常向量表
_start:
b reset
ldr pc, _undefined_instruction
ldr pc, _software_interrupt
ldr pc, _command_abort
ldr pc, _data_abort
ldr pc, _nothing_used
ldr pc, _irq
ldr pc, _fiq
@存放實際異常入口位址開闢的儲存單元
_undefined_instruction:
.word undefined_instruction
_software_interrupt:
.word software_interrupt
_command_abort:
.word command_abort
_data_abort:
.word data_abort
_nothing_used:
.word nothing_used
_irq:
.word irq
_fiq:
.word fiq
@各種實際的異常處理函式
undefined_instruction:
nopsoftware_interrupt:
nopcommand_abort:
nopdata_abort:
nopnothing_used:
nopirq:
nopfiq:
nop
@上電復位以後就執行這裡
reset:
bl set_svc
bl set_peri_port
bl disable_watchdog
bl disable_interrupt
@通過讀-修改-寫的方式控制cpsr從而改變工作模式的svc模式
set_svc:
mrs r0, cpsr
bic r0,r0,#0x1f
orr r0,r0,#0xd3
msr cpsr, r0
mov pc, lr
@外設位址初始化,要放在進入svc模式以後的第一步操作
set_peri_port:
ldr r0, =0x70000000 @對於6410來說,記憶體(0x00000000~0x60000000),外設(0x70000000-0x7fffffff)
orr r0, r0, #0x13 @外設大小:256m
mcr p15,0,r0,c15,c2,4 @把r0的值(包括了外設基位址+外設大小)告訴cpu
mov pc, lr
@關閉看門狗
#define pwtcon 0x7e004000
disable_watchdog:
ldr r0, =pwtcon
mov r1, #0x00
str r1, [r0]
mov pc, lr
@遮蔽中斷,要操作兩個暫存器,目的是將使能中斷暫存器的相關位清除
#define vic0intenclear 0x71200014
#define vic1intenclear 0x71300014
disable_interrupt:
ldr r0, =vic0intenclear
mvn r1, #0x0
str r1, [r0]
ldr r0, =vic1intenclear
str r1, [r0]
mov pc, lr
二十六 裝飾器
裝飾器 由於函式也是乙個物件,而且函式物件可以被賦值給變數,所以,通過變數也能呼叫該函式。def now print 2015 3 25 f now f 2015 3 25 函式物件有乙個 name 屬性,可以拿到函式的名字 now.name now f.name now 現在,假設我們要增強 no...
每日程式設計(二十六)
如果不存在下乙個更大的排列,則將數字重新排列成最小的排列 即公升序排列 必須原地修改,只允許使用額外常數空間。以下是一些例子,輸入位於左側列,其相應輸出位於右側列。1,2,3 1,3,2 3,2,1 1,2,3 1,1,5 1,5,1 分析 很明顯從後想前遍歷,直到找到乙個前面的數比後面的小,然後在...
出差(二十六)調節
週日,下雨的一天,沒有因為昨晚的最強大腦影響今天起床,電視節目依舊精彩,再次被鬼才之眼的超能力震撼,直接又一次秒殺日本對手,給力。想到兒子這段時間連續上課,補課,大家都在努力,當老爸的也得加油。今天上午把新調整的功能重新過了一遍,對頁面布局,資料聯動做了一輪驗證,按著正常的流程基本能走通。由於是週日...