Messaggio Senza odi a Con odi a
StatusInfo 378bytes 55bytes
StatusRequest 301bytes 51bytes
Figura 7.10Andamentodeltempodirisposta. Ilpi oin prossimitàdelmes-
saggio 84èdovutoalfatto he il messaggiodi rispostaera orrottoedèstato
quindi s artatodal lient. La seriale èimpostata su una trasmissione a 9600
Con lusioni
Sono stati ri hiamati innanzitutto i on etti generali relativi ai generatori di
odi eeaimi ro ontrolloriPIC,mettendoin evidenzaqualisonole aratteris-
ti he he essipresentano. Questoha onsentito di introdurrelostatodell'arte
deisistemioperativiperPIC, perpoipassareadanalizzareilgeneratoredi o-
di eimplementato,relativoallarealizzazionedellaparte`dinami a'delsistema
operativo.
Ilsistema operativoimplementatopresentaleseguenti aratteristi he:
•
S heduling ooperativo on prioritàbasatasutimer ondiviso,•
Numeroditaskdipendentees lusivamentedallamemoriadisponibile,•
Comuni azionitramitemessaggi,•
Fa ileportabilitàsututtiiPIC dellafamiglia18F;Gli obiettivi di questa tesi possono ritenersi raggiunti. Il porting del si-
stema suun'ar hitettura piùpi olael'integrazione onl'infrastrutturaRobo-
ti s4.NET, seppur on l'uso di un proxy intermedio, sono stati realizzati on
risultati soddisfa enti. La strada he abbiamointrapresosembra promettente
an hein onsiderazionedelfatto helaMi ro hiphaprodottore entementedei
PIC di nuovagenerazione heintegranoun ontrollerEthernet onbusdedi a-
to. Èpertantopossibileeliminaredenitivamenteilnodointermedio(inquesto
aso un personal omputer tradizionale) su ui gira il pro esso proxy, on un
ulterioreabbassamentodei ostiedell'adabilitàdelsistema.
I mi ro ontrollori PIC, per leloro aratteristi he, stanno diventando degli
generazione( omelaWildFire), sonosenzadubbiodeivantaggidaprenderein
onsiderazioni. Troppo spesso in ambito industriale si ri er ano omponenti
hardware sempre più prestanti, quando basterebbe sfruttare al meglio quelli
onsideratierroneamente`obsoleti'.
Il asodistudiopresoin onsiderazione, ioèil ontrollodiunmotorepasso-
passo, è soltanto un esempio dell'ampia gamma di possibili appli azioni he
possono essererealizzate in modoe onomi o ed adabile. Tanto per rendere
an orapiù hiari ivantaggie onomi i, il ostodi questosistema èpassatoda
ir a230Euro onl'utilizzodiunas hedaWildFire( osto150Euro)a ir a80
Ambiente di sviluppo e
Compilatore
È statoutilizzato l'ambiente di sviluppo MPLAB IDE v.7.43 della Mi ro hip
(g. A.1). MPLABnonèstrettamentevin olatoadunparti olarelinguaggiodi
Figura A.1 L'ambientedisviluppoMPLABIDE
programmazioneoadundeterminatoprogrammatoremarappresentaunasorta
Compilatore C18
Il ompilatoreC18 èpienamente ompatibile on l'MPLAB IDEe on il pro-
grammatore MPLAB ICD 2. Analiziamo adesso al une delle aratteristi he
prin ipali 1
.
Le fasi della ompilazione
Ing. A.2èpossibilevedere indettaglio unesempiodellefasi di ompilazione
di un programma C on il C18. Nell'esempio, i due le file2. e file3.
vengono ompilatidalC18, hegeneraiduelefile2.oefile3.o. Questile
vengonopoipassatiallinker (MPLINK),assiemeadunterzole,s ript.lkr,
pergenerareileoutput.hex he ontieneil odi ema hinada ari arenella
memoriaprogrammadelPIC.Illinkergenerainoltrealtriduele: output. of
eoutput.map. Il primo è il relativole in formato COFF, mentre il se ondo
ontiene informazioni (allo azione, indirizzoe dimensione) di ognisezione del
programma.
Illes ript.lkr,dettoan helinkers ript serveallinkerpersaperequal'è
ilmodelloesattodiPIC su uideveessere ari atoil odi ema hina.
Il LinkerS ript
L'MPLINKnonpuò eettuare orrettamentelafasedi linkingsenza unlinker
s ript. Il linker s ript fornis e tutto iò he è ne essario sapere per allo are
orrettamente il programma nella memoria del PIC: quali sono i registri ge-
neralidisponibilieloroallo azione,quantamemoriaprogrammaèdisponibile,
et . OgniPIC haunpropriolinkers riptdidefault, hepuòesseremodi ato,
se ondoleesigenze,dallosviluppatore. Illinkers riptèsostanzialmenteunase-
quenzadi omandi hedes rivonoilPICallinker.Questi omandiappartengono
aquattro ategoriedierenti:
•
Comandi hefornis onoinformazionisuile hedevonoesserelinkati(que- ste informazioni possono essere fornite al ompilatore an he a linea diomando),
•
Comandi hedes rivonoallinkerlastrutturahardwaredelPIC,•
Comandi hedes rivono omevogliamo hel'hardwareappaiaalprogram- mautente,1
IlC18puòoperareusandodue onvenz ionidiverse:Non-ExtendedModeeExtendedMode.
Figura A.2Esempiodelussodi ompilazionediunprogrammaC onilC18
•
Comandi he denis onola quantità di memoria da riservare allo sta k delle hiamate;Iprin ipali omandisonoi seguenti:
•
CODEPAGE:Questo omandodes rive isegmenti in ui èstruttura lame- moriaprogramma. Adognisegmentovieneassegnatounnomeenevieneindi atol'indirizzodipartenzaeladimensione. Puòessereindi atoan he
unattributoopzionale,PROTECTED, hespe i a hesololeistruzioni he
CODEPAGENAME=page0 START=0x000005 END=0x000100 PROTECTED
•
DATABBANK: Questo omando des rive i segmenti in ui è strutturatala memoriadati. Lasintassièidenti aaquelladi CODEBANK.Unesempio:DATABANKNAME=gpr0 START=0x80 END=0xFF
•
ACCESSBANK: Questo omando des rive l'A ess RAM (vedi par. 2.4.7) dellamemoriadati. Lasintassièsimile allepre edenti. Unesempio:ACCESSBANKNAME=a essram START=0x0 END=0x7F
•
SECTION:Questo omandoservepermapparelesezioni(vedipar. A)de- nitenelprogrammasorgenteaisegmentideniti oni omandipre edenti.Inprati a questo omando asso iaad unsegmento CODEPAGEoBANKun
nomevisibileall'internodelsorgente. VengonoutilizatiiparametriROMe
RAMperspe i aredovesitrovailsegmentodamappare. Unesempio:
DATABANK NAME= gpr1 START=0x100 END=0x1FF
SECTION NAME=pippo RAM= gpr1
•
STACK:Questo omandoserveperdenire ladimensionedellosta kdelle hiamateelasuaallo azione. Unesempio:DATABANKNAME=sta kregion START=0x400 END=0x5F3 PROTECTED
STACK SIZE=0x1F3 RAM=sta kregion
Il listato45 des rive il linker s ript del PIC 18F452, ioè quello utilizzato
peril asodi studiodel ap. 7.
Tipi di dati e limiti
Perquantoriguardagliinteri,ilC18supportatuttiitipidenitidallostandard
ANSIeviaggiungeilsupportoagliinteria24bitsia onsegno hesenzasegno
(tab. A.1). Perquanto riguarda i numeri in virgolamobile, il C18utilizza lo
standardIEEE-754(tab.A.2 ).
I valori multi-byte vengono memorizzati in memoria seguendo il formato
little-endian.
Quali atori di memoria
Listato 45 Illinker s ript del PIC 18F452modi ato per testing. La prima
oppia di omandi ( DATAB ANK, SECTION) denis e la dimensione (128 bytes)
del buer usatoperla ri ezionedi un messaggioproveniente dallaseriale. La
se onda oppia denis e la dimensione (128 bytes) per il buer in ui viene
deserializzato il messaggio di input. La terza oppia denis e la dimensione
(128 bytes)del buerutilizzatoperlaserializzazionedelmessaggio daspedire
sulla seriale. La quinta oppia denis e la dimensione (256 bytes) dell'heap
dinami o usato perlagestionedella memoria. Inne, gliultimi due omandi,
denis onola dimensione (500bytes) dellosta kdel ompilatoreC18. gpr1è
un'area dimemoriadisponibile perallo arevariabiligeneral-purpose.
DATABANK NAME=inbuffer START=0x100 END=0x17F SECTION NAME=inbuff RAM=inbuffer DATABANK NAME=readbuffer START=0x180 END=0x1FF SECTION NAME=readbuff RAM=readbuffer DATABANK NAME=outbuffer START=0x200 END=0x27F SECTION NAME=outbuff RAM=outbuffer DATABANK NAME=gpr1 START=0x280 END=0x2FF DATABANK NAME=sramallo START=0x300 END=0x3FF SECTION NAME=_SRAM_ALLOC_HEAPRAM=sramallo DATABANK NAME=sta kregion START=0x400 END=0x5F3 PROTECTED
Tabella A.1Tipi, dimensionielimitideidatiinteri
Tipo Dimensione Minimo Massimo
har 8bits -128 127
signed har 8bits -128 127
unsigned har 8bits 0 255
int 16bits -32,768 32,767
unsigned int 16bits 0 65,535
short 16bits -32,768 32,767
unsigned short 16bits 0 65,535
short long 24bits -8,388,608 8,388,607
unsigned short long 24bits 0 16,777,215
long 32bits -2,147,483,648 2,147,483,647
unsigned long 32bits 0 4,294,967,295