Startup Code Lecture L5.2
Reference MC9S12C Family Device User Guide V S12C128DGV1.pdf
MODC MODB,MODA ROMCTL
On reset, board comes up in Normal Single Chip mode
>md fff0 FFF0 FB 66 FB 68 FB 6A FB 6C FB 6E FB 70 FB 72 FC 00 >md fc00 FC F CF 0F 8A C ORCC #$10 ;SEI 4F BRCLR,PORTE,#$01,NEXT JMP$8000 CF 0F 8A NEXTLDS#$0F8A Reset Code
MEBI Module Multiplexed External Bus Interface (MEBI) Block User Guide Module V3 S12MEBIV3.pdf
PEAR EQU $000A On reset, board comes up in Normal Single Chip mode Must change to use multiplexed address/data bus
00 PEAR EQU $000A
0100
10100 MOVB #$0C,PEAR
MODE EQU $000B
111 MOVB #$E0,MODE MOVW #$0CE0,PEAR
Module Mapping Control Module Mapping Control (MMC) V4 S12MMCV4.pdf
MISC EQU $0013
MOVB #$0D,MISC
CRG Block User Guide V04.05 S12CRGV4.pdf Clocks and Reset Generator (CRG)
ARMCOP EQU $003F
COPCTL EQU $003C
CLR COPCTL
startup.asm ;Start up code COPCTLEQU $003C STACKEQU$0DFF ORG$8000 startup LDS#STACK CLR COPCTL JMPMAIN MAIN
Turnkey Example ; Turnkey SCI Interface using interrupts File: TKSCILCD.WHP ; display characters from PC keyboard on LCD display SC0BDH EQU $C8 ;baud rate control SC0CR1 EQU $CA ;SCI control reg 1 SC0CR2 EQU $CB ;SCI control reg 2 SC0SR1 EQU $CC ;SCI status reg SC0DRL EQU $CF ;SCI data reg RDRF EQU $20 ;SCSR mask SCI0.IVECEQU$0FD8;SCI0 user vector address + 2 COPCTL EQU $003C;COP control reg STACKEQU$0DFF;initial stack pointer
ORG$800 qsizeequ16 frontdw0 reardw0 qmindw0 qmaxdw0 qbuffrmbqsize ORG$8000 startup LDS#STACK CLR COPCTL main jsrspi_init;initialize spi jsrlcd_init;initialize lcd jsrinitq;initialize queue jsrsci0_init;initialize sci mn1jsrcheckq;if queue is empty bcsmn1; wait jsrdata8;store char on LCD ldy#300 jsrms_delay;delay ~10 ms bramn1 Note: No initial values can be here
S FC S E4 S10B DC S CF0DFF79003C1680B DF S FB16811CCD012C1680D961 S F CACC00345CC8862C5ACBDA S CC80397C0FD810EF3D96CC S CF BCC08087C08007C08027C08FA S C3000F7C08063D36FC0802C30001BCC3 S FC08047C0802BC CC S BC FC08067C S FE08026A003DFC0800BC S FC0800C30001BC FC08E7 S11380A0047C0800FE0800A60010FE3D840F S11380B023038B373D8B303D86105AD97900DA86FD S11380C0525AD83D3696DB842027FA32365ADD964A S11380D0DB848027FA96DD323D34CE07CF0926FDB6 S11380E00326F7303D36840F1680C4368A S11380F0C C4323D E S E43D36840F368A401680C432368AC0165F S C432368A401680C432323D E8 S DF3207DC3DCD D C2 S E5CD D E5CD S D E5CD D98602C2 S E5CD D9862C1680F7CD0026 S A1680D F7CD000A1680D986AD S F1680F7CD000A1680D F7CD38 S D F7CD000A1680D98F S C43D F7CD000A16803D S11381A0D93D1680AC16811C3DA630270B16811CC8 S10C81B0CD000A1680D920F13D2E S FC Note: Must delete these two lines before programming to flash memory tkscilcd.s19
Use AxIDE to program flash memory