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

📄 boot.lis

📁 CYPRESS的PSOC的AD转换编程
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00FA           bSSC_TABLE_TableId:                 equ      FAh   ; table ID
 0000           
 003A           OPER_KEY:                           equ      3Ah   ; operation key
 0000           
 0000           ;----------------------------------
 0000           ; SSC_Action macro command codes
 0000           ;----------------------------------
 0001           FLASH_READ:                         equ      1     ; flash read command
 0002           FLASH_WRITE:                        equ      2     ; flash write command
 0003           FLASH_ERASE:                        equ      3     ; flash erase command
 0004           PROTECT_BLOCK:                      equ      4     ; flash protect block command
 0006           TABLE_READ:                         equ      6     ; table read command
 0007           FLASH_CHECKSUM:                     equ      7     ; flash checksum calculation command
 0008           CALIBRATE0:                         equ      8     ; Calibrate without checksum
 0009           CALIBRATE1:                         equ      9     ; Calibrate with checksum
 0000           
 0000           ;----------------------------------
 0000           ; SSC_Action Flash table addresses
 0000           ;----------------------------------
 0000           ; Table 0 Values
 00F8           SILICON_ID_1:                       equ      F8h   ; Table 0 first byte of silicon ID
 00F9           SILICON_ID_0:                       equ      F9h   ; Table 0 second byte of silicon ID
 0000           
 0000           ; Table 1 Values
 00F8           SSCTBL1_TRIM_BGR_3V:                equ      F8h   ; 3.3V bandgap ref voltage trim
 00F9           SSCTBL1_TRIM_IMO_3V_24MHZ:          equ      F9h   ; 3.3V internal main oscillator trim (24MHz)
 00FA           SSCTBL1_CAL_ROOM_3V:                equ      FAh   ; 3.3V Room Temp Calibration
 00FB           SSCTBL1_CAL_HOT_3V:                 equ      FBh   ; 3.3V Hot  Temp Calibration
 00FC           SSCTBL1_TRIM_BGR_5V:                equ      FCh   ; 5.0V bandgap ref voltage trim
 00FD           SSCTBL1_TRIM_IMO_5V_24MHZ:          equ      FDh   ; 5.0V internal main oscillator trim (24MHz)
 00FE           SSCTBL1_CAL_ROOM_5V:                equ      FEh   ; 5.0V Room Temp Calibration
 00FF           SSCTBL1_CAL_HOT_5V:                 equ      FFh   ; 5.0V Hot  Temp Calibration
 0000               ; legacy names:
 00F8               VOLTAGE_TRIM_3V:                equ      F8h   ; Table 1 3.3V bandgap ref voltage trim value
 00F9               OSCILLATOR_TRIM_3V:             equ      F9h   ; Table 1 3.3V internal main oscillator trim value
 00FC               VOLTAGE_TRIM_5V:                equ      FCh   ; Table 1 5.0V bandgap ref voltage trim value
 00FD               OSCILLATOR_TRIM_5V:             equ      FDh   ; Table 1 5.0V internal main oscillator trim value
 0000           
 0000           ; Table 2 Values
 00F8           SSCTBL2_TRIM_BGR_2V:                equ      F8h   ; 2.7V bandgap ref voltage trim
 00F9           SSCTBL2_TRIM_IMO_2V_12MHZ:          equ      F9h   ; 2.7V internal main oscillator trim (12MHz)
 00FA           SSCTBL2_CAL_ROOM_2V:                equ      FAh   ; 2.7V Room Temp Calibration
 00FB           SSCTBL2_CAL_HOT_2V:                 equ      FBh   ; 2.7V Hot  Temp Calibration
 00FC           SSCTBL2_TRIM_IMO_3V_6MHZ:           equ      FCh   ; 3.3V IMO Trim for SLOWIMO 6MHz operation
 00FD           SSCTBL2_TRIM_IMO_2V_6MHZ:           equ      FDh   ; 2.7V IMO Trim for SLOWIMO 6MHz operation
 00FE           SSCTBL2_TRIM_IMO_5V_6MHZ:           equ      FEh   ; 5.0V IMO Trim for SLOWIMO 6MHz operation
 0000           
 0000           
 0000           ;-----------------------------------------------------------------------------
 0000           ;  MACRO SSC_Action( OpCode )
 0000           ;
 0000           ;  DESCRIPTION:
 0000           ;     Performs supervisory operations defined in Supervisory ROM (SROM)
 0000           ;     section of Technical Reference Manual and/or Datasheet.
 0000           ;-----------------------------------------------------------------------------
 0000           ;
 0000           ;  ARGUMENTS:
 0000           ;     BYTE  OpCode   - specified supervisory operation - defined operations
 0000           ;                      are:  FLASH_WRITE, FLASH_ERASE, FLASH_READ, TABLE_READ,
 0000           ;                            FLASH_CHECKSUM, PROTECT_BLOCK
 0000           ;  RETURNS:
 0000           ;     Nothing
 0000           ;
 0000           ;  SIDE EFFECTS:
 0000           ;     The values of the A and X registers are modified
 0000           ;
 0000           ;  PROCEDURE:
 0000           ;     1) specify a 3 byte stack frame.  Save in [KEYSP]
 0000           ;     2) insert the flash Supervisory key in [KEY1]
 0000           ;     3) store function code in A
 0000           ;     4) call the supervisory code
 0000           ;
 0000               macro SSC_Action( OpCode )
 0000           ;   !!! DO NOT CHANGE THIS CODE !!!
 0000           ;       This sequence of opcodes provides a
 0000           ;       signature for the debugger and ICE.
 0000               mov   X, SP                            ; copy SP into X
 0000               mov   A, X                             ; mov to A
 0000               add   A, 3                             ; create 3 byte stack frame
 0000               mov   [bSSC_KEYSP], A                  ; save stack frame for supervisory code
 0000               mov   [bSSC_KEY1], OPER_KEY            ; load the code for supervisory operations
 0000               mov   A, @OpCode                       ; load A with specific Flash operation
 0000               SSC                                    ; SSC call the supervisory code
 0000           ;   !!! DO NOT CHANGE THIS CODE !!!
 0000               macro M8SSC_SetTableTrims( Table, IMO_Trim, Volt_Trim )
 0000               mov   [bSSC_TABLE_TableId], @Table     ; Point to requested Flash Table
 0000               SSC_Action TABLE_READ                  ; Perform a table read supervisor call
 0000               M8C_SetBank1
 0000               mov   A, [@IMO_Trim]
 0000               mov   reg[IMO_TR], A                   ; Load the 3V trim oscillator setting
 0000               mov   A, [@Volt_Trim]
 0000               mov   reg[BDG_TR], A                   ; Load the bandgap trim setting for 3V
 0000               M8C_SetBank0
 0000               macro M8SSC_Set2TableTrims( TableA, IMO_Trim, TableB, Volt_Trim )
 0000               mov   [bSSC_TABLE_TableId], @TableA    ; Point to Flash Table for IMO Trim
 0000               SSC_Action TABLE_READ                  ; Copy table data to RAM F8-FF
 0000               M8C_SetBank1                           ; (Note, preserved across next SSC!)
 0000               mov   A, [@IMO_Trim]                   ; Set the main oscillator trim
 0000               mov   reg[IMO_TR], A
 0000               mov   [bSSC_TABLE_TableId], @TableB    ; Point to Flash Table for Volt Trim
 0000               SSC_Action TABLE_READ                  ; Copy table data to RAM F8-FF
 0000               mov   A, [@Volt_Trim]                  ; Set the bandgap voltage trim
 0000               mov   reg[BDG_TR], A                   ; Load the bandgap trim setting for 3V
 0000               M8C_SetBank0
 0000               macro M8SSC_SetTableVoltageTrim( Table, Volt_Trim )
 0000               mov   [bSSC_TABLE_TableId], @Table     ; Point to Flash Table
 0000               SSC_Action TABLE_READ                  ; Perform a table read supervisor call
 0000               M8C_SetBank1
 0000               mov   A, [@Volt_Trim]                  ; Get the bandgap trim seting
 0000               mov   reg[BDG_TR], A                   ; Update the register value
 0000               M8C_SetBank0
 0000               macro M8SSC_SetTableIMOTrim( Table, IMO_Trim )
 0000               mov   [bSSC_TABLE_TableId], @Table ; Point to Flash Table 1
 0000               SSC_Action TABLE_READ              ; Perform a table read supervisor call
 0000               M8C_SetBank1
 0000               mov   A, [@IMO_Trim]               ; Get the IMO trim seting
 0000               mov   reg[IMO_TR], A               ; Update the register value
 0000               M8C_SetBank0
 0001           SYSTEM_STACK_PAGE: equ 1   
 0000           SYSTEM_STACK_BASE_ADDR: equ 0h   
 0001           SYSTEM_LARGE_MEMORY_MODEL: equ 1   
 0000           SYSTEM_SMALL_MEMORY_MODEL: equ 0   
 0001           SYSTEM_TOOLS: equ 1   
 0001           SYSTEM_IDXPG_TRACKS_STK_PP: equ 1   
 0000           SYSTEM_IDXPG_TRACKS_IDX_PP: equ 0   
 0000           SYSTEM_MULTIPAGE_STACK: equ 0 
 0000           
 0000           
 0000           ;  ******* Function Class Definitions *******
 0000           ;
 0000           ;  These definitions are used to describe RAM access patterns. They provide
 0000           ;  documentation and they control prologue and epilogue macros that perform
 0000           ;  the necessary housekeeping functions for large memory model devices like
 0000           ;  the CY8C27x66 and CY8C29x66.
 0000           
 0001           RAM_USE_CLASS_1:               equ 1   ; PUSH, POP & I/O access
 0002           RAM_USE_CLASS_2:               equ 2   ; Indexed address mode on stack page
 0004           RAM_USE_CLASS_3:               equ 4   ; Indexed address mode to any page
 0008           RAM_USE_CLASS_4:               equ 8   ; Direct/Indirect address mode access
 0000           
 0000           
 0000           ;  ******* Page Pointer Manipulation Macros *******
 0000           ;
 0000           ;  Most of the following macros are conditionally compiled so they only
 0000           ;  produce code if the large memory model is selected.
 0000           
 0000              ;-----------------------------------------------
 0000              ;  Set Stack Page Macro
 0000              ;-----------------------------------------------
 0000              ;
 0000              ;  DESC: Modify STK_PP in the large or small memory Models.
 0000              ;
 0000              ; INPUT: Constant (e.g., SYSTEM_STACK_PAGE) that specifies the RAM page on
 0000              ;        which stack operations like PUSH and POP store and retrieve their
 0000              ;        data
 0000              ;
 0000              ;  COST: 8 instruction cycles (in LMM only)
 0000           
 0000              macro RAM_SETPAGE_STK( PG_NUMBER )
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0000                 mov reg[STK_PP], @PG_NUMBER
 0000              ENDIF
 0000              macro RAM_SETPAGE_CUR( PG_NUMBER )
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0000                 mov reg[CUR_PP], @PG_NUMBER
 0000              ENDIF
 0000              macro RAM_SETPAGE_IDX( PG_NUMBER )
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0000                 mov reg[IDX_PP], @PG_NUMBER
 0000              ENDIF
 0000              macro RAM_SETPAGE_MVR( PG_NUMBER )
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0000                 mov reg[MVR_PP], @PG_NUMBER
 0000              ENDIF
 0000              macro RAM_SETPAGE_MVW( PG_NUMBER )
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0000                 mov reg[MVW_PP], @PG_NUMBER
 0000              ENDIF
 0000              macro RAM_SETPAGE_IDX2STK
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0000                 IF ( SYSTEM_MULTIPAGE_STACK )
 0000                    mov   A, reg[STK_PP]
 0000                    mov   reg[IDX_PP], A
 0000                 ELSE
 0000                    RAM_SETPAGE_IDX SYSTEM_STACK_PAGE
 0000                 ENDIF
 0000              ENDIF
 0000              macro RAM_CHANGE_PAGE_MODE( MODE )
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0000                 and   F, ~FLAG_PGMODE_MASK        ; NOTE: transition thru 00b state
 0000                 or    F,  FLAG_PGMODE_MASK & @MODE
 0000              ENDIF
 0000              macro RAM_SET_NATIVE_PAGING
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0000              IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
 0000                 or    F,  FLAG_PGMODE_11b            ; LMM w/ IndexPage<==>StackPage
 0000              ENDIF ;  PGMODE LOCKED
 0000              IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
 0000                 or    F,  FLAG_PGMODE_10b            ; LMM with independent IndexPage
 0000              ENDIF ; PGMODE FREE
 0000              ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
 0000              macro RAM_RESTORE_NATIVE_PAGING
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )

⌨️ 快捷键说明

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