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

📄 boot.lis

📁 Button 一个国外大学生毕业设计,用的是AVR单片机
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0000              IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
 0000                 RAM_CHANGE_PAGE_MODE FLAG_PGMODE_11b ; LMM w/ IndexPage<==>StackPage
 0000              ENDIF ;  PGMODE LOCKED
 0000              IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
 0000                 RAM_CHANGE_PAGE_MODE FLAG_PGMODE_10b ; LMM with independent IndexPage
 0000              ENDIF ; PGMODE FREE
 0000              ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
 0000              macro RAM_X_POINTS_TO_STACKPAGE
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0000                 or   F, FLAG_PGMODE_01b
 0000              ENDIF ;  SYSTEM_LARGE_MEMORY_MODEL
 0000              macro RAM_X_POINTS_TO_INDEXPAGE
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0000                 and  F, ~FLAG_PGMODE_01b
 0000              ENDIF ;  SYSTEM_LARGE_MEMORY_MODEL
 0000              macro RAM_PROLOGUE( ACTUAL_CLASS )
 0000           
 0000              IF ( @ACTUAL_CLASS & RAM_USE_CLASS_1 )
 0000              ; Nothing to do
 0000              ENDIF ; RAM_USE_CLASS_1
 0000           
 0000              IF ( @ACTUAL_CLASS & RAM_USE_CLASS_2 )
 0000                 IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
 0000                    RAM_X_POINTS_TO_STACKPAGE         ; exit native paging mode!
 0000                 ENDIF
 0000              ENDIF ; RAM_USE_CLASS_2
 0000           
 0000              IF ( @ACTUAL_CLASS & RAM_USE_CLASS_3 )
 0000                 IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
 0000                    RAM_X_POINTS_TO_INDEXPAGE         ; exit native paging mode!
 0000                 ENDIF
 0000              ENDIF ; RAM_USE_CLASS_3
 0000           
 0000              IF ( @ACTUAL_CLASS & RAM_USE_CLASS_4 )
 0000              ; Nothing to do
 0000              ENDIF ; RAM_USE_CLASS_4
 0000           
 0000              macro RAM_EPILOGUE( ACTUAL_CLASS )
 0000           
 0000              IF ( @ACTUAL_CLASS & RAM_USE_CLASS_1 )
 0000              ; Nothing to do
 0000              ENDIF ; RAM_USE_CLASS_1
 0000           
 0000              IF ( @ACTUAL_CLASS & RAM_USE_CLASS_2 )
 0000                 RAM_RESTORE_NATIVE_PAGING
 0000              ENDIF ; RAM_USE_CLASS_2
 0000           
 0000              IF ( @ACTUAL_CLASS & RAM_USE_CLASS_3 )
 0000                 RAM_RESTORE_NATIVE_PAGING
 0000              ENDIF ; RAM_USE_CLASS_3
 0000           
 0000              IF ( @ACTUAL_CLASS & RAM_USE_CLASS_4 )
 0000              ; Nothing to do
 0000              ENDIF ; RAM_USE_CLASS_4
 0000           
 0000              macro REG_PRESERVE( IOReg )
 0000              mov   A, reg[ @IOReg ]
 0000              push  A
 0000              macro REG_RESTORE( IOReg )
 0000              pop   A
 0000              mov   reg[ @IOReg ], A
 0000              macro ISR_PRESERVE_PAGE_POINTERS
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0000                 REG_PRESERVE PRV_PP
 0000                 REG_PRESERVE CUR_PP
 0000                 REG_PRESERVE IDX_PP
 0000                 REG_PRESERVE MVR_PP
 0000                 REG_PRESERVE MVW_PP
 0000              ENDIF
 0000              macro ISR_RESTORE_PAGE_POINTERS
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0000                 REG_RESTORE MVW_PP
 0000                 REG_RESTORE MVR_PP
 0000                 REG_RESTORE IDX_PP
 0000                 REG_RESTORE CUR_PP
 0000                 REG_RESTORE PRV_PP
 0000              ENDIF
                export __Start
                export __bss_start
                export __data_start
                export __idata_start
                export __func_lit_start
                export __text_start
                export  _bGetPowerSetting
                export   bGetPowerSetting
                
                
                ;--------------------------------------
                ; Optimization flags
                ;--------------------------------------
                ;
                ; To change the value of these flags, modify the file boot.tpl, not
                ; boot.asm. See the notes in the banner comment at the beginning of
                ; this file.
                
                ; Optimization for Assembly language (only) projects and C-language projects
                ; that do not depend on the C compiler to initialize the values of RAM variables.
                ;   Set to 1: Support for C Run-time Environment initialization
                ;   Set to 0: Support for C not included. Faster start up, smaller code space.
                ;
 0001           C_LANGUAGE_SUPPORT:              equ 1
 0000           
 0000           
 0000           ; For historical reasons, by default the boot code uses an lcall instruction
 0000           ; to invoke the user's _main code. If _main executes a return instruction,
 0000           ; boot provides an infinite loop. By changing the following equate from zero
 0000           ; to 1, boot's lcall will be replaced by a ljmp instruction, saving two
 0000           ; bytes on the stack which are otherwise required for the return address. If
 0000           ; this option is enabled, _main must not return. (Beginning with the 4.2
 0000           ; release, the C compiler automatically places an infinite loop at the end
 0000           ; of main, rather than a return instruction.)
 0000           ;
 0000           ENABLE_LJMP_TO_MAIN:             equ 0
 0000           
 0000           
 0000           ;-----------------------------------------------------------------------------
 0000           ; Interrupt Vector Table
 0000           ;-----------------------------------------------------------------------------
 0000           ;
 0000           ; Interrupt vector table entries are 4 bytes long.  Each one contains
 0000           ; a jump instruction to an ISR (Interrupt Service Routine), although
 0000           ; very short ISRs could be encoded within the table itself. Normally,
 0000           ; vector jump targets are modified automatically according to the user
 0000           ; modules selected. This occurs when the 'Generate Application' opera-
 0000           ; tion is run causing PSoC Designer to create boot.asm and the other
 0000           ; configuration files. If you need to hard code a vector, update the
 0000           ; file boot.tpl, not boot.asm. See the banner comment at the beginning
 0000           ; of this file.
 0000           ;-----------------------------------------------------------------------------
 0000           
                    AREA TOP (ROM, ABS, CON)
                
                    org   0                        ;Reset Interrupt Vector
 0000 8067          jmp   __Start                  ;First instruction executed following a Reset
 0002           
                    org   04h                      ;Supply Monitor Interrupt Vector
 0004 30            halt                           ;Stop execution if power falls too low
 0005           
                    org   08h                      ;Analog Column 0 Interrupt Vector
                    // call     void_handler
 0008 7E            reti
 0009           
                    org   0Ch                      ;Analog Column 1 Interrupt Vector
                    // call     void_handler
 000C 7E            reti
 000D           
                    org   18h                      ;VC3 Interrupt Vector
                    // call     void_handler
 0018 7E            reti
 0019           
                    org   1Ch                      ;GPIO Interrupt Vector
                    // call     void_handler
 001C 7E            reti
 001D           
                    org   20h                      ;PSoC Block DBB00 Interrupt Vector
 0020 7D0000        ljmp        _CSR_1_SCAN_ISR
 0023 7E            reti
 0024           
                    org   24h                      ;PSoC Block DBB01 Interrupt Vector
                    // call     void_handler
 0024 7E            reti
 0025           
                    org   28h                      ;PSoC Block DCB02 Interrupt Vector
                    // call     void_handler
 0028 7E            reti
 0029           
                    org   2Ch                      ;PSoC Block DCB03 Interrupt Vector
                    // call     void_handler
 002C 7E            reti
 002D           
                    org   60h                      ;PSoC I2C Interrupt Vector
                    // call     void_handler
 0060 7E            reti
 0061           
                    org   64h                      ;Sleep Timer Interrupt Vector
                    // call     void_handler
 0064 7E            reti
 0065           
 0065           ;-----------------------------------------------------------------------------
 0065           ;  Start of Execution.
 0065           ;-----------------------------------------------------------------------------
 0065           ;  The Supervisory ROM SWBootReset function has already completed the
 0065           ;  calibrate1 process, loading trim values for 5 volt operation.
 0065           ;
                    org 68h
 0068           __Start:
 0068           
 0068               ; initialize SMP values for voltage stabilization, if required,
 0068               ; leaving power-on reset (POR) level at the default (low) level, at
 0068               ; least for now. 
 0068               ;
 0068 7110          or    F, FLAG_XIO_MASK
 006A 62E387        mov   reg[VLT_CR], SWITCH_MODE_PUMP_JUST | LVD_TBEN_JUST | TRIP_VOLTAGE_JUST
 006D 70EF          and   F, ~FLAG_XIO_MASK
 006F           
                IF ( WATCHDOG_ENABLE )             ; WDT selected in Global Params
                    and   reg[CPU_SCR0], ~CPU_SCR0_PORS_MASK
                ENDIF
                
 006F 41FEFB        and  reg[CPU_SCR1], ~CPU_SCR1_ECO_ALLOWED  ; Prevent ECO from being enabled
 0072           
 0072               ;-----

⌨️ 快捷键说明

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