📄 start.asm
字号:
;====================================================================
; Id: START.ASM,v 3.13 2006/08/25 17:42:26 hloesc Exp
;====================================================================
; THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS.
; FUJITSU MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY
; FOR ANY ERRORS OR ELIGIBILITY FOR ANY PURPOSES.
;
; Startup file for memory and basic controller initialisation
;
; MB90600/MB90500/MB90300/MB90400/MB90800/MB90900 Series C Compiler
; (compatible but untested for MB90700/MB90700H/MB90200)
;
; (C) FUJITSU MICROELECTRONICS EUROPE 1998-2006
;====================================================================
.PROGRAM STARTUP
.TITLE "STARTUP FILE FOR MEMORY INITIALISATION"
;====================================================================
; 1 Contents
;====================================================================
; 1 Contents
; 2 Disclaimer
; 3 History
;
; 4 SETTINGS (USER INTERFACE)
; 4.1 Controller Family
; 4.2 Memory model
; 4.3 Function-Call Interface
; 4.4 Constant Data Handling
; 4.5 Stack Type and Stack Size
; 4.6 General Register Bank
; 4.7 Low-Level Library Interface
; 4.8 Clock Selection
; 4.9 External Bus Interface
; 4.10 Reset Vector
; 4.11 Enable RAMCODE Copying
; 4.12 Enable information stamps in ROM
;
; 5 Section and Data Declaration
; 5.1 Several fixed addresses (fixed for MB90xxx controllers)
; 5.2 Declaration of __near addressed data sections
; 5.3 Declaration of RAMCODE section and labels
; 5.4 Declaration of sections containing other sections description
; 5.5 Stack area and stack top definition
; 5.6 Direct page register dummy label definition
;
; 6 Start-Up Code
; 6.1 Import external symbols
; 6.2 Program start (the reset vector should point here)
; 6.3 "NOT RESET YET" WARNING
; 6.4 Initialisation of processor status
; 6.5 Set clock ratio
; 6.6 Set external bus configuaration
; 6.7 Copy initial values to data areas.
; 6.8 Clear uninitialised data areas to zero
; 6.9 Prepare stacks and set the active stack type
; 6.10 Set Data Bank Register (DTB) and Direct Page Register (DPR)
; 6.11 Wait for PLL to stabilise
; 6.12 Initialise Low-Level Library Interface
; 6.13 Call C-language main function
; 6.14 Shut down library
; 6.15 Program end loop
; 6.16 Configuration stamp in ROM (currently test only)
; 6.17 Debug address specification
;
;====================================================================
; 2 Disclaimer
;====================================================================
; FUJITSU MICROELECTRONICS EUROPE GMBH
; Pittlerstrasse 47, 63225 Langen, Germany
; Tel.: +49(6103)690-0, Fax: -122
;
; The following software is for demonstration purposes only.
; It is not fully tested, nor validated in order to fulfil
; its task under all circumstances. Therefore, this software
; or any part of it must only be used in an evaluation
; laboratory environment.
; This software is subject to the rules of our standard
; DISCLAIMER, that is delivered with our SW-tools on the CD
; "Microcontrollers - Documentation & Software" or see our
; Internet Page: http://emea.fujitsu.com/microelectronics
;
;
;====================================================================
; 3 History
;====================================================================
; Id: START.ASM,v 3.13 2006/08/25 17:42:26 hloesc Exp
#define VERSION "3.13"
/*
Log: START.ASM,v
Revision 3.13 2006/08/25 17:42:26 hloesc
- minor: corrected new postal address
- minor: corrected new Web link
- changed: ROM stamp format 1 with REG_PASS
Revision 3.12 2006/08/25 16:06:39 hloesc
- added: family MB90900
- added: support for alternative funciton call interface
Revision 3.11 2005/03/01 19:36:20 hloesc
- fix: A was overwriten, moved writing of CKSCR before writing PSCCR
Revision 3.9 2004/07/08 16:28:55 hloesc
- Set DTB to bank 0, if PSCCR is used. (If start-up code is started by jump
and not by reset, DTB is not automatically cleared.)
Revision 3.8 2004/04/15 15:37:46 hloesc
- missing underscore in __psccr (copy and paste error)
Revision 3.7 2004/04/05 10:33:53 hloesc
- missing colon after CVS "Log" command
Version 3.06 05 April 2004, HLo
- checked in CVS
- changed back to manual setting of EXTENDED_PLL, since clearing register could
be necessary, if exist
Version 3.05 01 April 2004, HLo
- removed setting EXTENDED_PLL
It is now set automatically, if PLL factor is set higher than 4
- changed _psccr reference to __psccr
Version 3.04 02. Jan 2004, HLo
- removed fixed address PSCCR, because it is not fixed
Version 3.03 18. Dec 2003, HLo
- configuration option for Version stamp and Configuration stamp
- DATA2 and INIT2 added to list of cleared/initialised sections
Version 3.02 26. June 2003 HLo
- more NOP instructions after PLL disable for faster PLL types
- on default stack is filled with pattern
- size alignment for stack re-added
- initialise stack by stack symbols to force linkage of
externaly defined stack or to force linker error
- label _start plus one NOP moved before "notresetwarning", in
order to achieve same cycle count for evaluation chip and Flash
chip with fixed reset vector.
- pre-setting stack with pattern is now default
Version 3.01 12 May 2003 HWe
- ADDRESSMODE for External Bus Interface added
Version 3.00 30 Jan 2003 HLo
- branch 2.02b merged to 3.00: added NOP after PLL disable
- stack size specified in bytes now
- new: additional PLL factors for MB90340/350/480
- new: option to preset stack with pattern
- new: symbols to access stack in C
- new: option to skip reservation of stack area
- new: LX-family MB90800 added
Version 2.03 06 Feb 2002 HLo
- company name/link updated
- CONST2/CINIT2 section added to support split CONST area
Version 2.02 20 Aug 2001 NPo
- MB90300 family added
Branch 2.02b 16 Nov 99 MSt
- insert wait loop to check if PLL has stopped
Version 2.01 11 Oct 99 HLo
- unused macros WIDTH_8 and WIDTH_16 removed
Version 2.00 23 July 99 HLo
- decriptors of __near sections now in DCLEAR/DTRANS
- code for __near section init removed, now initialised by DCLEAR
and DTRANS processing
- RAMCODE option added
- table of contents added
- memory model AUTO renamed to AUTOMODEL
- CONSTDATA mode AUTOCONST introduced to make it clearer
Version 1.12 23 June 99 HLo
- CLIBINIT is using ON/OFF instead of extra macro now
Version 1.11 1 June 99 HLo
- confusing old line with comment removed, was refering to unused
old BUSWIDTH
Version 1.10 17 May 99 HLo
- change in 1.09 (MODEBYTE) related to BUSWIDTH was not complete
Version 1.09 12 May 99 HLo
- MB90400 family added
- several coments changed
- INTROM_EXTBUS macro was wrong
- BUSWIDTH macro removed, now resolved from bus signal
- disclaimer added
- disabling interrupts added
Version 1.08 16 April 99 JRo
- Version placed in separate section (caused problems with fixed
reset vector)
Version 1.07 01 April 99 HLo
- Version string had wrong number (1.05 instead of 1.06)
- Copyright slightly changed
Version 1.06 18 Feb 99 HLo
- default external bus configuration: WR signal enabled
- ROMMIRROR macro processing simplified (less warnings>
Version 1.05 28 Oct 98 HLo
- CALL/CALLP _exit was not differed
Version 1.04 21 Oct 98 HLo
- ROM mirror option added
- _exit call added
- bug: EQU ON/OFF move to upper lines
Version 1.03 19 Oct 98 HLo
- bug: SEGCOPY macro: used size changed from sizeof(src) to
sizeof(dest). It was conflicting with RAMCONST, if compiler
is set to ROMCONST.
Version 1.02 16 Oct 98 HLo
- memory model AUTO introduced (use far calls only and repair
stack, if necessary
- colons removed from EQU labels
- stream_init call added
- RAMCONST set as default (also for ROMCONST systems)
Version 1.01 31 Aug 98 HLo
- bug: conditional for reset vector was missing
Version 1.00 25 Aug 98 HLo
- original version
*/
;====================================================================
;====================================================================
; 4 Settings
;====================================================================
;
; CHECK ALL OPTIONS WHETHER THEY FIT TO THE APPLICATION;
;
; Configure this startup file in the "Settings" section. Search for
; comments with leading "; <<<". This points to the items to be set.
;====================================================================
#set OFF 0
#set ON 1
;====================================================================
; 4.1 Controller Family
;====================================================================
#set MB90700 0 ; FFMC-16
#set MB90200 1 ; FFMC-16F
#set MB90600 2 ; FFMC-16L
#set MB90500 3 ; FFMC-16LX
#set MB90400 4 ; FFMC-16LX
#set MB90300 5 ; FFMC-16LX
#set MB90800 6 ; FFMC-16LX
#set MB90900 7 ; FFMC-16LX
#set FAMILY MB90300 ; <<< select family
; NOTE: This startup file is not suitable for MB90610 series. Use
; start610.asm instead.
;====================================================================
; 4.2 C-language Memory model
;====================================================================
; data code
#set SMALL 0 ; 16 Bit 16 Bit
#set MEDIUM 1 ; 16 Bit 24 Bit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -