You are on page 1of 39

Modul 3: Razvojni alati

Digital Signal Controller


TMS320F28335
Texas Instruments Incorporated

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

Full C/C++ & Assembly


Debug Graph Debugging:
Configuration Memory
window window ØC & ASM Source
Ø Break Points
3-2
“CCS4 Eclipse” koncept

CCS 4 - based on Eclipse


• Open source framework (www.eclipse.org)

Commonly referenced categories:


• Workbenches
• Workspaces
• Perspectives
• Views
• Resources
• Projects
• Files
3-3
Code Composer Studio
Code
Build
lnk.cmd Simulator
Compile

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

Code Composer Studio V4 - Osnove


workspace and welcome window
1. Kreiranje projekta baziranog na C jeziku za F2833x
2. Debagiranje programa
3. Posmatranje promenljivih (Watch variables)
4. “Single Step” debagiranje programa
5. “Breakpoints”
6. Debagiranje u realnom vremenu
7. CPU Registri
8. Memory Window
9. Graph Window
10. Mixed Mode Display
11. Single Step u asembleru
12. GEL – “General Extension Language”
3-7
1. Start CCS Version 4
• Code Composer Studio smešta projekat u folder pod
nazivom “workspace”.
• Izbor “workspace” foldera, na primer:

D:\DSP28335\vezbe

3-8
2. Kreiranje projekta

• File è New è CCS Project


Dati projektu ime “Lab3” i selektovati podrazumevanu
lokacuju, kako je to prikazano na slici:

3-9
2. Kreiranje projekta

• Izabrati tip projekta: C2000

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

Definisanje veličine steka:


• Desni klik na “Lab3” i izbor “Properties”

• 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

U „main.c“, unesi ovaj kod:

3 - 14
Sekcije C – Kompajlera

Globalne prom. (.ebss


(.ebss)) Inicijalne vr. (.cinit
.cinit))

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

0x30 0000 FLASH .cinit


(0x40000)

.text

3 - 17
Linkovanje

l Opis memorije
l Kako smestiti programske
sekcije u memoriju

ime.cmd
ime .cmd

.obj Linker .out

.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

• è Project è Rebuild Active Project


• Tok build(ovanja):

3 - 20
5. Kreiranje “Target” konfiguracije

• è Target è New Target Configuration

3 - 21
6. Download i debagiranje

• è Target è Debug Active Project

3 - 22
6. Download i debagiranje

• “Properties” projekta “Lab3”:

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

• Da bi posmatrali globalne promenljive ‘i’ i ‘k’ dodajemo ih ručno.


Unos u prozoru ‘Watch(1)’. U kolonu ‘name’ unesemo najpre ‘k’ a
zatim u drugoj liniji ‘i’.
• Drugi način markiranjem promenljivih u izvornom kodu desnim
klikom miša i selektovanjem “Add Watch expression”
• U koloni “Format” podešavamo način prikza podatka: decimalni,
heksadecimalni, binarni, i sl.

3 - 25
9. Debagiranje korišćenjem “Single Step”

• Izvršiti jedan korak koda na “target” - jedinici:

è Target è Step Into (ili funkcionalni taster “F5”)

• Posmatrati PC (plavu strelicu) i vrednosti promenljivih


‘i’ i ‘k’ u Watch prozoru !

3 - 26
9. Debagiranje korišćenjem “Single Step”

Run
Step Out

Halt

Source Single Step Assembly Step Over

Source Step Over Assembly Single Step

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

• Izvršavanje programa u realnom vremenu


èTarget è Run (or F8)
èF2833x se zaustavlja nakon dostizanja aktivnog breakpoint-a
• Ponoviti ‘Run’ i posmatrati promenljive
• Ukloniti breakpoint.

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

Start “Real – Time – Debug”:


è Scripts è Realtime Emulation Control è
Run_Realtime_with_Restart
3 - 30
11. Debagiranje u realnom vremenu

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

• Omogućava gledanje sadržaja


internih CPU registara
• Registar ST0 – kombinuje mat.
status flagove:
• C (carry)
• Z (zero)
• N (negative)
• V (overflow)
• SXM (sign extension mode)
• OVM (overflow mode)
• TC (test control flag)
• PM (product mode shifter)
• OVC ( overflow counter)
• Registar ST1 kombinuje CPU
kontrolne flagove.

3 - 32
13. Prozor memorije
èView è Memory
– Izabrati “data” prostor (gornji desni deo selekcionog bloka)
– Uneti adresu &i u levi selekcioni blok:

• Prikazuje se sadržaj memorijske


lokacije promenljive “I” (i “k”)

• Promentiti tip prikaza i


posmatrati način prikaza.

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

• Gledanje izvornog koda u C – jeziku i rezultujućeg


asemblerskog koda:
– Desni klik unutar prozora “Disassembly” i dozvoli “Show Source”

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

Desni-klik i selekcija ‘Open’ za inspekciju GEL-Fajla


“F28335.gel”

Primer funkcije: “OnReset”:

3 - 39

You might also like