AN55-Porting Cosmic Applications to Raisonance

download AN55-Porting Cosmic Applications to Raisonance

of 26

Transcript of AN55-Porting Cosmic Applications to Raisonance

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    1/26

    Raisonance versusCOSMIC

    Porting STM8/ST7 applicationsfrom Cosmic to

    Raisonance tools

    Application Note AN55

    Document version28 May 2013

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    2/26

    AN55 porting Cosmic to Raisonance

    Contents

    1. INTRODUCTION ................................................................................................................4

    1.1 Purpose of !is "anua# ....................................... ......................................... ........................ ...... ...... 4

    1.2 Scope of !is "anua# .................................... ........................................ ......................... ....... ....... .... 4

    1.3 $%%i iona# !e#p or infor"a ion. .........................................................................................................4

    1.4 Raisonance &ran% "icrocon ro##er app#ica ion %e'e#op"en oo#s. ...................................................4

    1.( Con'en ions use% in !is "anua#. ....................................................................................................(

    2. STM8)ST* $PP+IC$TIONS ..............................................................................................,

    3. SUMM$R- O R$ISON$NC/ COSMIC DI /R/NC/S. ..............................................*

    3.1 Too#c!ain %irec i'es ...................................... ......................................... ............................ ....... ...... . *

    3.2 C #an ua e e ensions su""ary .....................................................................................................8

    4. S/P$R$TIN COSMIC $ND R$ISON$NC/ COD/ .......................................................

    (. M/MOR- MOD/+S. ........................................................................................................10

    (.1 Near)far func ions ca## se5uence 6STM87. ......................................................................................10

    (.2 ua#ifiers ........................................ ........................................ .............................. ...... ....... ....... ..... 10

    (.3 Defau# "e"ory spaces .................................................................................................................11

    (.4 $u o"a ic 'ariaes re#oca ion. ......................................................................................................11(.( S a ic #oca# 'ariaes. .....................................................................................................................11

    (., Poin er si9e con ro#. ....................................... ......................................... ................... ...... ....... ....... 12

    (.* C #i&raries se#ec ion. ...................................... ......................................... ........................................ 12

    (.*.1 #oa in poin #i&raries. ............................................................................................................12

    ,. M/MOR- M$PPIN .......................................................................................................13

    2

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    3/26

    AN55 porting Cosmic to Raisonance

    ,.1 $&so#u e 'ariaes ..........................................................................................................................13

    ,.2 Cons an s in ROM. ...................................... ........................................ .................... ...... ....... ....... .. 13

    *. IMP+/M/NT$TION D/T$I+S .........................................................................................14

    *.1 #o&a# 'ariaes ini ia#i9a ion ..........................................................................................................14

    *.1.1 Unini ia#i9e% #o&a# 'ariaes. ..................................................................................................14

    *.2 "ain67 ar u"en s an% re urn 'a#ue ................................................................................................14

    *.3 :i 'ariaes ...................................... ......................................... ................................. ....... ...... ...... 1(

    8. INT/RRUPT ;$ND+/RS ................................................................................................1,

    8.1 Cos"ic in errup s. ........................................ ........................................ .................................... ...... 1,

    8.2 Raisonance in errup s ....................................................................................................................1*

    . IN+IN/ $SS/M:+- $ND C)$SS/M:+/R INT/R $C/. ...............................................18

    .1 Re

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    4/26

    1 !ntro"uction AN55 porting Cosmic to Raisonance

    1 !ntro"uction

    T!is %ocu"en ui%es you !rou ! !e "i ra ion of STM8)ST* proBec s ori ina##y %e'e#ope% usin !eCos"ic co"pi#er c!ain !a you 1 1 Purpose of t#is manualT!is "anua# e p#ains !o< o por e is in STM8)ST* proBec s o !e Raisonance %e'e#op"en sui e.

    1 $ Scope of t#is manual

    T!is %ocu"en assu"es !a !e user is fa"i#iar

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    5/26

    AN55 porting Cosmic to Raisonance 1 !ntro"uction

    1 5 Conventions use" in t#is manual

    i#e H Ne< Refers o !e "enu i e" Ne

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    6/26

    $ STM8/ST7 applications AN55 porting Cosmic to Raisonance

    $ STM8/ST7 applications

    T!e STM8)ST* fa"i#ies of "icrocon ro##ers fro" STMicroe#ec ronics suppor app#ica ions %e'e#ope%usin !e C #an ua e. Ori ina##y on#y !e Cos"ic C co"pi#er oo#c!ain !e app#ica ion !e C co"pi#er specifics "us &e a%ap e% o "a c! user re5uire"en s.

    ,

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    7/26

    AN55 porting Cosmic to Raisonance % Summar( of Raisonance,Cosmic "ifferences

    % Summar( of Raisonance,Cosmic "ifferences

    % 1 Toolc#ain "irectives

    Cosmic Raisonance

    STM8 memor( mo"els

    Se#ec !e "e"ory "o%e# in your linker op ions@

    "o%s0

    "o%s#0

    "o%s

    "o%s#

    Se#ec !e compiler op ions !a "a c! your nee%s@

    STM86SM$++7 D/ $U+T C6pa e07

    STM86SM$++7 D/ $U+T C6%a a7

    STM86+$R /7 D/ $U+T C6pa e07

    STM86+$R /7 D/ $U+T C6%a a7T!e #in=er automatically se#ec s appropria e#i&raries.

    Automatic varia'les relocation

    Manua# #oca ion of 'ariaes is necessary. $u o re#oca ion "o%e au o"a ica##y #oca es !e "osuse% 'ariaes in s!or ran e "e"ory 6K0 00 0 La%%ress ran e7

    *lo'al varia'les initiali+ation

    Se#ec !e appropria e s ar up fi#e in your #in=erscrip @

    cr si.s

    cr s .s

    cr sif.s

    cr s f.s

    Use !e NOINITSTATICVAR co"pi#er %irec i'e o#ea'e unini ia#i9e% #o&a# 'ariaes unini ia#i9e% orINITSTATICVAR if you

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    8/26

    % Summar( of Raisonance,Cosmic "ifferences AN55 porting Cosmic to Raisonance

    % $ C language e-tensions summar(

    Cosmic Raisonance

    *lo'al varia'les@0x80 char a;

    @0x81:1 _Bool mybit;

    @tiny i t i ! ";

    @near # $i% e& #;

    at 0x80 char a; '' Ab$ l#te ariable

    at 0x81*1 bit mybit; '' Ab$ l#te bit

    page0 i t i ! "; '' +er ,-a%e l cati

    data # $i% e& #; '' +er ,$ecti

    A'solute functions

    Mus &e !an%#e% !rou ! a specific se "en an% a#in=er scrip %irec i'e on !e Cos"ic oo#c!ain.

    at 0x8402 i& ab$ l#te.ct(# $i% e& #);

    main. function

    i& mai ( i&)/ ret#r ; '' mai () ca ret#r

    i& mai ( i&)/ while(1); '' mai () m#$t t ret#r

    !nterrupts an" trap@interrupt i& ir2ha &ler( i&);

    $ 'ec or ae C fi#e is re5uire%. $ specific #in=er op ion "us &e pro'i%e% o "ap

    !e 'ec or ae a !e appropria e a%%ress.

    i& ir2ha &ler( i&) interrupt 0 ;

    $## !e 'ec or "appin &ur%en is automatically!an%#e% &y !e #in=er.

    Reentrant / recursive functions@stac i t .ib(i t I)

    / i.(i 3 4) ret#r 1; ret#r .ib(i,1) 5 .ib(i,4);

    i t .ib(i t I) reentrant

    / i.(i 3 4) ret#r 1; ret#r .ib(i,1) 5 .ib(i,4);

    Usefu# for ST* on#y@ Raisonance co"pi#er is a#

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    9/26

    AN55 porting Cosmic to Raisonance & Separating Cosmic an" Raisonance co"e

    & Separating Cosmic an" Raisonance co"e

    In !e process of por in app#ica ions fro" Cos"ic o Raisonance you of en nee% o !i%e so"e co%efro" !e co"pi#ers.T!e Raisonance co"pi#er offers a faci#i y !a eases !is@ so"e pre%efine% "acros are au o"a ica##y

    enera e% &y !e Raisonance co"pi#er@

    Macro Description

    QQRCSTM8QQ Pro%uces !e 6non nu##7 RCSTM8 'ersion nu"&er.

    QQROMQMOD/+QQ Pro%uces !e cons an 0 for s"a## ROM "o%e# 6#i"i e% o ,4=:7 an% 1 for+$R / "o%e#s. No e !a +$R / "o%e# is a'ai#ae on#y for STM8.

    QQST*QQ Pro%uces !e cons an 1

    STM8. QQSTM8QQ Pro%uces !e cons an 0

    STM8.

    T!ese "acros can &e use% o separa e Cos"ic Co%e fro" Raisonance co%e as fo##o>RCST?8>>)

    -a%e0 char ar ! 4; '' Rai$ a ce,$-eci.ic c &e

    =el$e

    @ti y char ar ! 4; '' C $mic,$-eci.ic c &e

    =e &i.

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    10/26

    5 Memor( mo"els AN55 porting Cosmic to Raisonance

    5 Memor( mo"els

    T!e "e"ory "o%e# !a app#ies o an app#ica ion %efines !e ype of ca##)re se5uence %epen%in on

    Cosmic Raisonance

    Se#ec !e "e"ory "o%e# in your linker op ions@

    "o%s0

    "o%s#0

    "o%s

    "o%s#

    Se#ec !e compiler op ions !a "a c! your nee%s@

    STM86SM$++7 D/ $U+T C6pa e07

    STM86SM$++7 D/ $U+T C6%a a7

    STM86+$R /7 D/ $U+T C6pa e07

    STM86+$R /7 D/ $U+T C6%a a7

    T!e #in=er automatically se#ec s appropria e#i&raries.

    5 1 Near/far functions call se0uence .STM8

    T!e STM8 suppor s ROM a%%resses !i !er !an ,4 :. If your proBec s re5uire a ROM !an spansa&o'e a%%ress 0 !e C$++ )R/T 6far C$++)R/T se5uence7 "us &e use%.On !e Raisonance co"pi#er !e ST?8( AR B ) %irec i'e can &e use% o ac i'a e C$++ )R/T in yourapp#ica ions. T!e ST?8(S?A ) or Bus &are ST?8 ac i'a es !e s an%ar% C$++)R/T se5uence.

    5 $ ualifiers

    Cosmic Raisonance@tiny i t i ! ";

    @near # $i% e& #;

    @!ar l % l;

    page0 i t i ! "; '' +er ,-a%e l cati

    data # $i% e& #; '' +er ,$ecti

    !ar data l % l; '' 4 ,bit a&&re$$i %

    Me"ory 6R$M or ROM7 can &e accesse% &y STM8)ST* "icrocon ro##ers usin %ifferen ran es@1. 8 &i a%%ress 6K0 00 0 L "e"ory ran e7 T!is is !e "os efficien

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    11/26

    AN55 porting Cosmic to Raisonance 5 Memor( mo"els

    Note @ T!e C #an ua e s ores #oca# 'ariaes an% func ion para"e ers on !e CPU s ac=. ;o

    /nsure your proBec is func iona# 6co"pi#es an% #in=s

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    12/26

    5 Memor( mo"els AN55 porting Cosmic to Raisonance

    5 Pointer si+e control

    T!e eneric poin er si9e on !e Raisonance co"pi#er is 1, &i . I can a%%ress an o&Bec any

    5 7 C li'raries selection

    T!e Cos"ic oo#c!ain re5uires a specific #in=er scrip

    #i&raries are automatically #in=e% in accor%in o !e proBec re5uire"en s 6#ar e)s"a## "o%e# f#oa#i&rary7.It is therefore not necessary to worry about C libraries with the Raisonance toolchain.

    5 7 1 loating,point li'raries

    Raisonance offers 2 'ersions of !e f#oa #i&raries. T!e stan"ar" float li'rar( is fu##y c!ec=e% an%!an%#es a## !e I/// *(4 specific issues . T!e fast float #i&rary offers "uc! fas er opera ion 6 ypica##y40 o *0 spee% i"pro'e"en 7. ;orepresen ae an% s!ou#% &e repor e% as IN . T!is is proper#y !an%#e% &y !e s an%ar% 6c!ec=e%7f#oa #i&rary &u i'es an in'a#i% resu#

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    13/26

    AN55 porting Cosmic to Raisonance Memor( mapping

    Memor( mapping

    1 A'solute varia'les

    Aariaes "us so"e i"es &e a&so#u e#y #oca e% a a specific R$M a%%ress. Cos"ic oo#s %o !is!rou ! !e @address J 5ua#ifier. or &i 'ariaes @address:bitnumber J can specify !e &i nu"&er o &e

    use% a !e i'en a%%ress. or e a"p#e 6Cos"ic syn a 7@char ?ISCR1 @0x40;

    > l J " @0x01:";

    T!e Raisonance syn a rese"es Cos"ic. T!e a address J 5ua#ifier can #oca e 'ariaes. or &i'ariaes !e a address^bitnumber J can specify !e &i nu"&er o &e use% a !e i'en a%%ress.T!e e a"p#e a&o'e can easi#y &e rans#a e% o Raisonance co%e@

    at 0x40 char ?ISCR1; '' The a&&re$$ 2#ali.ier i$ be. re the ariableat 0x01*" bit J "; '' bit ty-e re-lace$ C $micK$ > l

    Note @ $&so#u e func ions6 T!e Raisonance oo#c!ain enaes easy #oca ion of func ions a i'ena%%resses@ Use !e a address J 5ua#ifier as if !e func ion

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    14/26

    7 !mplementation "etails AN55 porting Cosmic to Raisonance

    7 !mplementation "etails

    So"e app#ica ion re5uire"en s suc! as ear#y rese con%i ions !an%#in or c#oc= con ro# "ay re5uireso"e specific co%e o &e e ecu e% &efore !e mai () func ion is en ere%.

    7 1 *lo'al varia'les initiali+ation

    T!e C s an%ar% "an%a es !a #o&a# 'ariaes s!ou#% a#i ! !e Cos"ic co"pi#er !e 5 b$$ %irec i'e assi ns a 0 'a#ue o a## unini ia#i9e% #o&a#s. Suc!'ariaes are ac ua##y "o'e% fro" !e b$$ o !e &ata sec ion.

    Note @ S ac= ini ia#i9a ion@ T!e s ac= is ne'er ini ia#i9e% &y !e Raisonance s ar up fi#e as !e s ac=poin er is au o"a ica##y se &y !e STM8)ST* c!ips upon rese .

    7 $ main. arguments an" return value

    T!e "ain67 app#ica ion en ry func ion !as !e fo##o

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    15/26

    AN55 porting Cosmic to Raisonance 7 !mplementation "etails

    i& mai ( i&);

    Conse5uen #y you canno !a'e !e co""on ar%c an% ar% ar u"en s.One %ifference &e

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    16/26

    8 !nterrupt #an"lers AN55 porting Cosmic to Raisonance

    8 !nterrupt #an"lers

    ;ar%

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    17/26

    AN55 porting Cosmic to Raisonance 8 !nterrupt #an"lers

    8 $ Raisonance interrupts

    T!e Raisonance oo#c!ain !an%#es in errup s in an au o"a ic

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    18/26

    ; !nline assem'l( an" C/assem'ler interface AN55 porting Cosmic to Raisonance

    ; !nline assem'l( an" C/assem'ler interface

    So"e proBec s re5uire !e use of asse"er for specific nee%s@ Cyc#e accura e co%e. Perfor"in so"e 'ery specific ric=s !en con'er in Cos"ic proBec s

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    19/26

    AN55 porting Cosmic to Raisonance ; !nline assem'l( an" C/assem'ler interface

    >!ic! pro%uces !e op i"a# co%e &e#o0001:

    ; SOFRCB INB =

    D NOJ ; ' auto"atically inserted inline

    A DBC A

    4 E RNB QDO>0001

    81 RBT

    ; time # $i% e& char ($i+e!1) Re%i$ter -arameter(A) i JA B0

    ; EFNCTION Q&elay (BND)

    $s you see !ere is no need o

    =i cl#&e 3i tri $ hP

    at 0x88 char my- rt ! 0xA ; '' &e.i e a $-eci.ic - rt at a&&re$$ 88h

    i t al1!0x A 4;

    i& mai ( i&)

    /

    >r$->(); '' Re$et $tac - i ter

    > m->(0x14" ); '' Ab$ l#te #m- t a a&&re$$

    al1 ! >$wa-byte>( al1); '' Swa- the byte$ .r m al1

    >$im>(); '' &i$able i terr#-t$

    my- rt U! ; '' Rai$e bit 4

    my- rt ! >$wa- ibble>(my- rt); '' $wa-$ #--er a & l w ibble$

    > ->(); '' & thi % i $tr#cti

    >rim>(); '' re,e able i terr#-t$ >halt>(); '' J#t the micr i halt m &e

    >w.i>(); '' ait . r i terr#-t

    >tra->(); '' S .tware tra-

    1

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    20/26

    ; !nline assem'l( an" C/assem'ler interface AN55 porting Cosmic to Raisonance

    ; % >riting functions in separate assem'ler files

    So"e asse"er rou ines "ay &e iso#a e% in o a specific asse"er fi#e

    proBec . or e a"p#e !e con e s

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    21/26

    AN55 porting Cosmic to Raisonance ; !nline assem'l( an" C/assem'ler interface

    ; & 9sing inline assem'ler statements

    >e sa< se'era# %ifferen "e !o%s a&o'e !a "ay !e#p you por your app#ica ions fro" Cos"ic o

    Raisonance for in#ine asse"y con'ersion. If none of !ese "e !o%s fi your nee%s an% you still

    21

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    22/26

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    23/26

    AN55 porting Cosmic to Raisonance 11 Anne- A6 ST7,specific "irectives an"options

    11 Anne- A6 ST7,specific "irectives an" options

    o##o

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    24/26

    1$ !n"e- AN55 porting Cosmic to Raisonance

    1$ !n"e-

    1, &i a%%ress......................................................1024 &i a%%ress......................................................108 &i a%%ress........................................................10

    $&so#u e func ions................................................13 $&so#u e 'ariaes............................................ ....13ar c......................................................................1(ar '......................................................................1(

    $SM)/ND$SM pra "as.............................. ....... .21 $sse"y opco%es............................................. ..21a a%%ress............................................................13au o re#oca ion "o%e...........................................11au o"a ic in errup enera ion.............................1*

    $u o"a ic 'ariaes re#oca ion.............. ....... ...... ..11:i ype.................................................................1(:i 'ariaes.........................................................1(C #an ua e e ensions su""ary...........................8C$++ )R/T .......................................................10co%e "e"ory space............................................13cons ....................................................................13Cos"ic ST* oo#c!ain "e"ory "o%e#s...............23cr si.s...................................................................14cr sif.s..................................................................14cr s .s..................................................................14cr s f.s.................................................................14Dec#arin in errup func ions................................1*

    D/ $U+T C.......................................................11far C$++)R/T......................................................10far co%e................................................................13

    #oa in poin #i&raries..................................... .....12func ion QnopQ67 ..................................................18

    #o&a# 'ariaes...................................................14;i%e co%e...............................................................INITST$TICA$R..................................................14In#ine asse"y....................................................18in errup n 5ua#ifier...............................................1*In errup 5ua#ifier..................................................1*in rinsic func ions.................................................1+ar e %a a aes.................................................13+oca# 'ariaes s ora e........................................11Macros..................................................................."ain67..................................................................14"appin in errup 'ec ors....................................1*"o%c....................................................................23"o%"...................................................................23"o%"#..................................................................23"o%""...............................................................23

    "o%"s.................................................................23"o%s....................................................................23"o%s0....................................................................*"o%s#...................................................................23"o%s#0...................................................................*NOINITST$TICA$R............................................14pa e0...................................................................10Para"e ers passe% in "e"ory............................21Para"e ers passe% in s ac=............................. ....21Passin para"e ers.............................................21poin er si9e..........................................................12Poin er si9e con ro#..............................................12p a&......................................................................12

    ua#ifiers..............................................................10Re%uce your co%e foo prin ..................................11Ri%e*...................................................................11Separa e asse"er fi#es.....................................20ST Aisua# De'e#op...............................................11ST* Me"ory "o%e# se#ec ion..............................23S ac= ini ia#i9a ion................................................14s ar up..................................................................14s ar up.as"..........................................................14s a ic....................................................................11STM86+$R /......................................................10STM86SM$++7.....................................................10

    Too#c!ain %irec i'es...............................................*rap......................................................................1*

    Trap !an%#er........................................................1*Usin in#ine asse"er s a e"en s......................21'oi% ir5!an%#er6'oi%7............................................1,'o#a i#e..................................................................12

    QQRCSTM8QQ............................................. ....... .... QQROMQMOD/+QQ...................................... ......... . QQST*QQ....................................... ............. ...... ...... QQSTM8QQ............................................. ....... ...... ... Q:oo# ype................................................... ....... ..1(.&ss......................................................................14.%a a.....................................................................14Fa%%ress@&i nu"&er...........................................13Ffar.....................................................................10Fin errup ............................................................1,Fnear..................................................................10F iny....................................................................10

    ri%e%ir ..............................................................(no&ss.................................................................14

    24

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    25/26

    AN55 porting Cosmic to Raisonance 1% @istor(

    1% @istor(

    Date Description

    Mar 0 Ini ia# 'ersion

    $pr 0 Docu"en reor ani9e%@ Recapi u#a ion ae is no< in !e !ea% of !e %ocu"en .

    $%%e% so"e %e ai#s a&ou Raisonance f#oa in poin #i&raries.

    Gun 0 $%%e% so"e %e ai#s a&ou in errup 'ec ors "appin an% &oo#ean 'ariaes.

    02 Oc 12 Mo%ifie% co'er pa e fina# pa e an% sec ion 1.3 $%%i iona# !e#p or infor"a ion for /O+$:S

    28 May 13 Mo%ifie% e"p#a e

    2(

  • 8/11/2019 AN55-Porting Cosmic Applications to Raisonance

    26/26

    Disclaimer

    Infor"a ion in !is %ocu"en is su&Bec o c!an e