?? initdsp.inc
字號(hào):
*********************************************************
*FILENAME:INITDSP.INC *
*This include file contains the initial values of *
*C542 configuration registers. *
*BY:Wuchun DATE:2002.8.7 *
*Modified:彭洪 DATE:2005.2.4 *
*********************************************************
;Register Organization (06h)
;ST0:Status register 0
;-------------------------
;|15-13|12|11| 10| 9 |8-0|
;-------------------------
;| ARP |TC| C|OVA|OVB|DP |
;--------------------------------------------------------------------------------------
;15-13 ARP 輔助寄存器指針。為了與'C5x、'C2x和'C2xx兼容而設(shè)置,一般不用
;12 TC 測(cè)試/控制標(biāo)志。一些測(cè)試、比較等指令設(shè)置此標(biāo)志。TC到值可以作為其它一些條
; 件執(zhí)行指令到條件。
;11 C 如果ALU加運(yùn)算產(chǎn)生了進(jìn)位或減運(yùn)算沒(méi)有產(chǎn)生借位,則置1,否則置0。
;10 OVA 如果ALU作加法運(yùn)算或MAC中的加法器運(yùn)算結(jié)果產(chǎn)生了溢出,且結(jié)果存放到累加器A,
; 則OVA置1
;9 OVB 如果ALU作加法運(yùn)算或MAC中的加法器運(yùn)算結(jié)果產(chǎn)生了溢出,且結(jié)果存放到累加器B,
; 則OVA置1
;8-0 DP 數(shù)據(jù)頁(yè)指針
;--------------------------------------------------------------------------------------
K_ARP .set 000b<<13;左移<<<是邏輯左移
K_TC .set 1b<<12
K_C .set 0b<<11
K_OVA .set 0b<<10
K_OVB .set 0b<<9
K_DP .set 000000000b<<0
K_ST0 .set K_ARP|K_TC|K_C|K_OVA|K_OVB|K_DP
;初始化結(jié)果K_ST0(1000h)
;|15-13| 12| 11| 10| 9 | 8-0 |
;| ARP | TC| C |OVA|OVB| DP |
;| 000 | 1 | 0 | 0 | 0 |000000000|
;Register Organization (07h)
;ST1:Status register 1
;--------------------------------------------------
;| 15 | 14|13|12| 11 |10| 9 | 8 | 7 | 6 | 5 |4-0|
;--------------------------------------------------
;|BRAF|CPL|XF|HM|INTM|0 |OVM|SXM|C16|FRCT|CMPT|ASM|
;-------------------------------------------------------------------------------------
;15 BRAF Block-repeat active flag,塊重復(fù)有效標(biāo)志。BRAF=1表示程序正處于重復(fù)執(zhí)行
; 的塊中。當(dāng)塊重復(fù)計(jì)數(shù)器遞減到0時(shí),BRAF清0。
;14 CPL 編譯器模式位,CPL=0使用堆棧指針SP尋址,CPL=1使用頁(yè)指針DP尋址
;13 XF XF狀態(tài)。直接設(shè)置XF引腳的狀態(tài)。
;12 HM Hold mode,保持模式,決定處理器進(jìn)入保持方式后到操作。HM=0 CPU繼續(xù)執(zhí)行
; HM=1 CPU停止執(zhí)行
;11 INTM 全局中斷屏蔽位。INTM=0 打開(kāi)中斷INTM=1 所有可屏蔽中斷被屏蔽
;9 OVM 溢出模式。OVM決定在運(yùn)算產(chǎn)生溢出時(shí),存放到目的累加器的值。OVM=0 允許溢出
; OVM=1 根據(jù)溢出方向,向目的累加器寫(xiě)入最大正數(shù)或最小負(fù)數(shù)。
;8 SXM 符號(hào)擴(kuò)展模式。SXM=0 不作符號(hào)擴(kuò)展SXM=1 運(yùn)算時(shí)作符號(hào)擴(kuò)展,表示有符號(hào)數(shù)運(yùn)算。
;7 C16 C16=0 ALU作雙精度算術(shù)運(yùn)算C16=1 ALU作雙16bit算術(shù)運(yùn)算
;6 FRCT 小數(shù)乘法模式。
;5 CMPT 與'C5x兼容模式,一般為0。
;4-0 ASM 累加器移位模式。在存儲(chǔ)累加器時(shí)指定一個(gè)移位值,-16~15。
;--------------------------------------------------------------------------------------
K_BRAF .set 0b<<15
K_CPL .set 1b<<14
K_XF .set 1b<<13
K_HM .set 0b<<12
K_INTM .set 1b<<11 ;復(fù)位以后立即屏蔽中斷
K_ST1_RES .set 0b<<10
K_OVM .set 0b<<9
K_SXM .set 1b<<8
K_C16 .set 0b<<7
K_FRCT .set 0b<<6
K_CMPT .set 0b<<5
K_ASM .set 00000b<<0
K_ST1 .set K_BRAF|K_CPL|K_XF|K_HM|K_INTM|K_ST1_RES|K_OVM|K_SXM|K_C16|K_FRCT|K_CMPT|K_ASM
;初始化結(jié)果K_ST1(6900h)
;|15 | 14| 13|12| 11 |10| 9 | 8 | 7 | 6 | 5 | 4-0 |
;|BRAF|CPL| XF|HM|INTM| 0|OVM|SXM|C16|FRCT|CMPT| ASM |
;| 0 | 1 | 1 | 0| 1 | 0| 0 | 1 | 0 | 0 | 0 |00000|
;Register Organization (1dh)
;PMST:Processor mode status register
;--------------------------------------------
;|15-7| 6 | 5 | 4 | 3 | 2 | 1 | 0 |
;--------------------------------------------
;|IPTR|MP/MC#|OVLY|AVIS|DROM|CLKOFF|SMUL|SST|
;--------------------------------------------------------------------------------------
;15-7 IPTR 中斷向量表指針,不受RESET指令的影響。
;6 MP/MC# 微處理器/微計(jì)算機(jī)模式。MP/#MC=0 微計(jì)算機(jī)模式,片上ROM有效;(從片內(nèi)ff80
; 執(zhí)行)MP/#MC=1 微處理器模式,片上ROM無(wú)效。(從片外ff80執(zhí)行)
;5 OVLY 對(duì)于5402,OVLY決定0000H到3FFFH程序存儲(chǔ)空間的片內(nèi)片外分配
; OVLY=1, 0000H~007FH保留,程序無(wú)法占用。0080H~3FFFH為片內(nèi)RAM
; OVLY=0, 007FH~3FFFFH均為片外RAM
;4 AVIS Address Visibility Mode。決定存取片內(nèi)存儲(chǔ)器時(shí)地址線是否發(fā)生變化。
; AVIS=1 發(fā)生變化,AVIS=0 不發(fā)生變化。
;3 DROM 數(shù)據(jù)ROM。DROM=0 片上ROM都被映射到程序空間;DROM=1 片上部分ROM被映射到數(shù)據(jù)空間。
;2 CLKOFF CLKOFF=1時(shí),CLKOUT引腳無(wú)時(shí)鐘信號(hào)輸出。
;1 SMUL 乘法飽和。在MAC和MAS指令中,作加減運(yùn)算前飽和。
;0 SST 存儲(chǔ)時(shí)飽和。
;--------------------------------------------------------------------------------------
K_IPTR .set 000000001b<<7;80h 其中1b是指80h中的高9位
K_MP_MC .set 0b<<6
K_OVLY .set 1b<<5
K_AVIS .set 0b<<4
K_DROM .set 0b<<3
K_CLKOFF .set 1b<<2
K_SMUL .set 0b<<1
K_SST .set 0b<<0
K_PMST .set K_IPTR|K_MP_MC|K_OVLY|K_AVIS|K_DROM|K_CLKOFF|K_SMUL|K_SST
;初始化結(jié)果PMST(00a4h)
;| 15-7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
;| IPTR |MP/MC#|OVLY|AVIS|DROM|CLKOFF|SMUL|SST|
;|000000001| 0 | 1 | 0 | 0 | 1 | 0 | 0 |
;Register Organization (28h)
;SWWSR:Software wait-state register
;-----------------------------------------
;| 15|14-12|11-9 | 8-6 | 5-3 | 2-0 |
;-----------------------------------------
;|XPA| I/O |EDATA|IDATA|EPROGRAM|IPROGRAM|
;-----------------------------------------
;15 XPA 擴(kuò)展程度地址控制,只讀
;14-12 I/O 其值為I/O空間(0000h-FFFFh)的等待周期
;11-9 edata 其值為數(shù)據(jù)空間(8000h-FFFFh)的等待周期
;8-6 idata 其值為數(shù)據(jù)空間(0000h-7FFFh)的等待周期
;5-3 eprogram 其值為程序空間(8000h-FFFFh)的等待周期,XPA=0為程序空間
; (40000h-7FFFFh)的等待周期,XPA=1
;2-0 iprogram 其值為程序空間(0000h-7FFFh)的等待周期,XPA=0為程序空間
; (00000h-3FFFFh)的等待周期,XPA=1
;--------------------------------------------------------------------------------------
K_XPA .set 0b<<15
K_I_O .set 111b<<12
K_EDATA .set 111b<<9
K_IDATA .set 000b<<6
K_EPROGRAM .set 111b<<3
K_IPROGRAM .set 000b<<0
K_SWWSR .set K_XPA|K_I_O|K_EDATA|K_IDATA|K_EPROGRAM|K_IPROGRAM
;初始化結(jié)果SWWSR(7E38h)
;| 15|14-12|11-9 | 8-6 | 5-3 | 2-0 |
;|XPA| I/O |EDATA|IDATA|EPROGRAM|IPROGRAM|
;| 0 | 111 | 111 | 000 | 111 | 000 |
;Register Organization (29h)
;BSCR:Bank-switching control register組間切換控制寄存器
;-----------------------------------
;| 15-12| 11 | 10-3 | 2 | 1| 0 |
;-----------------------------------
;|BNKCMP|PS-DS|Reserved|HBH|BH|EXIO|
;-----------------------------------
;15-12 BNKCMP 分組大小,這4位分別與地址線A15~A12,決定了分組大小,當(dāng)兩次連續(xù)的
; 片外訪問(wèn)在不同組是,會(huì)自動(dòng)插入一個(gè)等待
; BNKCMP 屏蔽的地址 分組大小
; 0000 無(wú) 64K
; 1000 A15 32K
; 1100 A15~A14 16K
; 1110 A15~A13 8K
; 1111 A15~A12 4K
;11 PS-DS 兩次連續(xù)的片外讀訪問(wèn)分別在程序空間和數(shù)據(jù)空間,1為加入一個(gè)周期的等待
; 0表示不等待
;2 HBH 0為主機(jī)總線不保持,1為主機(jī)總線保持在先前的電平
;1 BH 0為總線不保持,1為總線保持在先前電平
;0 EXI0 0為接通外總線,1為關(guān)閉外總線,使地址數(shù)據(jù)先為高阻,片選、選通R/W、
;--------------------------------------------------------------------------------------
K_BNKCMP .set 0000b<<12
K_PS_DS .set 0b<<11
K_BSSR_RES .set 00000000b<<3
K_HBH .set 0b<<2
K_BH .set 0b<<1
K_EXIO .set 0b<<0
K_BSCR .set K_BNKCMP|K_PS_DS|K_BSSR_RES|K_HBH|K_EXIO
;初始化結(jié)果SWWSR(0800h)
;| 15-12| 11 | 10-3 | 2 | 1| 0 |
;|BNKCMP|PS-DS|Reserved|HBH|BH|EXIO|
;| 0000 | 1 |00000000| 0 | 0| 0 |
;Register Organization (0h)
;IMR:Interrupt mask register
;--------------------------------------------------------------------------------------------
;|15-14| 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
;--------------------------------------------------------------------------------------------
;|resvd|DMAC5|DMAC4|BXINT1|BRINT1|HPIINT|INT3|TINT1|DMAC0|BXINT0|BRINT0|TINT0|INT2|INT1|INT0|
;--------------------------------------------------------------------------------------------
;先將IMR的某位置置1,則相應(yīng)中斷開(kāi)放。這個(gè)寄存器只是對(duì)可屏蔽中斷有效
;中斷響應(yīng)過(guò)程
;對(duì)于軟件中斷和硬件可屏蔽中斷,CPU立即響應(yīng)。對(duì)于硬件可屏蔽中斷必須滿足以下條件,
;CPU才能夠響應(yīng)中斷
;(1)出現(xiàn)多個(gè)中斷時(shí),此中斷的優(yōu)先級(jí)最高
;(2)ST1中的INTM位為1,開(kāi)放此中斷
;(3)IMR中的中斷響應(yīng)響應(yīng)相應(yīng)位為1,開(kāi)放此中斷
;--------------------------------------------------------------------------------------
K_IMR_RES .set 00b<<14
K_DMAC5_OFF .set 0b<<13
K_DMAC5_ON .set 1b<<13
K_DMAC4_OFF .set 0b<<12
K_DMAC4_ON .set 1b<<12
K_BXINT1_OFF .set 0b<<11
K_BXINT1_ON .set 1b<<11
K_BRINT1_OFF .set 0b<<10
K_BRINT1_ON .set 1b<<10
K_HPIINT_OFF .set 0b<<9
K_HPIINT_ON .set 1b<<9
K_INT3_OFF .set 0b<<8
K_INT3_ON .set 1b<<8
K_TINT1_OFF .set 0b<<7
K_TINT1_ON .set 1b<<7
K_DMAC0_OFF .set 0b<<6
K_DMAC0_ON .set 1b<<6
K_BXINT0_OFF .set 0b<<5
K_BXINT0_ON .set 1b<<5
K_BRINT0_OFF .set 0b<<4
K_BRINT0_ON .set 1b<<4
K_TINT0_OFF .set 0b<<3
K_TINT0_ON .set 1b<<3
K_INT2_OFF .set 0b<<2
K_INT2_ON .set 1b<<2
K_INT1_OFF .set 0b<<1
K_INT1_ON .set 1b<<1
K_INT0_OFF .set 0b<<0
K_INT0_ON .set 1b<<0
;第一個(gè)為關(guān)閉AD時(shí)的設(shè)置|00|0|0|0|0|0|0|0|0|0|0|0|1|1|1|
K_IMR_AD_OFF .set K_IMR_RES|K_DMAC5_OFF|K_DMAC4_OFF|K_BXINT1_OFF|K_BRINT1_OFF|K_HPIINT_OFF|K_INT3_OFF|K_TINT1_OFF|K_DMAC0_OFF|K_BXINT0_OFF|K_TINT0_OFF|K_INT2_ON|K_INT1_ON|K_INT0_ON
;第二個(gè)為打開(kāi)AD時(shí)的設(shè)置|00|0|0|0|0|0|0|1|0|0|0|1|1|1|1|
K_IMR_AD_ON .set K_IMR_RES|K_DMAC5_OFF|K_DMAC4_OFF|K_BXINT1_OFF|K_BRINT1_OFF|K_HPIINT_OFF|K_INT3_ON|K_TINT1_OFF|K_DMAC0_OFF|K_BXINT0_OFF|K_TINT0_ON|K_INT2_ON|K_INT1_ON|K_INT0_ON
;Register Organization (58h)
;CLKMD Clock mode
;-----------------------------------------------------
;| 15-12| 11 | 10-3 | 2 | 1 | 0 |
;-----------------------------------------------------
;|PLLMUL|PLLDIV|PLLCOUNT|PLLON/OFF|PLL NDIV|PLLSTATUS|
;--------------------------------------------------------------------------------------
;注意CLKMD1、2、3的引角設(shè)置各種器件不同
;15-12 PLLMUL PLL乘數(shù)
;11 PLLDIV PLL除數(shù)
;10-3 PLLCOUNT PLL計(jì)數(shù)器,作為PLL從開(kāi)始到瑣定處理器時(shí)鐘信號(hào)的延時(shí)記數(shù)時(shí)間,保證
; 轉(zhuǎn)換的可靠性頻率
;2 PLLON/OFF PLL通斷位
;1 PLL NDIV 時(shí)鐘發(fā)生器選擇位
;0 PLLSTATUS 只讀,用來(lái)指示時(shí)鐘發(fā)生器的工作方式,0為分頻PLL方式,1為倍頻PLL方式
;DSP實(shí)際工作的頻率=輸入頻率X系數(shù)
; PLL NDIV PLLDIV PLL PLLMUL 系數(shù)
; 0 x 0-14 0.5
; 1 x 15 0.25
; 1 0 0-14 PLLMUL+1
; 1 0 15 1
; 1 1 0或偶數(shù) (PLLMUL+1)/2
; 1 1 奇數(shù) PLLNUL/4
;--------------------------------------------------------------------------------------
K_PLLMULX1 .set 0000b<<12 ;跑10MHz
K_PLLMULX10 .set 1001b<<12 ;跑80MHz
K_PLLDIV .set 0b<<11 ;不分頻
K_PLLCOUNT .set 11011010b<<3;PLLCOUNT>瑣定時(shí)間/(16*Tclkin),100MHz時(shí)為35us,最快為8us
K_PLLON_OFF .set 1b<<2;當(dāng)PLLON/OFF=0并且PLL NDIV=0時(shí)PLL斷開(kāi),這兩位其它的組合PLL都運(yùn)行
K_PLLNDIV .set 1b<<1
K_PLLSTATUS .set 0b<<0
;注意!!要改變PLL的倍頻,必須先把時(shí)鐘從PLL模式切換到DIV模式,然后再切換
;到新的倍頻PLL模式。
;對(duì)外部晶振為10Mhz的542的頻率設(shè)置(00e6h)
K_CLKMD_10M .set K_PLLMULX1|K_PLLDIV|K_PLLCOUNT|K_PLLON_OFF|K_PLLNDIV|K_PLLSTATUS
;對(duì)外部晶振為40Mhz的542的頻率設(shè)置(30e6h)
K_CLKMD_80M .set K_PLLMULX10|K_PLLDIV|K_PLLCOUNT|K_PLLON_OFF|K_PLLNDIV|K_PLLSTATUS
;Register Organization (24h)
;TCR 定時(shí)控制寄存器
;----------------------------------
;|15-12| 11 | 10 |9-6| 5 | 4 | 3-0|
;----------------------------------
;|resvd|SOFT|FREE|PSC|TRB|TSS|TDDR|
;----------------------------------
;11 SOFT 軟件調(diào)試控制位 SOFT和FREE配合使用
;10 FREE 軟件調(diào)試控制位
; SOFT FREE 定時(shí)器操作
; 0 0 定時(shí)器立即停止工作
; 1 0 計(jì)數(shù)器減為0時(shí)停止工作
; x 1 定時(shí)器繼續(xù)運(yùn)行(PRD重新裝入TIM)
;9-6 PSC 預(yù)標(biāo)定值 定時(shí)器時(shí)鐘由CLKOUT提供,每來(lái)一個(gè)時(shí)鐘
; 預(yù)標(biāo)定計(jì)數(shù)器PSC減1,當(dāng)PSC減至0時(shí),下一個(gè)脈沖
; 到來(lái)PSC產(chǎn)生借位,借位信號(hào)控制計(jì)數(shù)器TIM減1并且
; 將TDDR的內(nèi)容加載到PSC中。
;5 TRB 當(dāng)TRB=1時(shí),預(yù)標(biāo)定分頻系數(shù)TDDR和定時(shí)器周期寄存器PRD
; 的數(shù)據(jù)分別加載至定時(shí)器預(yù)標(biāo)定計(jì)數(shù)器PSC和定時(shí)器TIM中。
; 通常情況下TRB=0
;4 TSS TSS=0 定時(shí)器啟動(dòng)開(kāi)始工作,TSS=1定時(shí)器停止工作
;3-0 TDDR 定時(shí)器分頻系數(shù)
K_TCR_RES .set 0000b<<12
K_TCR_SOFT .set 0b<<11
K_TCR_FREE .set 0b<<10
K_TCR_PSC .set 0000b<<6
K_TCR_TRB .set 0b<<5
K_TCR_TSS .set 1b<<4
K_TCR_TDDR .set 0000b<<0
K_TCR .set K_TCR_RES|K_TCR_SOFT|K_TCR_FREE|K_TCR_PSC|K_TCR_TRB|K_TCR_TSS|K_TCR_TDDR
;初始化結(jié)果TCR(0020h)
;|15-12| 11 | 10 | 9-6| 5 | 4 | 3-0|
;|resvd|SOFT|FREE| PSC|TRB|TSS|TDDR|
;| 0000| 0 | 0 |0000| 1 | 0 |0000|
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -