📄 startup.as
字号:
; HI-TECH C COMPILER (Cypress PSOC) V9.61PL1
; Copyright (C) 1984-2008 HI-TECH Software
;Serial no. HCPSOC-478075650
;Licensed for FAE use only - not for an end-user.
; Auto-generated runtime startup code for final link stage.
;
; Compiler options:
;
; --asmlist --errformat --chip=CY8C21434MLF --WARN=0 --OPT=asm,9 \
; -OMF_TEMP -Moutput/MF_TEMP.mp --OUTDIR=./output ./obj/boot.obj \
; ./obj/calibration.p1 ./obj/cmx_adc_chan.obj ./obj/cmx_adc_chan_c.p1 \
; ./obj/cmx_blinkingled.p1 ./obj/cmx_dio_chan.obj ./obj/cmx_dio_lib.obj \
; ./obj/cmx_fttherm.p1 ./obj/cmx_genericpwm.p1 ./obj/cmx_i2c.p1 \
; ./obj/cmx_interval.p1 ./obj/cmx_mvolts.p1 ./obj/cmx_pwm_chan.obj \
; ./obj/cmx_pwm_chan_c.p1 ./obj/custom.p1 ./obj/driverdecl.p1 \
; ./obj/functionparamdecl.p1 ./obj/i2cflash.obj ./obj/main.p1 \
; ./obj/setpointregion.p1 ./obj/systemconst.p1 ./obj/systemvars.p1 \
; ./obj/tablelookup.p1 ./obj/transferfunction.p1 lib/libpsoc.lib \
; lib/libpsoc.lpp \
; C:/PROGRA~1/Cypress/Common/CYPRES~4/tools/lib/CY8C21030/cms.lib
;
processor CY8C21434MLF
macro M8C_ClearWDT
mov reg[0xE3],0x38
endm
psect PD_startup,class=CODE
psect init,class=CODE
psect end_init,class=CODE
psect powerup,class=CODE
psect vectors,ovrld,class=CODE
psect text,class=CODE
psect maintext,class=CODE
psect intrtext,class=CODE
psect fnauto,class=RAM,space=1
psect bss,class=RAM,space=1
psect InterruptRAM,class=RAM,space=1
psect cdata,class=ROM,space=0,reloc=256
psect psoc_config,class=ROM
psect UserModules,class=ROM
psect strings,class=ROM
psect SSCParmBlk,abs,ovrld,class=RAM,space=1
org 0xF8
blk 8
psect stackps,class=RAM
global __Lstackps, __stack_start__
__stack_start__:
psect bss0,class=RAM,space=1
psect nvram0,class=RAM,space=1
psect rbit0,bit,class=RAM,space=1
psect nvbit0,bit,class=RAM,space=1
psect ramdata0,class=RAM,space=1
psect romdata0,class=BANKROM,space=0
psect bss1,class=RAM,space=1
psect nvram1,class=RAM,space=1
psect rbit1,bit,class=RAM,space=1
psect nvbit1,bit,class=RAM,space=1
psect ramdata1,class=RAM,space=1
psect romdata1,class=BANKROM,space=0
;Declare areas defined in usermodules and other assembler code
psect InterruptRAM,class=RAM,space=1
psect bss,class=RAM,space=1
global start,startup,_main
global reset_vec,intlevel0,intlevel1,intlevel2
intlevel0:
intlevel1:
intlevel2: ; for C funcs called from assembler
fnconf fnauto,??,?
fnroot _main
TMP_DR0 equ 108
TMP_DR1 equ 109
TMP_DR2 equ 110
TMP_DR3 equ 111
CUR_PP equ 208
STK_PP equ 209
IDX_PP equ 211
MVR_PP equ 212
MVW_PP equ 213
CPU_F equ 247
psect vectors
reset_vec:
start:
global __Start
ljmp __Start
psect init
startup:
M8C_ClearWDT
or f, 0x80 ;select multiple RAM page mode
and f, 0xBF
; Clear uninitialized variables in bank 1
global __Lbss1
mov a,low __Lbss1
swap a,sp
mov a,0
mov x,17
bssloop1:
push a
dec x
jnz bssloop1
mov reg[CUR_PP],0
mov a,low __Lstackps
swap a,sp
ljmp _main
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -