AN55-Porting Cosmic Applications to Raisonance
-
Upload
mathewbasil22 -
Category
Documents
-
view
222 -
download
0
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