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

📄 vectors.s

📁 motorola 针对coldfire 5275 评估板的Dbug bootloader源程序
💻 S
字号:
/*
 * File:    vectors.s
 * Purpose: MCF5xxx vector table for dBUG.
 *
 * Notes:   
 *
 */

#ifndef _UNDERSCORE_
#define _asm_startmeup          asm_startmeup
#define _asm_exception_handler  asm_exception_handler
#define _asm_isr_handler        asm_isr_handler
#define _dbug_sc_handler        _dbug_sc_handler
#define ___SP_INIT              ___SP_INIT
#endif

    .global VECTOR_TABLE
    .global _VECTOR_TABLE
    .global start

    .extern _asm_startmeup
    .extern ___SP_INIT
    .extern _asm_exception_handler
    .extern _asm_isr_handler
    .extern _dbug_sc_handler

    .text

/*
 * Exception Vector Table
 */
VECTOR_TABLE:
_VECTOR_TABLE:
INITSP:     .long   ___SP_INIT              /* Initial SP           */
INITPC:     .long   start                   /* Initial PC           */
vector02:   .long   _asm_exception_handler  /* Access Error         */
vector03:   .long   _asm_exception_handler  /* Address Error        */
vector04:   .long   _asm_exception_handler  /* Illegal Instruction  */
vector05:   .long   _asm_exception_handler  /* Divide by Zero       */
vector06:   .long   _asm_exception_handler  /* Reserved             */
vector07:   .long   _asm_exception_handler  /* Reserved             */
vector08:   .long   _asm_exception_handler  /* Privilege Violation  */
vector09:   .long   _asm_exception_handler  /* Trace                */
vector0A:   .long   _asm_exception_handler  /* Unimplemented A-Line */
vector0B:   .long   _asm_exception_handler  /* Unimplemented F-Line */
vector0C:   .long   _asm_exception_handler  /* Non-PC Brkpt Debug Int */
vector0D:   .long   _asm_exception_handler  /* PC Brkpt Debug Int   */
vector0E:   .long   _asm_exception_handler  /* Format Error         */
vector0F:   .long   _asm_exception_handler  /* Unitialized Int      */
vector10:   .long   _asm_exception_handler  /* Reserved             */
vector11:   .long   _asm_exception_handler  /* Reserved             */
vector12:   .long   _asm_exception_handler  /* Reserved             */
vector13:   .long   _asm_exception_handler  /* Reserved             */
vector14:   .long   _asm_exception_handler  /* Reserved             */
vector15:   .long   _asm_exception_handler  /* Reserved             */
vector16:   .long   _asm_exception_handler  /* Reserved             */
vector17:   .long   _asm_exception_handler  /* Reserved             */
vector18:   .long   _asm_exception_handler  /* Spurious Interrupt   */
vector19:   .long   _asm_isr_handler        /* Autovector Level 1   */
vector1A:   .long   _asm_isr_handler        /* Autovector Level 2   */
vector1B:   .long   _asm_isr_handler        /* Autovector Level 3   */
vector1C:   .long   _asm_isr_handler        /* Autovector Level 4   */
vector1D:   .long   _asm_isr_handler        /* Autovector Level 5   */
vector1E:   .long   _asm_isr_handler        /* Autovector Level 6   */
vector1F:   .long   _asm_isr_handler        /* Autovector Level 7   */
vector20:   .long   _asm_exception_handler  /* TRAP #0              */
vector21:   .long   _asm_exception_handler  /* TRAP #1              */
vector22:   .long   _asm_exception_handler  /* TRAP #2              */
vector23:   .long   _asm_exception_handler  /* TRAP #3              */
vector24:   .long   _asm_exception_handler  /* TRAP #4              */
vector25:   .long   _asm_exception_handler  /* TRAP #5              */
vector26:   .long   _asm_exception_handler  /* TRAP #6              */
vector27:   .long   _asm_exception_handler  /* TRAP #7              */
vector28:   .long   _asm_exception_handler  /* TRAP #8              */
vector29:   .long   _asm_exception_handler  /* TRAP #9              */
vector2A:   .long   _asm_exception_handler  /* TRAP #10             */
vector2B:   .long   _asm_exception_handler  /* TRAP #11             */
vector2C:   .long   _asm_exception_handler  /* TRAP #12             */
vector2D:   .long   _asm_exception_handler  /* TRAP #13             */
vector2E:   .long   _asm_exception_handler  /* TRAP #14             */
vector2F:   .long   _dbug_sc_handler        /* TRAP #15 - System Call */
vector30:   .long   _asm_exception_handler  /* Reserved             */
vector31:   .long   _asm_exception_handler  /* Reserved             */
vector32:   .long   _asm_exception_handler  /* Reserved             */
vector33:   .long   _asm_exception_handler  /* Reserved             */
vector34:   .long   _asm_exception_handler  /* Reserved             */
vector35:   .long   _asm_exception_handler  /* Reserved             */
vector36:   .long   _asm_exception_handler  /* Reserved             */
vector37:   .long   _asm_exception_handler  /* Reserved             */
vector38:   .long   _asm_exception_handler  /* Reserved             */
vector39:   .long   _asm_exception_handler  /* Reserved             */
vector3A:   .long   _asm_exception_handler  /* Reserved             */
vector3B:   .long   _asm_exception_handler  /* Reserved             */
vector3C:   .long   _asm_exception_handler  /* Reserved             */
vector3D:   .long   _asm_exception_handler  /* Unsupported Instruction */
vector3E:   .long   _asm_exception_handler  /* Reserved             */
vector3F:   .long   _asm_exception_handler  /* Reserved             */
vector40:   .long   _asm_isr_handler        /* User Defined Interrupts  */
vector41:   .long   _asm_isr_handler
vector42:   .long   _asm_isr_handler
vector43:   .long   _asm_isr_handler
vector44:   .long   _asm_isr_handler
vector45:   .long   _asm_isr_handler
vector46:   .long   _asm_isr_handler
vector47:   .long   _asm_isr_handler
vector48:   .long   _asm_isr_handler
vector49:   .long   _asm_isr_handler
vector4A:   .long   _asm_isr_handler
vector4B:   .long   _asm_isr_handler
vector4C:   .long   _asm_isr_handler
vector4D:   .long   _asm_isr_handler
vector4E:   .long   _asm_isr_handler
vector4F:   .long   _asm_isr_handler
vector50:   .long   _asm_isr_handler
vector51:   .long   _asm_isr_handler
vector52:   .long   _asm_isr_handler
vector53:   .long   _asm_isr_handler
vector54:   .long   _asm_isr_handler
vector55:   .long   _asm_isr_handler
vector56:   .long   _asm_isr_handler
vector57:   .long   _asm_isr_handler
vector58:   .long   _asm_isr_handler
vector59:   .long   _asm_isr_handler
vector5A:   .long   _asm_isr_handler
vector5B:   .long   _asm_isr_handler
vector5C:   .long   _asm_isr_handler
vector5D:   .long   _asm_isr_handler
vector5E:   .long   _asm_isr_handler
vector5F:   .long   _asm_isr_handler
vector60:   .long   _asm_isr_handler
vector61:   .long   _asm_isr_handler
vector62:   .long   _asm_isr_handler
vector63:   .long   _asm_isr_handler
vector64:   .long   _asm_isr_handler
vector65:   .long   _asm_isr_handler
vector66:   .long   _asm_isr_handler
vector67:   .long   _asm_isr_handler
vector68:   .long   _asm_isr_handler
vector69:   .long   _asm_isr_handler
vector6A:   .long   _asm_isr_handler
vector6B:   .long   _asm_isr_handler
vector6C:   .long   _asm_isr_handler
vector6D:   .long   _asm_isr_handler
vector6E:   .long   _asm_isr_handler
vector6F:   .long   _asm_isr_handler
vector70:   .long   _asm_isr_handler
vector71:   .long   _asm_isr_handler
vector72:   .long   _asm_isr_handler
vector73:   .long   _asm_isr_handler
vector74:   .long   _asm_isr_handler
vector75:   .long   _asm_isr_handler
vector76:   .long   _asm_isr_handler
vector77:   .long   _asm_isr_handler
vector78:   .long   _asm_isr_handler
vector79:   .long   _asm_isr_handler
vector7A:   .long   _asm_isr_handler
vector7B:   .long   _asm_isr_handler
vector7C:   .long   _asm_isr_handler
vector7D:   .long   _asm_isr_handler
vector7E:   .long   _asm_isr_handler
vector7F:   .long   _asm_isr_handler
vector80:   .long   _asm_isr_handler
vector81:   .long   _asm_isr_handler
vector82:   .long   _asm_isr_handler
vector83:   .long   _asm_isr_handler
vector84:   .long   _asm_isr_handler
vector85:   .long   _asm_isr_handler
vector86:   .long   _asm_isr_handler
vector87:   .long   _asm_isr_handler
vector88:   .long   _asm_isr_handler
vector89:   .long   _asm_isr_handler
vector8A:   .long   _asm_isr_handler
vector8B:   .long   _asm_isr_handler
vector8C:   .long   _asm_isr_handler
vector8D:   .long   _asm_isr_handler
vector8E:   .long   _asm_isr_handler
vector8F:   .long   _asm_isr_handler
vector90:   .long   _asm_isr_handler
vector91:   .long   _asm_isr_handler
vector92:   .long   _asm_isr_handler
vector93:   .long   _asm_isr_handler
vector94:   .long   _asm_isr_handler
vector95:   .long   _asm_isr_handler
vector96:   .long   _asm_isr_handler
vector97:   .long   _asm_isr_handler
vector98:   .long   _asm_isr_handler
vector99:   .long   _asm_isr_handler
vector9A:   .long   _asm_isr_handler
vector9B:   .long   _asm_isr_handler
vector9C:   .long   _asm_isr_handler
vector9D:   .long   _asm_isr_handler
vector9E:   .long   _asm_isr_handler
vector9F:   .long   _asm_isr_handler
vectorA0:   .long   _asm_isr_handler
vectorA1:   .long   _asm_isr_handler
vectorA2:   .long   _asm_isr_handler
vectorA3:   .long   _asm_isr_handler
vectorA4:   .long   _asm_isr_handler
vectorA5:   .long   _asm_isr_handler
vectorA6:   .long   _asm_isr_handler
vectorA7:   .long   _asm_isr_handler
vectorA8:   .long   _asm_isr_handler
vectorA9:   .long   _asm_isr_handler
vectorAA:   .long   _asm_isr_handler
vectorAB:   .long   _asm_isr_handler
vectorAC:   .long   _asm_isr_handler
vectorAD:   .long   _asm_isr_handler
vectorAE:   .long   _asm_isr_handler
vectorAF:   .long   _asm_isr_handler
vectorB0:   .long   _asm_isr_handler
vectorB1:   .long   _asm_isr_handler
vectorB2:   .long   _asm_isr_handler
vectorB3:   .long   _asm_isr_handler
vectorB4:   .long   _asm_isr_handler
vectorB5:   .long   _asm_isr_handler
vectorB6:   .long   _asm_isr_handler
vectorB7:   .long   _asm_isr_handler
vectorB8:   .long   _asm_isr_handler
vectorB9:   .long   _asm_isr_handler
vectorBA:   .long   _asm_isr_handler
vectorBB:   .long   _asm_isr_handler
vectorBC:   .long   _asm_isr_handler
vectorBD:   .long   _asm_isr_handler
vectorBE:   .long   _asm_isr_handler
vectorBF:   .long   _asm_isr_handler
vectorC0:   .long   _asm_isr_handler
vectorC1:   .long   _asm_isr_handler
vectorC2:   .long   _asm_isr_handler
vectorC3:   .long   _asm_isr_handler
vectorC4:   .long   _asm_isr_handler
vectorC5:   .long   _asm_isr_handler
vectorC6:   .long   _asm_isr_handler
vectorC7:   .long   _asm_isr_handler
vectorC8:   .long   _asm_isr_handler
vectorC9:   .long   _asm_isr_handler
vectorCA:   .long   _asm_isr_handler
vectorCB:   .long   _asm_isr_handler
vectorCC:   .long   _asm_isr_handler
vectorCD:   .long   _asm_isr_handler
vectorCE:   .long   _asm_isr_handler
vectorCF:   .long   _asm_isr_handler
vectorD0:   .long   _asm_isr_handler
vectorD1:   .long   _asm_isr_handler
vectorD2:   .long   _asm_isr_handler
vectorD3:   .long   _asm_isr_handler
vectorD4:   .long   _asm_isr_handler
vectorD5:   .long   _asm_isr_handler
vectorD6:   .long   _asm_isr_handler
vectorD7:   .long   _asm_isr_handler
vectorD8:   .long   _asm_isr_handler
vectorD9:   .long   _asm_isr_handler
vectorDA:   .long   _asm_isr_handler
vectorDB:   .long   _asm_isr_handler
vectorDC:   .long   _asm_isr_handler
vectorDD:   .long   _asm_isr_handler
vectorDE:   .long   _asm_isr_handler
vectorDF:   .long   _asm_isr_handler
vectorE0:   .long   _asm_isr_handler
vectorE1:   .long   _asm_isr_handler
vectorE2:   .long   _asm_isr_handler
vectorE3:   .long   _asm_isr_handler
vectorE4:   .long   _asm_isr_handler
vectorE5:   .long   _asm_isr_handler
vectorE6:   .long   _asm_isr_handler
vectorE7:   .long   _asm_isr_handler
vectorE8:   .long   _asm_isr_handler
vectorE9:   .long   _asm_isr_handler
vectorEA:   .long   _asm_isr_handler
vectorEB:   .long   _asm_isr_handler
vectorEC:   .long   _asm_isr_handler
vectorED:   .long   _asm_isr_handler
vectorEE:   .long   _asm_isr_handler
vectorEF:   .long   _asm_isr_handler
vectorF0:   .long   _asm_isr_handler
vectorF1:   .long   _asm_isr_handler
vectorF2:   .long   _asm_isr_handler
vectorF3:   .long   _asm_isr_handler
vectorF4:   .long   _asm_isr_handler
vectorF5:   .long   _asm_isr_handler
vectorF6:   .long   _asm_isr_handler
vectorF7:   .long   _asm_isr_handler
vectorF8:   .long   _asm_isr_handler
vectorF9:   .long   _asm_isr_handler
vectorFA:   .long   _asm_isr_handler
vectorFB:   .long   _asm_isr_handler
vectorFC:   .long   _asm_isr_handler
vectorFD:   .long   _asm_isr_handler
vectorFE:   .long   _asm_isr_handler
vectorFF:   .long   _asm_isr_handler

