Startup Code Lecture L5.2. Reference MC9S12C Family Device User Guide V01.05 9S12C128DGV1.pdf.

Post on 19-Dec-2015

217 views 2 download

Tags:

Transcript of 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