startup code lecture l5.2. reference mc9s12c family device user guide v01.05 9s12c128dgv1.pdf

29
Startup Code Lecture L5.2

Post on 19-Dec-2015

223 views

Category:

Documents


2 download

TRANSCRIPT

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

Startup Code

Lecture L5.2

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

Reference

MC9S12C FamilyDevice User GuideV01.05

9S12C128DGV1.pdf

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

MODC

MODB,MODA

ROMCTL

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

On reset, board comes up in Normal Single Chip mode

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

>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

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

MEBI Module Multiplexed External

Bus Interface (MEBI)

Block User Guide

Module V3

S12MEBIV3.pdf

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

PEAR EQU $000A

On reset, board comes up in Normal Single Chip modeMust change to use multiplexed address/data bus

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

0 0

PEAR EQU $000A

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

0 10 0

PEAR EQU $000A

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

10 10 0

PEAR EQU $000A

MOVB #$0C,PEAR

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

MODE EQU $000B

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

1 11

MODE EQU $000B

MOVB #$E0,MODE

MOVW #$0CE0,PEAR

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

Module Mapping Control Module Mapping

Control (MMC) V4

S12MMCV4.pdf

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

MISC EQU $0013

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

MISC EQU $0013

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

MISC EQU $0013

MOVB #$0D,MISC

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

CRG

Block User Guide

V04.05

S12CRGV4.pdf

Clocks and Reset Generator (CRG)

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

ARMCOP EQU $003F

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

COPCTL EQU $003C

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

COPCTL EQU $003C

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

COPCTL EQU $003C

CLR COPCTL

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

startup.asm; Start up code

COPCTL EQU $003CSTACK EQU $0DFF

ORG $8000

startupLDS #STACKCLR COPCTLJMP MAIN

MAIN

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

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

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

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

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

S0030000FCS113080000000000000000000000000000000000E4S10B08100000000000000000DCS1138000CF0DFF79003C1680B816812716804516DFS1138010802216808725FB16811CCD012C1680D961S113802020F014107900CACC00345CC8862C5ACBDAS1138030CC80397C0FD810EF3D96CC842027059650S1138040CF1680580BCC08087C08007C08027C08FAS113805004C3000F7C08063D36FC0802C30001BCC3S113806008062303FC08047C0802BC0800261183CCS11380700001BC08042403FC08067C080232200624S113808032FE08026A003DFC0800BC080226041403S1138090012018FC0800C30001BC08062303FC08E7S11380A0047C0800FE0800A60010FE3D840F810930S11380B023038B373D8B303D86105AD97900DA86FDS11380C0525AD83D3696DB842027FA32365ADD964AS11380D0DB848027FA96DD323D34CE07CF0926FDB6S11380E00326F7303D36840F1680C4368A80168006S11380F0C4321680C4323D364444444407E7320750S1138100E43D36840F368A401680C432368AC0165FS113811080C432368A401680C432323D36444444E8S11381204407DF3207DC3DCD00321680D9860316C2S113813080E5CD00321680D986031680E5CD003265S11381401680D986031680E5CD00321680D98602C2S11381501680E5CD00321680D9862C1680F7CD0026S11381600A1680D986061680F7CD000A1680D986ADS11381700F1680F7CD000A1680D986011680F7CD38S113818000141680D986801680F7CD000A1680D98FS113819086001680C43D86011680F7CD000A16803DS11381A0D93D1680AC16811C3DA630270B16811CC8S10C81B0CD000A1680D920F13D2ES9030000FC

Note: Must deletethese two lines beforeprogramming to flashmemory

tkscilcd.s19

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

Use AxIDE to program flash memory