/* 
 * CFM Flash Configuration Field 
 */
KEY_UPPER:  .long   0x00000000
KEY_LOWER:  .long   0x00000000
CFMPROT:    .long   0x00000000
CFMSACC:    .long   0x00000000
CFMDACC:    .long   0x00000000
CFMSEC:     .long   0x00000000

start:
    move.w  #0x2700,sr
    jmp     _asm_startmeup
    
/* 
 * The following routine can be used here if booting from internal
 * Flash and it is desired to changed the FLASHBAR from the reset
 * value of 0x0000_0000 to something else (defined as ___FLASH in
 * a linker file for this example).
 *
 * To accomplish this, the following instructions are coded into
 * the internal SRAM and then executed from there:
 *
 * move.l   #(___FLASH + 0x61),d0
 * movec    d0, FLASHBAR
 * jmp      _asm_startmeup
 *
 * This sequence must be executed from a non-Flash address since we
 * are changing the location of Flash.  All the code in Flash should
 * be linked to run from the desired Flash address even though the 
 * initial FLASHBAR is going to be 0x0000_0000.
 *
 * If this routine is to be used, uncomment it and comment out the 
 * jmp to _asm_startmeup above.
 */

;_change_flashbar:
;
;   /* Initialize RAMBAR1: locate SRAM and validate it */
;   move.l  #(___SRAM + 0x21),d0
;   .long   0x4e7b0C05      /* movec d0,RAMBAR1 */
;
;   /* Point Stack Pointer into SRAM temporarily */
;   move.l  #(___SRAM + 0x10000),sp
;
;   /* Move SRAM address to A0 */
;   move.l #(___SRAM),a0
;
;   /* Code "move.l #(___FLASH + 0x61),d0" into SRAM */
;   move.w #0x203C,d0
;   move.w d0,(a0)+
;   move.l #(___FLASH + 0x61),d0
;   move.l d0,(a0)+
;   
;   /* Code "movec d0,FLASHBAR" into SRAM */
;   move.l #0x4e7b0C04,d0
;   move.l d0,(a0)+
;       
;   /* Code "jmp _asm_startmeup" into SRAM */
;   move.w #0x4EF9,d0
;   move.w d0,(a0)+
;   move.l #_asm_startmeup,d0
;   move.l d0,(a0)+
;
;   /* Jump to code segment in internal SRAM */
;   jmp ___SRAM

    .end

⌨️ 快捷键说明

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