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

📄 startup.asm

📁 基于MB95F168气体检漏仪软件代码
💻 ASM
字号:
;==========================================================================
; F2MC-8FX Family SOFTUNE First Step Guide startup routine,
; ALL RIGHTS RESERVED, COPYRIGHT (C) FUJITSU LIMITED 2004
; LICENSED MATERIAL - PROGRAM PROPERTY OF FUJITSU LIMITED
;==========================================================================
;  Sample program for initialization
;--------------------------------------------------------------------------
		.PROGRAM	start
		.TITLE		start

;--------------------------------------------------------------------------
; external declaration of symbols
;--------------------------------------------------------------------------
		.EXPORT		__start
		.EXPORT		STACK_TOP	; Monitor Debugger
		.IMPORT		_main
		.IMPORT		_SetClockMainToPll
		.IMPORT		LMEMTOMEM
		.IMPORT		LMEMCLEAR
		.IMPORT		_RAM_INIT
		.IMPORT		_ROM_INIT
		.IMPORT		_RAM_DIRINIT
		.IMPORT		_ROM_DIRINIT

;--------------------------------------------------------------------------
; definition to stack area
;--------------------------------------------------------------------------
		.SECTION	STACK,    STACK,    ALIGN=1
		.RES.B		254
     		.RES.B		4 	; Monitor Debugger
STACK_TOP:
		.RES.B		2

;--------------------------------------------------------------------------
; definition to start address of data, const and code section
;--------------------------------------------------------------------------
		.SECTION	DIRDATA,  DIR,      ALIGN=1
DIRDATA_S:
		.SECTION	DIRINIT,  DIR,      ALIGN=1
DIRINIT_S:
		.SECTION	DATA,     DATA,     ALIGN=2
DATA_S:
		.SECTION	INIT,     DATA,     ALIGN=2
INIT_S:

;--------------------------------------------------------------------------
; code area
;--------------------------------------------------------------------------
		.SECTION	CODE,     CODE,     ALIGN=1
__start:
;--------------------------------------------------------------------------
; set stack pointer
;--------------------------------------------------------------------------
		MOVW	A, #STACK_TOP
		MOVW	SP, A
;--------------------------------------------------------------------------
; set register bank is 0
;--------------------------------------------------------------------------
		MOVW	A, PS
		MOVW	A, #0x07FF
		ANDW	A
		MOVW	PS, A
;--------------------------------------------------------------------------
; set direct bank pointer
;--------------------------------------------------------------------------
;		A default setup is B'000. (Direct address: 0x0080..0x00FF)

;--------------------------------------------------------------------------
; set I flag
;--------------------------------------------------------------------------
;		A default setup is B'0. (Interruption disable)

;--------------------------------------------------------------------------
; set ILM to the lowest level(3)
;--------------------------------------------------------------------------
		MOVW	A, PS
		MOVW	A, #0x0030
		ORW		A
		MOVW	PS, A
;--------------------------------------------------------------------------
; call SetClockMainToPll routine
;--------------------------------------------------------------------------
		CALL	_SetClockMainToPll
;--------------------------------------------------------------------------
; copy initial value *CONST(ROM) section to *INIT(RAM) section
;--------------------------------------------------------------------------
#macro	ICOPY	src_addr, dest_addr, src_segment
		MOVW	EP, #\src_addr
		MOVW	A,  #\dest_addr
		MOVW	A,  #SIZEOF (\src_segment)
		CALL	LMEMTOMEM
#endm

		ICOPY	_ROM_INIT,		_RAM_INIT, INIT
		ICOPY	_ROM_DIRINIT,	_RAM_DIRINIT, DIRINIT

;--------------------------------------------------------------------------
; zero clear of *VAR section
;--------------------------------------------------------------------------
#macro	FILL0	src_addr, src_segment
		MOVW	A, #\src_addr
		MOVW	A, #SIZEOF (\src_segment)
		CALL	LMEMCLEAR
#endm

		FILL0	DIRDATA_S, DIRDATA
		FILL0	DATA_S,	   DATA

;--------------------------------------------------------------------------
; call main routine
;--------------------------------------------------------------------------
		CALL	_main
end:	JMP		end

		.END	__start

⌨️ 快捷键说明

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