📄 interrrupt.lst
字号:
0000: 80 67 JMP 0x0068
0002: 30 HALT
0003: 30 HALT
FILE: .\boot.asm
(0001) ; Generated by PSoC Designer ver 4.4 b1884 : 14 Jan, 2007
(0002) ;
(0003) ;@Id: boot.tpl#851 @
(0004) ;=============================================================================
(0005) ; FILENAME: boot.asm
(0006) ; VERSION: 4.18
(0007) ; DATE: 28 June 2007
(0008) ;
(0009) ; DESCRIPTION:
(0010) ; M8C Boot Code for CY8C29xxx microcontroller family.
(0011) ;
(0012) ; Copyright (C) Cypress Semiconductor 2000-2005. All rights reserved.
(0013) ;
(0014) ; NOTES:
(0015) ; PSoC Designer's Device Editor uses a template file, BOOT.TPL, located in
(0016) ; the project's root directory to create BOOT.ASM. Any changes made to
(0017) ; BOOT.ASM will be overwritten every time the project is generated; therfore
(0018) ; changes should be made to BOOT.TPL not BOOT.ASM. Care must be taken when
(0019) ; modifying BOOT.TPL so that replacement strings (such as @PROJECT_NAME)
(0020) ; are not accidentally modified.
(0021) ;
(0022) ;=============================================================================
(0023)
(0024) include ".\lib\GlobalParams.inc"
(0025) include "m8c.inc"
(0026) include "m8ssc.inc"
(0027) include "memory.inc"
(0028)
(0029) ;--------------------------------------
(0030) ; Export Declarations
(0031) ;--------------------------------------
(0032)
(0033) export __Start
(0034) IF (TOOLCHAIN & HITECH)
(0035) ELSE
(0036) export __bss_start
(0037) export __data_start
(0038) export __idata_start
(0039) export __func_lit_start
(0040) export __text_start
(0041) ENDIF
(0042) export _bGetPowerSetting
(0043) export bGetPowerSetting
(0044)
(0045)
(0046) ;--------------------------------------
(0047) ; Optimization flags
(0048) ;--------------------------------------
(0049) ;
(0050) ; To change the value of these flags, modify the file boot.tpl, not
(0051) ; boot.asm. See the notes in the banner comment at the beginning of
(0052) ; this file.
(0053)
(0054) ; Optimization for Assembly language (only) projects and C-language projects
(0055) ; that do not depend on the C compiler to initialize the values of RAM variables.
(0056) ; Set to 1: Support for C Run-time Environment initialization
(0057) ; Set to 0: Support for C not included. Faster start up, smaller code space.
(0058) ;
(0059) IF (TOOLCHAIN & HITECH)
(0060) ; The C compiler will customize the startup code - it's not required here
(0061)
(0062) C_LANGUAGE_SUPPORT: equ 0
(0063) ELSE
(0064) C_LANGUAGE_SUPPORT: equ 1
(0065) ENDIF
(0066)
(0067)
(0068) ; The following equate is required for proper operation. Reseting its value
(0069) ; is discouraged. WAIT_FOR_32K is effective only if the crystal oscillator is
(0070) ; selected. If the designer chooses to not wait then stabilization of the ECO
(0071) ; and PLL_Lock must take place within user code. See the family data sheet for
(0072) ; the requirements of starting the ECO and PLL lock mode.
(0073) ;
(0074) ; Set to 1: Wait for XTAL (& PLL if selected) to stabilize before
(0075) ; invoking main
(0076) ; Set to 0: Boot code does not wait; clock may not have stabilized by
(0077) ; the time code in main starts executing.
(0078) ;
(0079) WAIT_FOR_32K: equ 1
(0080)
(0081)
(0082) ; For historical reasons, by default the boot code uses an lcall instruction
(0083) ; to invoke the user's _main code. If _main executes a return instruction,
(0084) ; boot provides an infinite loop. By changing the following equate from zero
(0085) ; to 1, boot's lcall will be replaced by a ljmp instruction, saving two
(0086) ; bytes on the stack which are otherwise required for the return address. If
(0087) ; this option is enabled, _main must not return. (Beginning with the 4.2
(0088) ; release, the C compiler automatically places an infinite loop at the end
(0089) ; of main, rather than a return instruction.)
(0090) ;
(0091) ENABLE_LJMP_TO_MAIN: equ 0
(0092)
(0093)
(0094) ;-----------------------------------------------------------------------------
(0095) ; Interrupt Vector Table
(0096) ;-----------------------------------------------------------------------------
(0097) ;
(0098) ; Interrupt vector table entries are 4 bytes long. Each one contains
(0099) ; a jump instruction to an ISR (Interrupt Service Routine), although
(0100) ; very short ISRs could be encoded within the table itself. Normally,
(0101) ; vector jump targets are modified automatically according to the user
(0102) ; modules selected. This occurs when the 'Generate Application' opera-
(0103) ; tion is run causing PSoC Designer to create boot.asm and the other
(0104) ; configuration files. If you need to hard code a vector, update the
(0105) ; file boot.tpl, not boot.asm. See the banner comment at the beginning
(0106) ; of this file.
(0107) ;-----------------------------------------------------------------------------
(0108)
(0109) AREA TOP (ROM, ABS, CON)
(0110)
(0111) org 0 ;Reset Interrupt Vector
(0112) IF (TOOLCHAIN & HITECH)
(0113) ; jmp __Start ;C compiler fills in this vector
(0114) ELSE
(0115) jmp __Start ;First instruction executed following a Reset
(0116) ENDIF
(0117)
(0118) org 04h ;Supply Monitor Interrupt Vector
0004: 30 HALT (0119) halt ;Stop execution if power falls too low
0005: 30 HALT
0006: 30 HALT
0007: 30 HALT
(0120)
(0121) org 08h ;Analog Column 0 Interrupt Vector
(0122) // call void_handler
0008: 7E RETI (0123) reti
0009: 30 HALT
000A: 30 HALT
000B: 30 HALT
(0124)
(0125) org 0Ch ;Analog Column 1 Interrupt Vector
(0126) // call void_handler
000C: 7E RETI (0127) reti
000D: 30 HALT
000E: 30 HALT
000F: 30 HALT
(0128)
(0129) org 10h ;Analog Column 2 Interrupt Vector
(0130) // call void_handler
0010: 7E RETI (0131) reti
0011: 30 HALT
0012: 30 HALT
0013: 30 HALT
(0132)
(0133) org 14h ;Analog Column 3 Interrupt Vector
(0134) // call void_handler
0014: 7E RETI (0135) reti
0015: 30 HALT
0016: 30 HALT
0017: 30 HALT
(0136)
(0137) org 18h ;VC3 Interrupt Vector
(0138) // call void_handler
0018: 7E RETI (0139) reti
0019: 30 HALT
001A: 30 HALT
001B: 30 HALT
(0140)
(0141) org 1Ch ;GPIO Interrupt Vector
001C: 7D 03 86 LJMP _button_svr (0142) ljmp _button_svr
001F: 7E RETI (0143) reti
(0144)
(0145) org 20h ;PSoC Block DBB00 Interrupt Vector
(0146) // call void_handler
0020: 7E RETI (0147) reti
0021: 30 HALT
0022: 30 HALT
0023: 30 HALT
(0148)
(0149) org 24h ;PSoC Block DBB01 Interrupt Vector
(0150) // call void_handler
0024: 7E RETI (0151) reti
0025: 30 HALT
0026: 30 HALT
0027: 30 HALT
(0152)
(0153) org 28h ;PSoC Block DCB02 Interrupt Vector
(0154) // call void_handler
0028: 7E RETI (0155) reti
0029: 30 HALT
002A: 30 HALT
002B: 30 HALT
(0156)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -