⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wini.asm

📁 C5402DSP汇编编写的C5402的自举程序
💻 ASM
字号:
		.mmregs
		.def init_54


;ST0 register organization
*    -----------------------------------------------------------------
*    |15   13| 12 | 11 | 10  |   9 | 8          0|
*    -----------------------------------------------------------------
*    |  ARP  | TC | C  | OVA | OVB |     DP      |
*    -----------------------------------------------------------------

K_ARP          .set     000b<<13     ; ARP can be addressed for 000b
				     ; --- 111b   reset value
K_TC           .set     1b<<12       ; TC = 1 at reset
K_C            .set     1b<<11       ; C = 1 at reset
K_OVA          .set     1b<<10       ; OVA = 0 at reset , set OVA
K_OVB          .set     1b<<9        ; OVB = 0 at reset , SET OVB
K_DP           .set     00000000b<<0 ; DP is cleared to 0 at reset
K_ST0          .set     K_ARP|K_TC|K_C|K_OVA|K_OVB|K_DP
**********************************************************************

;ST1 register organization
*    ----------------------------------------------------------------
*    |  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 |
*    ----------------------------------------------------------------

K_BRAF         .set    0b<<15      ; BRAR = 0 at reset
K_CPL          .set    0b<<14      ; CPL = 0 at reset
K_XF           .set    1b<<13      ; XF = 1 at reset
K_HM           .set    0b<<12      ; HM = 0 at reset
K_INTM         .set    1b<<11      ; INTM
K_ST1_RESR     .set    0b<<10
K_OVM          .set    1b<<9       ; OVM = 0 at reset
K_SXM          .set    1b<<8       ; SXM =1 at reset
K_C16          .set    0b<<7       ; C16 = 0 at reset
K_FRCT         .set    1b<<6       ; FRCT = 0 at reset
K_CMPT         .set    0b<<5       ; CMPT = 0 at reset
K_ASM          .set    00000b<<0   ; ASM = 0 at reset
K_ST1_HI       .set    K_BRAF|K_CPL|K_XF|K_HM|K_INTM|K_ST1_RESR
K_ST1_LO       .set    K_OVM|K_C16|K_FRCT|K_CMPT|K_ASM
K_ST1          .SET    K_ST1_HI|K_ST1_LO
*********************************************************************

;PMST  register organization
*    -------------------------------------------------------------
*    | 15    7 |     6  |  5   |  4   |  3   |  2     | 1    0  |
*    -------------------------------------------------------------
*    |   IPTR  | MP/MC- | OVLY | AVIS | DROM | CLKOFF | RESEVED |
*    -------------------------------------------------------------

K_IPTR         .SET    000000001b << 07   ; 111111111b at reset
K_MP_MC        .SET    1b << 6            ; 1 at reset
K_OVLY         .SET    1b << 5            ; 0 at reset, 
K_AVIS         .SET    0b << 4            ; 0 at reset
K_DROM         .SET    1b << 3            ; 0 at reset		;the code length is larger than 32k
K_CLKOFF       .SET    0b << 2            ; 0 at reset
K_PMST_RESR    .SET    00b                ; 00b at reset

K_PMST         .SET    K_IPTR|K_OVLY|K_DROM|K_CLKOFF|K_PMST_RESR  


*SWWSR register organization
*    --------------------------------------------------------------
*    |    15    | 14  12| 11    9| 8    6 |  5      3| 2         0|
*    --------------------------------------------------------------
*    | reserved |  I/O  |  DATA  |  DATA  |  PROGRAM |  PROGRAM   |
*    --------------------------------------------------------------

K_SWWSR_RESV   .SET     1b << 15     ; reset  
K_IO           .SET     111b << 12   ; reset
K_DATA1        .SET     111b <<  9   ; reset
K_DATA2        .SET     111b <<  6   ; reset
K_PROGRAM1     .SET     111b <<  3   ; reset
K_PROGRAM2     .SET     111b         ; reset

K_SWWSR        .SET     K_SWWSR_RESV|K_IO|K_DATA1|K_DATA2|K_PROGRAM1|K_PROGRAM2


*Bank Switch Control Register(BSCR) organization
*     ----------------------------------------
*     | 15   12|   11  | 10     2 | 1  | 0   | 
*     ----------------------------------------
*     | BNKCMP | PS-DS | Reserved | BH | EXIO|
*     ---------------------------------------- 

K_BNKCMP       .SET     1111b << 12   ; bank size = 4k
K_PSDS         .SET     1b    << 11   ; reset
K_BSCR_RESV    .SET     000000000b << 2 
K_BH           .SET     0b   << 1     ; reset
K_EXIO         .SET     0b            ; reset 
K_BSCR         .SET     K_BNKCMP|K_PSDS|K_BSCR_RESV|K_BH|K_EXIO




      
;--------------------------------------------------------------
;   Functional Description
;     Initializes the processor from  a reset state
;--------------------------------------------------------------

               .sect      "mainprg"
init_54:       
			STM      #K_SWWSR ,SWWSR
            STM      #K_BSCR  ,BSCR
            STM      #K_ST0   ,ST0
            STM      #K_ST1   ,ST1
            LDM      PMST,A
            OR       #60h,A 
            AND      #0xfff7,A
            STLM     A,PMST
            nop
            STLM 	 A,PMST		
            STM   	 0h,CLKMD	
cmode:		LDM   	 CLKMD,A		
        	AND   	 #1h,0,A,A	
        	BC    	 cmode,ANEQ
        	STM   	 0004h,CLKMD	;CLKMD=9207h
            nop
            nop  
            RET
       .end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -