Professional Documents
Culture Documents
3-1
“Code Composer Studio” (verzija 4)
Perspectives:
Menus or Icons Debug or C/C++
Help Watch window
CPU
window
Source
code
window
Status
window
eZdsp™
eZdsp ™
Asm Link Debug
Emulator
Editor Libraries Graphs,
(XDS100)
Profiling
MCU
Board
• “Code Composer Studio” se sastoji iz:
– Integrisanog grafičkog interfejsa
– Alati za generisanje koda
– Real – Time operativni sistem (DSP/BIOS)
3-4
Peripheral Explorer Board
3-5
F28335 Control Card
• Low cost single-board controllers
• perfect for initial development and small
volume system builds.
• Small form factor with standard 100-pin
DIMM interface
• F28x analog I/O, digital I/O, and JTAG
signals available at DIMM interface
• Isolated RS-232 interface
• Single 5V power supply required
• Versions:
• “Piccolo” F28027 (TMDXCNCD28027)
• “Piccolo” F28035 (TMDXCNCD28035)
• F28044 (TMDSCNCD28044)
• F2808 (TMDSCNCD2808)
• “Delfino” F28335 (TMDSCNCD28335)
• “Delfino” C28343 (TMDXCNCD28343)
3-6
Učenje metodom – Korak po korak
D:\DSP28335\vezbe
3-8
2. Kreiranje projekta
3-9
2. Kreiranje projekta
3 - 10
2. Kreiranje projekta
Detalji postavke:
Output Type :
Executable
Device Variant:
TMS320F28335
Code Generation Tools:
TI v 5.2.3
Linker Command File:
28335_RAM_lnk.cmd
Runtime Support Library:
rts2800_fpu32.lib
Target content:
None
3 - 11
2. Kreiranje projekta
• Idi na kategoriju:
• C/C++ Build, C2000 Linker, Basic Options
• Postavi “C system stack size: 0x400”
3 - 12
2. Kreiranje projekta
3 - 13
3. Write a C – code file
• Izvorni C-kod :
èFile èNew èSource File
3 - 14
Sekcije C – Kompajlera
unsigned int k = 0;
unsigned int i;
void main(void)
{ Lokalne prom.,
while(1) Kontekst sistema
{ (.stack
.stack))
for(i=0;i<100;i++)
{
k=i*i;
} Kod (.text
.text))
}
}
3 - 15
Imena sekcija kompajlera
Initializovana sekcija
Ime Opis Link lokacija
.text Programski kod FLASH*
.cinit Initializacione vrednosti za globalne i statičke FLASH*
promenljive
.econst konstante (const int m=3;) FLASH*
.switch Tabele sa adresama u “switch–case” linijama FLASH*
.pinit tabele za globalne konstructore (C++) FLASH*
Neinicijalizovana sekcija
Ime Opis Link lokacija
.ebss Globalne i statičke promenljive RAM
.stack stek RAM (lower 64K)
.esysmem heap memorija za dinamičku dodelu memorije RAM
Napomena
apomena:: (*)U
(*)U toku faze razvoja initializ
initializovane
ovane sekcije
sekcije mogu biti
linkovane
linkovane ka RAM memoriji
3 - 16
Smeštanje sekcija u memoriju
Memorija
Memor ija
Sek
Sekci
cije
je
0x00 0000 M0SARAM
(0x400)
.ebss
0x00 0400 M1SARAM
(0x400)
.stack
.text
3 - 17
Linkovanje
l Opis memorije
l Kako smestiti programske
sekcije u memoriju
ime.cmd
ime .cmd
.map
3 - 18
Komandni fajl linkera
Memory:
Fizički prostor
Sections:
Povezuje
Logičke blokove sa
Fizičkim prostorom
3 - 19
4. Build(ovanje) aktivnog projekta
3 - 20
5. Kreiranje “Target” konfiguracije
3 - 21
6. Download i debagiranje
3 - 22
6. Download i debagiranje
Real time
Options
Auto Run
Options
3 - 23
7. Test the code
• Hardverski reset:
è Target è Reset è Reset CPU
• Restart kod:
è Target è Restart
3 - 24
8. Gledanje promenljivih
• Otvoriti “Watch Window”: è View è Watch
3 - 25
9. Debagiranje korišćenjem “Single Step”
3 - 26
9. Debagiranje korišćenjem “Single Step”
Run
Step Out
Halt
3 - 27
10. Postavljanje “Breakpoint” tačaka
• Postavljanje Breakpoint-a:
– Postavi kursor u Lab3.c na liniju: k = i * i;
– Desni klik miša i selekcija “Toggle Breakpoint”
– Levi deo linije se markira plavom tačkom koja označava aktivnu
breakpoint tačku.
– Drugi način – dvostruki klik mišom na sivi deo prozora “Lab3.c”.
• Resetovanje programa
è Target è Reset è Reset CPU
è Target è Restart
3 - 28
10. Debagiranje korišćenjem “Single Step”
blue arrow:
blue and
current position
enabled dot:
of PC
active Breakpoint
3 - 29
11. Debagiranje u realnom vremenu
Reset F2833x:
è Target è Reset è Reset CPU
Watchdog – Timer:
• Uvek aktivan nakon reseta
• Ukoliko se ne servisita izaziva reset nakon 4.3
millisekunde.
• Watchdog se briše “key”-instrukcijom
• U ovoj vežbi koristimo zabranu:
è Scripts è Watchdog è Disable Watchdog
U Watch – prozoru:
Kontinualno
Menu
osvežavanje
• Dozvoli kontinualno osvežavanje
• U “menu” otvori “Customize Continuous Refresh Interval” i
postavi “Continuous Refresh Interval” na 1 sekundu.
• Promenljive “k” i “I” se ažuriraju u pozadini dok se program
izvršava
• Izvršenje programa se ne usporava zbog posmatranja.
• Napomena: USB – emulator je spor da ažurira promenljive
brzinom izvršavanja for petlje. Zato se ne vide svi koraci
iteracije.
Stopiranje izvršavanja u realnom vremenu:
è GEL è Realtime Emulation Control è Full_Halt
3 - 31
12. CPU skup registara
èView è Registers
3 - 32
13. Prozor memorije
èView è Memory
– Izabrati “data” prostor (gornji desni deo selekcionog bloka)
– Uneti adresu &i u levi selekcioni blok:
3 - 33
14. Graph Window
èTools è Graph è Single Time
– Posmatranje sinusne look-up tabele
u BOOT-ROM u (0x3FE000)
– 512 vrednosti (32-bit signed, I2Q30)
3 - 34
14. Graph Window
èTools è Graph è FFT Magnitude
– View of sine – value look – up table
in BOOT - ROM (0x3FE000)
– 512 values ( 32 – bit signed, I2Q30)
3 - 35
15. “Mixed Mode” vizualizacija
3 - 36
16. Single Step u asembleru
Current Current
C - line ASM -
Instruction
ASM – ASM –
single step step over
3 - 37
17. GEL - “General Extension Language”
• GEL = high level language, similar to C
• Za proširenje funkcionalnosti Code Composer Studio -a
• Za kreiranje GEL funkcija koristi se GEL sintaksa
• Učitavanje GEL-fajla u Code Composer Studio
• Pomoću GEL, moguće je:
– Pristup pravim/simuliranim target memorijskim lokacijam
– Dodavanje opcija GEL meniju
• GEL koristan kod automatskog testiranja podešavanja
workspace-a .
• Startup GEL fajl, definisan u target konfiguraciji se
učitava kada započne sesija debagiranja
• Dodatni GEL fajlovi učitavaju se preko dijaloga
('Tools->GEL Files' menu)
3 - 38
17. GEL - “General Extension Language”
èTools è GEL files
3 - 39