Download - Startup Code Lecture L5.2. Reference MC9S12C Family Device User Guide V01.05 9S12C128DGV1.pdf
Startup Code
Lecture L5.2
Reference
MC9S12C FamilyDevice User GuideV01.05
9S12C128DGV1.pdf
MODC
MODB,MODA
ROMCTL
On reset, board comes up in Normal Single Chip mode
>md fff0FFF0 FB 66 FB 68 FB 6A FB 6C FB 6E FB 70 FB 72 FC 00
>md fc00FC00 14 10 4F 08 01 03 06 80 00 CF 0F 8A 79 00 3C 18
14 10 ORCC #$10 ;SEI4F 08 01 03 BRCLR,PORTE,#$01,NEXT06 80 00 JMP $8000CF 0F 8A NEXT LDS #$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 modeMust change to use multiplexed address/data bus
0 0
PEAR EQU $000A
0 10 0
PEAR EQU $000A
10 10 0
PEAR EQU $000A
MOVB #$0C,PEAR
MODE EQU $000B
1 11
MODE EQU $000B
MOVB #$E0,MODE
MOVW #$0CE0,PEAR
Module Mapping Control Module Mapping
Control (MMC) V4
S12MMCV4.pdf
MISC EQU $0013
MISC EQU $0013
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
COPCTL EQU $003C
COPCTL EQU $003C
CLR COPCTL
startup.asm; Start up code
COPCTL EQU $003CSTACK EQU $0DFF
ORG $8000
startupLDS #STACKCLR COPCTLJMP MAIN
MAIN
Turnkey Example
; Turnkey SCI Interface using interrupts File: TKSCILCD.WHP; display characters from PC keyboard on LCD display
SC0BDH EQU $C8 ;baud rate controlSC0CR1 EQU $CA ;SCI control reg 1SC0CR2 EQU $CB ;SCI control reg 2SC0SR1 EQU $CC ;SCI status regSC0DRL EQU $CF ;SCI data regRDRF EQU $20 ;SCSR maskSCI0.IVEC EQU $0FD8 ;SCI0 user vector address + 2
COPCTL EQU $003C ;COP control regSTACK EQU $0DFF ;initial stack pointer
ORG $800qsize equ 16front dw 0rear dw 0qmin dw 0qmax dw 0qbuff rmb qsize
ORG $8000startup
LDS #STACKCLR COPCTL
mainjsr spi_init ;initialize spijsr lcd_init ;initialize lcdjsr initq ;initialize queuejsr sci0_init ;initialize sci
mn1 jsr checkq ;if queue is emptybcs mn1 ; waitjsr data8 ;store char on LCDldy #300jsr ms_delay ;delay ~10 msbra mn1
Note: No initial values can be here
S0030000FCS113080000000000000000000000000000000000E4S10B08100000000000000000DCS1138000CF0DFF79003C1680B816812716804516DFS1138010802216808725FB16811CCD012C1680D961S113802020F014107900CACC00345CC8862C5ACBDAS1138030CC80397C0FD810EF3D96CC842027059650S1138040CF1680580BCC08087C08007C08027C08FAS113805004C3000F7C08063D36FC0802C30001BCC3S113806008062303FC08047C0802BC0800261183CCS11380700001BC08042403FC08067C080232200624S113808032FE08026A003DFC0800BC080226041403S1138090012018FC0800C30001BC08062303FC08E7S11380A0047C0800FE0800A60010FE3D840F810930S11380B023038B373D8B303D86105AD97900DA86FDS11380C0525AD83D3696DB842027FA32365ADD964AS11380D0DB848027FA96DD323D34CE07CF0926FDB6S11380E00326F7303D36840F1680C4368A80168006S11380F0C4321680C4323D364444444407E7320750S1138100E43D36840F368A401680C432368AC0165FS113811080C432368A401680C432323D36444444E8S11381204407DF3207DC3DCD00321680D9860316C2S113813080E5CD00321680D986031680E5CD003265S11381401680D986031680E5CD00321680D98602C2S11381501680E5CD00321680D9862C1680F7CD0026S11381600A1680D986061680F7CD000A1680D986ADS11381700F1680F7CD000A1680D986011680F7CD38S113818000141680D986801680F7CD000A1680D98FS113819086001680C43D86011680F7CD000A16803DS11381A0D93D1680AC16811C3DA630270B16811CC8S10C81B0CD000A1680D920F13D2ES9030000FC
Note: Must deletethese two lines beforeprogramming to flashmemory
tkscilcd.s19
Use AxIDE to program flash memory