Documente Academic
Documente Profesional
Documente Cultură
PK51 este o platformă integrată (IDE – Integrated Development Environment) pentru dezvoltarea
aplicațiilor pentru microcontrolere 8051 și compatibile. Aceasta include un manager de proiecte (Keil
µVision3), un editor de text sursă, compilatorul C51, asamblorul A51, editorul de legături L51,
gestionarul de biblioteci LIB51, un simulator/depanator, precum şi alte programe utilitare necesare
pentru generarea codului executabil. PK51 dispune de o interfaţă grafică Windows, iar managerul de
proiecte (Keil µVision3) ţine evidenţa tuturor fişierelor unei aplicaţii şi lansează automat în execuţie
toate programele utilitare necesare pentru realizarea operaţiilor solicitate de utilizator.
Compilator C Asamblor
C51 A51
În cele ce urmează vor fi prezentate principalele facilităţi şi posibilităţi de lucru ale PK51, care are la bază
implementări Windows DLL ale programelor de dezvoltare A51, C51, L51 şi LIB51. Schema bloc din Fig.1
ilustrează ciclul de dezvoltare al unei aplicaţii pentru MCS-51 folosind uneltele puse la dispoziţie de
această platformă:
Editare cod
Fereastra cu
sursă
structura
proiectului
Managerul de proiecte Keil µVision3 (Fig.2) creează un fişier proiect cu extensia ”.uV2” pentru fiecare
aplicaţie, în care sunt memorate informaţii despre numele şi tipul fişierelor din care este alcătuită
aplicaţia, precum şi opţiunile de configurare a proiectului pentru fiecare fază de prelucrare (compilare,
asamblare, editare de legături). Acestea corespund opţiunilor de la versiunile în mod linie de comandă şi
pot fi generale (valabile pentru toate fişierele sursă), sau particularizate pentru fiecare fişier al aplicaţiei.
Un proiect poate conţine fişiere sau grupuri de fişiere sursă şi obiect, dar pentru acelaşi proiect se pot
defini mai multe sisteme ţintă (Target), fiecare putând fi asociat unui anumit tip de microcontroler.
Opţiunile definite la nivelul fiecărui fişier sursă sau obiect prevalează faţă de cele definite la nivelul
grupului (dacă face parte dintr-un grup), toate acestea fiind prioritare faţă de opţiunile proiectului, care
sunt definite pentru fiecare sistem ţintă în parte (Project/Options for Target … sau meniu de context
click buton mouse dreapta pe numele plăcii – BIG8051). În Fig.3 sunt prezentate tab-urile cu opțiuni la
nivel de proiect (sistem țintă). Aici se poate selecta tipul microcontrolerului (C8051F040) și alte opțiuni
de configurare pentru acesta, pentru uneltele de dezvoltare (C51, A51, BL51) și pentru depanare.
Valorile iniţiale ale informaţiilor de configurare sunt încărcate dintr-un fişier de configuraţie globală la
crearea proiectului şi pot fi ajustate de către utilizator în concordanţă cu particularităţile aplicaţiei. La
ieşire din mediul integrat, opţiunile curente sunt salvate în fişierul de configuraţie al proiectului.
Prelucrarea fişierelor sursă: compilarea, asamblarea şi editarea legăturilor – operaţii realizate sub
controlul managerului de proiecte Keil µVision3, pune în evidenţă erorile de sintaxă introduse la scrierea
programului, care pot fi corectate off-line.
În schimb, verificarea comportării on-line a aplicaţiei şi eliminarea erorilor logice, de concepţie, se poate
face la momentul execuţiei, prin depanare:
Pentru depanare, codul poate fi vizualizat într-o fereastră de dezasamblare sau direct în fișierul sursă,
așa cum se arată în Fig.5. Acesta poate fi executat pas cu pas, cu breakpoint sau automat, iar execuția
poate fi oprită de utilizator în orice moment. De asemenea, din meniul View poate fi afișat conținutul
memoriei RAM, poate fi urmărită evoluția variabilelor programului și a semnalelor la pini folosind
ferestre de monitorizare (Watch window) și analizorul logic integrat (Logic Analyzer Window).
În fereastra Project workspace este afișat conținutul registrelor interne simulate ale microcontrolerului,
iar din meniul Peripherals se poate monitoriza starea perifericelor interne simulate.
Periferic
simulat (Port 1)
Start / Stop
Simulator
Stare
registre
simulate
Regim simulare
Pentru o simulare completă, atât a execuției instrucționilor cât și a perifericelor interne), trebuie ca în
fereastra de configurare a debugger-ului, să se înlocuiască parametrul –pCYG040 cu -pCYG124, ca în
Fig.6. Microcontrolerul C8051F124 conține majoritatea perifericelor interne ale C8051F040 și are
aceeași organizare internă lor și are asigurat suport complet de depanare în Keil µVision3.
O parte din funcţiile depanatorului integrat rămân active și atunci când codul executabil generat este
încărcat şi executat pe sistemul ţintă (în acest caz C8051F040), sub controlul unui emulator sau debugger
JTAG (Joint Test Action Group standard), unelte indispensabile pentru realizarea unor aplicaţii complexe.
Pentru microsistemul BIG8051 din laborator se va folosi un dispozitiv Silicon Labs USB Debug Adapter,
conectat la portul JTAG al microcontrolerului C8051F040 și la un port USB al calculatorului gazdă pe care
se execută Keil µVision3.
Fig.7. Selectare Silicon Labs USB Adapter pentru depanare direct pe microcontrolerul C8051F040
Pentru depanare cu Silicon Labs USB Debugger Adapter, codul poate fi vizualizat într-o fereastră de
dezasamblare sau direct în fișierul sursă, așa cum se arată în Fig.8. Acesta poate fi executat pas cu pas, cu
breakpoint (maximum 4) sau automat, iar execuția poate fi oprită de utilizator în orice moment.
De asemenea, din meniul View poate fi afișat conținutul memoriei RAM, poate fi urmărită evoluția
variabilelor programului folosind ferestre de monitorizare (Watch window). Analizorul logic în cazul
depanării pe sistemul țintă nu este activ. În fereastra Project workspace este afișat conținutul
registrelor interne ale microcontrolerului, iar din meniul Peripherals se poate monitoriza starea efectivă
a perifericelor interne.
Stare
periferice
Start / Stop reale (aici
Debugger porturi)
Stare
registre
reale
Regim depanare
pe placă
Fig.7. Sesiune de depanare folosind Keil µVision3 și driverul pentru Silicon Labs USB Debug adapter
De asemenea, interfaţa grafică a mediului integrat şi editorul pot fi configurate din meniul principal (Edit
- Configuration).
Pot fi astfel ajustate de utilizator culorile şi fonturile folosite pentru ferestre, parametrii editorului,
precum şi comenzile scurte pentru operaţiile mai frecvente ale mediului integrat (Fig.8).
1.3. Lista comenzilor uzuale Keil Vision3
Comenzile Keil µVision3 sunt accesibile din meniul principal, având structura prezentată succint în Tab.
1, prin comenzi scurte (“shortcuts”) sau cu ajutorul butoanelor din casetele cu pictograme (“toolbars”).
Vizualizare ferestre
Source Browser navigator în fişierele sursă.
pictograme
- ferestre cu informaţii Disassembly Window cod dezasamblat.
despre proiect, Watch&Call Stack Window stare variabile supravegheate şi stiva.
mesaje, starea şi Memory Window conţinut memorie.
View Code Coverage Window acoperirea codului aplicaţiei la execuţie.
evoluţia programului,
variabilelor, în regim Performance Analyzer Window analiza performanţelor.
de simulare/ Symbols Window simboluri.
depanare Serial Window #0, #1, #2 interfeţe seriale.
- opţiuni editor şi Toolbox caseta cu comenzi externe.
manager de proiect Periodic Window Update
Actualizarea periodică a ferestrelor.
Include file dependencies Indică fişierele header incluse
New Vision Project, New Project
Workspace, Import Vision1, Open, Creare, importare, deschidere, închidere fişier proiect.
Close
Gestionare sisteme ţintă, fişiere şi grupuri configurare
Manage
documentaţie şi directoare
Comenzi pentru Select Device for Target Selectare microcontroler pentru sistem ţintă.
Project
managerul de proiecte Remove item Ştergere fişier sau grup de fişiere din proiect
Options for Target (Group, File) Opţiuni la nivel de sistem ţintă, grup, fişier.
Clean target Ştergere fişiere intermediare generate anterior.
Build Target, Rebuild all target files Actualizare, generare fişier executabil.
Translate Compilare/asamblare fişier sursă.
Stop build Oprire prelucrare.
Start/Stop Debug Session Lansare / terminare simulator/depanator.
Go, Step, Step over, Step Out of
current Function, Run to Cursor line, Rulare automată sau pas cu pas.
Stop Running
Breakpoints: Insert/Remove, Depanare cu puncte de întrerupere a execuţiei
Comenzi specifice Enable/Disable, Disable All, Kill All (breakpoints) în codul sursă.
Debug regimului de simulare/ Show Next Statement Indică linia următoare de cod.
depanare Enable/Disable Trace Recording, View Validare/inhibare funcţie de înregistrare a execuţiei,
Trace Records vizualizare date înregistrate.
Memory Map Harta memoriei sistemului ţintă.
Performance Analyzer Analizorul de performanţă.
Inline Assembly Asamblare instrucţiuni.
Function editor (Open INI file) Editare funcţii de depanare.
Lucrul cu memoria Download, Erase Înscrie / şterge memoria FLASH
Flash
FLASH Configure Flash Tools Configurează utilitarele de acces la FLASH
Reset CPU Resetare microcontroler.
Periph- Periferice integrate Interrupt, I/O Ports, Serial, Timer, Controler de întreruperi, porturi I/E, interfaţă seriale,
erals simulate Watchdog, A/D Converter, D/A timere şi alte periferice specifice tipului de
Converter, I2C, CAN Controllers etc. microcontroler selectat.
PC-Lint: Setup, Lint, Lint All Source Configurare şi utilizare PC-Lint (Gimpel Software) -
Comenzi externe
Tools Files verificare automată cod sursă.
configurabile
Customize Tools Menu Configurarea altor programe utilitare externe
SVCS Interfaţă configurabilă pentru un sistem de control a versiunii curente (Software Version Control Systems)
Comenzi de manipulare Comenzi tipice de selectare, comutare, deplasare, redimensionare şi cascadare a ferestrelor pe
Window
ferestre ecran, care se întâlnesc în majoritatea aplicaţiilor Windows.
Acces la informaţii Comenzi tipice de documentare, căutare şi selectare a informaţiilor indexate, care se întâlnesc în
Help
despre Vision3 majoritatea aplicaţiilor Windows prevăzute cu un sistem de help.