📄 psocconfig.lis
字号:
0000 USB_CLOCK: equ 0h ;USB Clock source value
0020 USB_CLOCK_MASK: equ 20h ;USB Clock source mask
0000 USB_CLOCK_JUST: equ 0h ;USB Clock source justified
0000
0000 USB_CLOCK_SPEED: equ 0h ;USB Clock div by 2 value
0040 USB_CLOCK_SPEED_MASK: equ 40h ;USB Clock div by 2 mask
0000 USB_CLOCK_SPEED_JUST: equ 0h ;USB Clock div by 2 justified
0000
0000 CLOCK_OUT: equ 0h ;Clock Out value
0003 CLOCK_OUT_MASK: equ 3h ;Clock Out mask
0000 CLOCK_OUT_JUST: equ 0h ;Clock Out value justified
0000
0004 LV_DETECT_LEVEL: equ 4h ;Low V Detect Level value
0007 LV_DETECT_LEVEL_MASK: equ 7h ;Low V Detect Level mask
0004 LV_DETECT_LEVEL_JUST: equ 4h ;Low V Detect Level value justified
0000
0001 PWR_ON_RESET_LEVEL: equ 1h ;PowerOn Reset Level value
0030 PWR_ON_RESET_LEVEL_MASK: equ 30h ;PowerOn Reset Level mask
0010 PWR_ON_RESET_LEVEL_JUST: equ 10h ;PowerOn Reset Level value justified
0000
0000 VREG_ENABLE: equ 0h ;VREG Enable value
0001 VREG_ENABLE_MASK: equ 1h ;VREG Enable mask
0000 VREG_ENABLE_JUST: equ 0h ;VREG Enable value justified
0000
0000 KEEP_ALIVE: equ 0h ;Keep Alive value
0002 KEEP_ALIVE_MASK: equ 2h ;Keep Alive mask
0000 KEEP_ALIVE_JUST: equ 0h ;Keep Alive value justified
0000
0000 WATCHDOG_ENABLE: equ 0h ;Watchdog Enable value
0000
export LoadConfigInit
export _LoadConfigInit
export LoadConfig_p1
export _LoadConfig_p1
export Port_1_Data_SHADE
export _Port_1_Data_SHADE
export NO_SHADOW
export _NO_SHADOW
0010 FLAG_CFG_MASK: equ 10h ;M8C flag register REG address bit mask
00FF END_CONFIG_TABLE: equ ffh ;end of config table indicator
0000
AREA psoc_config(rom, rel)
;---------------------------------------------------------------------------
; LoadConfigInit - Establish the start-up configuration (except for a few
; parameters handled by boot code, like CPU speed). This
; function can be called from user code, but typically it
; is only called from boot.
;
; INPUTS: None.
; RETURNS: Nothing.
; SIDE EFFECTS: Registers are volatile: the A and X registers can be modified!
; In the large memory model currently only the page
; pointer registers listed below are modified. This does
; not guarantee that in future implementations of this
; function other page pointer registers will not be
; modified.
;
; Page Pointer Registers Modified:
; CUR_PP
;
0000 _LoadConfigInit:
0000 LoadConfigInit:
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_1 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_1
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_2 )
IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
or F, FLAG_PGMODE_01b
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF
ENDIF ; RAM_USE_CLASS_2
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_3 )
IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_01b
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF
ENDIF ; RAM_USE_CLASS_3
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_4 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_4
0000 550000 mov [Port_1_Data_SHADE], 0h
0003
0003 7C0007 lcall LoadConfig_p1
0006
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_1 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_1
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_2 )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
or F, FLAG_PGMODE_MASK & FLAG_PGMODE_11b
ENDIF
ENDIF ; PGMODE LOCKED
IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
or F, FLAG_PGMODE_MASK & FLAG_PGMODE_10b
ENDIF
ENDIF ; PGMODE FREE
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF ; RAM_USE_CLASS_2
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_3 )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
or F, FLAG_PGMODE_MASK & FLAG_PGMODE_11b
ENDIF
ENDIF ; PGMODE LOCKED
IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
or F, FLAG_PGMODE_MASK & FLAG_PGMODE_10b
ENDIF
ENDIF ; PGMODE FREE
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF ; RAM_USE_CLASS_3
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_4 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_4
0006 7F ret
0007
0007 ;---------------------------------------------------------------------------
0007 ; Load Configuration p1
0007 ;
0007 ; Load configuration registers for p1.
0007 ; IO Bank 0 registers a loaded first,then those in IO Bank 1.
0007 ;
0007 ; INPUTS: None.
0007 ; RETURNS: Nothing.
0007 ; SIDE EFFECTS: Registers are volatile: the CPU A and X registers may be
0007 ; modified as may the Page Pointer registers!
0007 ; In the large memory model currently only the page
0007 ; pointer registers listed below are modified. This does
0007 ; not guarantee that in future implementations of this
0007 ; function other page pointer registers will not be
0007 ; modified.
0007 ;
0007 ; Page Pointer Registers Modified:
0007 ; CUR_PP
0007 ;
0007 _LoadConfig_p1:
0007 LoadConfig_p1:
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_1 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_1
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_2 )
IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
or F, FLAG_PGMODE_01b
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF
ENDIF ; RAM_USE_CLASS_2
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_3 )
IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_01b
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF
ENDIF ; RAM_USE_CLASS_3
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_4 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_4
0007 7C0000 lcall LoadConfigTBL_p1 ; Call load config table routine
000A
000A
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_1 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_1
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_2 )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
or F, FLAG_PGMODE_MASK & FLAG_PGMODE_11b
ENDIF
ENDIF ; PGMODE LOCKED
IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
or F, FLAG_PGMODE_MASK & FLAG_PGMODE_10b
ENDIF
ENDIF ; PGMODE FREE
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF ; RAM_USE_CLASS_2
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_3 )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
or F, FLAG_PGMODE_MASK & FLAG_PGMODE_11b
ENDIF
ENDIF ; PGMODE LOCKED
IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
or F, FLAG_PGMODE_MASK & FLAG_PGMODE_10b
ENDIF
ENDIF ; PGMODE FREE
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF ; RAM_USE_CLASS_3
IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_4 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_4
000A 7F ret
000B
000B
000B
AREA InterruptRAM(ram, rel)
0000 NO_SHADOW:
0000 _NO_SHADOW:
0000 ; write only register shadows
0000 _Port_1_Data_SHADE:
0000 Port_1_Data_SHADE: BLK 1
0001
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -