Nagyteljesítményű mikrovezérlők

Hasonló dokumentumok
ARM Cortex magú mikrovezérlők

ARM Cortex magú mikrovezérlők. mbed

ARM (Advanced RISC Machine)

ARM Cortex magú mikrovezérlők

ARM processzorok felépítése

TI TMDSEVM6472 rövid bemutatása

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT. Nagyteljesítményű mikrovezérlők tantárgy [vimim342]

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

A ChipScope logikai analizátor

Joint Test Action Group (JTAG)

Érzékelők és beavatkozók I.

6.2. TMS320C64x és TMS320C67xx DSP használata

ARM Cortex magú mikrovezérlők

I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

ARM Cortex magú mikrovezérlők

Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Leírás. Készítette: EMKE Kft február 11.

Laboratóriumi műszerek megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Nagyteljesítményű mikrovezérlők

ARM Cortex magú mikrovezérlők

Silabs STK3700, Simplicity Studio laborgyakorlat

Dr. Schuster György szeptember 27.

Mikrorendszerek tervezése

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

ARM Cortex magú mikrovezérlők

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. GY1.1 SENSACT0 PÉLDAPROGRAM

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

Scherer Balázs: Mikrovezérlők fejlődési trendjei

Számítógépek felépítése, alapfogalmak

Kommunikációs rendszerek programozása. Switch-ek

Modbus kommunikáció légkondícionálókhoz

Számítógépek felépítése, alapfogalmak

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Nagy Gergely április 4.

Nagyteljesítményű mikrovezérlők

IDAXA-PiroSTOP. PIRINT PiroFlex Interfész. Terméklap

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

Az interrupt Benesóczky Zoltán 2004

Scherer Balázs: Mikrovezérlık fejlıdési trendjei

TMS370 EEPROM PROGRAMOZÓ Felhasználói kézikönyv

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

Számítógép Architektúrák

MPLAB ICD használata

Számítógép hálózatok

Arduino bevezető Szenzorhálózatok és alkalmazásaik

loop() Referencia:

FPGA áramkörök alkalmazásainak vizsgálata

Intelligens kamera alkalmazás fejlesztése

PMU Kezdı lépések. 6-0 Csatlakozás LG GLOFA-GM és SAMSUNG PLC-hez. 6-1 Kommunikáció LG PMU és LG GLOFA-GM7 / GM6 / GM4 között

LIN, BSS, PCM Protokollok (COM Interfész) Szeptember

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Az AVR ATmega128 mikrokontroller

Hány komputer van a kezemben?

Mikrorendszerek tervezése

Nagyteljesítményű mikrovezérlők Energiatakarékos üzemmódok

Hálózati rendszerek adminisztrációja JunOS OS alapokon

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Nagyteljesítményű mikrovezérlők

A Számítógépek felépítése, mőködési módjai

evosoft Hungary Kft.

CISCO gyakorlati segédlet. Összeállította: Balogh Zoltán

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

Dr. Schuster György október 30.

IP alapú komunikáció. 2. Előadás - Switchek 2 Kovács Ákos

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

2014 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

IP alapú kommunikáció. 3. Előadás Switchek 3 Kovács Ákos

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Boundary Scan. Új digitális áramkör-vizsgálati módszer alkalmazásának indokoltsága

ARM Cortex magú mikrovezérlők

Autóipari beágyazott rendszerek CAN hardver

Járműfedélzeti rendszerek I. 5. előadás Dr. Bécsi Tamás

DWL-G520 AirPlus Xtreme G 2,4GHz Vezeték nélküli PCI Adapter

ARM mikrovezérlők programozása

(1) 10/100/1000Base-T auto-sensing Ethernet port (2) 1000Base-X SFP port (3) Konzol port (4) Port LED-ek (5) Power LED (Power)

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

Cisco IOS alapozás (Szakály Attila)

Informatikai füzetek

Nagyteljesítményű mikrovezérlők

8.3. AZ ASIC TESZTELÉSE

Mikrorendszerek tervezése

Programozási segédlet DS89C450 Fejlesztőpanelhez

AVR-Stamp1.0F_USB Leírás, használati útmutató. Rev.B

Yottacontrol I/O modulok beállítási segédlet

Mikrorendszerek tervezése

Bevitel-Kivitel. Bevitel-Kivitel és Perifériák. Algoritmusok és Alkalmazásaik Tanszék Budapest december 16.

I 2 C, RS-232 és USB. Informatikai eszközök fizikai alapjai. Oláh Tamás István

MPLAB leírás V1.1. Projektek kezelése. MPLAB leírás - dr. Kónya László 1

Nagyteljesítményű mikrovezérlők 10b. RTOS gyakorlatok

A LOGSYS rendszer ismertetése

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

A megfelelő IP védelem biztosításával, alkalmasak a kültéri alkalmazások kialakítására.

A Picoblaze Core implementálása FPGA-ba

Digitális technika (VIMIAA02) Laboratórium 5

Az MSP430 mikrovezérlők digitális I/O programozása

Digitális technika (VIMIAA02) Laboratórium 5

Átírás:

Nagyteljesítményű mikrovezérlők 9. Debug-olás Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2014

Tradicionális debug módszerek Hagyományos debug o Oscilloscope o Logikai analizátor oprintf o LED villogtatás In-Circuit Emulatorok o Debug variáns odual port RAM Hardware-es break pointok Regiszter figyelés BME-MIT 2014 2.

Tradicionális debug módszerek ROM monitor ogdb stub RAM Alkalmazás ROM/Flash ROM monitor / Stub Kommunikációs interfész Rs232 Ethernet BME-MIT 2014 3.

Rom monitor Csak a RAM terület használható az alkalmazás által o Régi külső RAM-os 32 bites megoldások Kommunikáció a ROM monitor és a debugger között ogdb: Remote Serial Protocol BME-MIT 2014 4.

GDB: GNU Debugger I. GDB alapvetően egy parancssori debugger, amihez vannak megjelenítők o DDD o Eclipse Minta GDB session: localhost$ gdb a.out // A GDB elindítása GNU gdb 5.0 Copyright 2000 Free Software Foundation, Inc. (gdb) set remotebaud 57600 (gdb) target rdi com1 // connect to target machine, process, or file (gdb) load // dynamically link file and add its symbols Loading section.text, size 0x1280 vma 0x1000 Loading section.data, size 0x760 vma 0x2280 Loading section.stack, size 0x10 vma 0x30000 Start address 0x1000 Transfer rate: 53120 bits in 1 sec. BME-MIT 2014 5.

GDB: GNU Debugger II. (gdb) break main // breakpoint b [file:]line or function Breakpoint 1 at 0x8048476: file test.c, line 5. (gdb) continue // continue running your program Breakpoint 1, main () at test.c:5 5 for( i = 0; i 10; i++ ) { (gdb) display j // show value of expr each time program stops [according to format f ] 1: j = 1074136126 (gdb) step // stepping program 6 j = i * 2 + 1; 1: j = 1074136126 (gdb) step // stepping program 5 for( i = 0; i 10; i++ ) { 1: j = 1 (gdb) quit // quiting debugg session BME-MIT 2014 6.

run: Program futtatás GDB: Parancsok continue: program folytatás next: következő utasítás step: következő utasítás step-into list: forrás kód ki listázás break: break point elhelyezés (hw-es breakpointok néha macerásak) o disable/ enable print: változó értékének kiírása set: változó érték adása És még sok egyéb BME-MIT 2014 7.

GDB: Remote serial protocol Valahogy tartani kell a kapcsolatot a target-tel o Rs232 o TCP protokoll ASCII karakterekből álló parancsok o $-jellel kezdődnek o #-al majd egy 8bites cheksum-al záródnak A stub o + al válaszol az elfogadott al a hibás checksumra. o OK -val, vagy hibakóddal a parancsra BME-MIT 2014 8.

Gyakran használt RSP parancsok Read Registers (g): kiolvassa a target összes regiszterét: Write Register n (P): egy specifikus regiszter érékét írja Read Memory (m): egy memória területet olvas Write Memory (M): egy memória területre ír. step (s): Lépteti egyet a processzort. A + on kívül nincs rá más válasz. Continue (c): A rendszer folytassa a program végrehajtást normál sebességgel Breakpoint-ok (Z0packet): o A GDB alapból szoftver breakpointokat igyekszik rakni (Z0 packet) o TRAP utasítással felülírja az adott memória címet. o Z1 hardware-es breakpoint (limitált). BME-MIT 2014 9.

Letöltött monitor nélküli debuggolás Emulátor tulajdonság szükséges o Változók értékék megfigyelése o Változók értékék megváltoztatás o Step-elés o Breakpoint állítás JTAG-en keresztüli debuggolás o JTAG alapvetően csak egy kommunikációs séma o 5 vezetékes TDI, TDO, TMS, TCK, ntrst BME-MIT 2014 10.

JTAG (Joint Test Access Group) 1985-ben alapították NYÁK és IC tesztelő szabványt BME-MIT 2014 11.

JTAG-en keresztül adható parancsok hagyományos ARM magok INTEST: Kiválasztjaaboundary-scan register, és engedi abba az adatok ki be shiftelését. IDCODE: Az eszköz identifikációs regiszterét választja ki adat regiszterként. BYPASS: Gyakorlatilag az adott eszközt kikapcsolaja az adatáramlásból (1 bites bypass regiszter választódik ki, mint jelenlegi adatregiszter) A SCAN_NARM specifikus utasítás ezzel lehet kiválasztani a következő boundary-scan láncok valamelyikét: o 0 (Boundary Scan) o 1 (Core Debug) o 2 (EmbeddedICE), o 15 (CP15). A kiválasztás után az INTEST utasítással lehet hozzáférni ezekhez a chain-ekkel. BME-MIT 2014 12.

JTAG-en keresztül adható parancsok 1 Core Debug: hagyományos ARM magok o rendszer buszra van kötve o utasítást és vagy adat lehet a rendszerbe be szkennelni, kiolvasni Debugg állapotban a debugger például le tudja kérdezni a rendszer belső állapotát a core regiszteteken keresztül úgy hogy egy store multiple utasítást (STM) kishiftel a scan chain 1-re (két NOP-al kiegészítve utána, hogy végigmenjen a pipelineon). Az eredmény kiolvasható a scan chain 1 ből. 2 EmbeddedICE: tipikus debugger funkcionalítást o breakpoint-ok o watchpoint-ok o single stepping o 16 registere van, amelyek a scan chain 2-ön keresztül konfigurálhatóak. BME-MIT 2014 13.

Embedded ICE Debug control regiszter, debug status regiszter:debug módba lehet rakni a target-et és a debug státuszt kiolvasni. Mindkét watchpoint egység lehet annak az eseménynek a forrása, ami kiváltja a debug állapotba menetelt. Watchpoint 0, 1:Minkét watchpoint 6-6 regisztert tartalmaz (address value és mask, data value és mask, control value és mask)., ezek használatával elérhető, hogy a watchpointok: breakpoint-ot (stop at instruction), watchpoint-ot (stop at data access) tartalmazhat. BME-MIT 2014 14.

JTAG eszközök Macraigor Wiggler, Parallel Port Wigglers o http://www.macraigor.com/wiggler.htm o ~500KHz BME-MIT 2014 15.

FT2232(H) JTAG eszközök o USB alapú JTAG megoldás o Az összes újabb olcsó JTAG ezt használja o 30 MHz-es JTAG clock BME-MIT 2014 16.

Open OCD JTAG, GDB csatolás o GDB server o JTAG támogatással o RSP parancsok konverziója JTAG parancsokká o Külön konfigurációs port Server handling Target management JTAG memory management Flash memory management BME-MIT 2014 17.

Az OpenOCD belső felépítése Server modul o Telnet parancsok o GDB-Server Command modul o Parancsok regisztrációja, kezelése Target modul o Minden target core variánshoz külön c file Jtag modul o Jtag kezelés Flash modul o Hardware függő Flash támogtás BME-MIT 2014 18.

Az OpenOCD fordítás függő részei Target modul o Minden target core variánshoz külön c file Flash modul o Hardware függő Flash támogtás BME-MIT 2014 19.

Az OpenOCD konfiguráció Konfigurációs rész minden target-hez o Server (daemon) konfiguráció o JTAG konfiguráció o JTAG scan chain konfiguráció o Target konfiguráció o Flash konfiguráció Példa egy STM32 konfiguráció-ra Parancs: openocd -f olimex-jtag-tiny.cfg -f stm32.cfg -f stm32_gdb.cfg BME-MIT 2014 20.

Server és JTAG konfiguráció stm32_gdb.cfg # default ports telnet_port 4444 gdb_port 3333 tcl_port 6666 init jtag_khz 565 reset init verify_ircapture disable olimex-jtag-tiny.cfg interface ft2232 ft2232_device_desc "Olimex OpenOCD JTAG TINY" ft2232_layout olimex-jtag ft2232_vid_pid 0x15ba 0x0004 BME-MIT 2014 21.

Cortex M3: Coresight debug rendszer BME-MIT 2014 22.

Debug Port csatlakozás SWD, vagy JTAG csatlakozás BME-MIT 2014 23.

AHB-AP: Advanced High-Performance Bus Acces Port Bridge a debug portok és a Cortex M3 rendszer között o TAR: Transfer Address Átviteli cím kontrol o CSW: Control and status o DATA Írány, méret kontrol BME-MIT 2014 24.

Debug feltérképezési folyamat Van egy ún. ROM table ami tartalmazza a komponensek címeit. o Alapból egységes komponensek, de az új sorozatokban bővíthették őket BME-MIT 2014 25.

Debug Módok C_DEBUGEN bit adebug Halting Control and Status register-ben, hogy debug módba kerüljön a processzor o Csak a DAP-on keresztül állítható (külső eszköz) o A Halt-ba rakás is ez a regiszter, de az már SW-ből is állítható 1. Halt mód o Utasítás végrehajtás leállítódik o A System Tick Timer (SYSTICK) counter leáll o Stepp utasítások o Interuptok felfüggesztődnek, és a léptetés alatt vagy végrehajtónak, vagy lemaszkolhatóak BME-MIT 2014 26.

Debug Módok 2.Debug monitor mode o A processzor végrehajtja a 12. kivételt (debug monitor) oa SYSTICK counter tovább fut oaz új bejövő interruptok vagy megszakítják, vagy nem a debug monitort annak priorításának függvényében odebug esemény elveszhet, ha magasabb priorítású IT hajtódik végre o Támogatja a single-step működést omemória tartalom megváltoztatható a debug monitor handler-en keresztül BME-MIT 2014 27.

Debug Módok 2. Debug monitor mode o A processzor végrehajtja a 12. kivételt (debug monitor) o A SYSTICK counter tovább fut o Az új bejövő interruptok vagy megszakítják, vagy nem a debug monitort annak priorításának függvényében o Debug esemény elveszhet, ha magasabb priorítású IT hajtódik végre o Támogatja a single-step működést o Memória tartalom megváltoztatható a debug monitor handleren keresztül Azokhoz a rendszerekhez, ahol nem engedhető meg a teljes rendszer leállítása (motor control, disk vezérlés) o Debugger tudja a thread szintet és az alacsony priorítású IT-ket figyelni, a magas priorítású IT meg működik zavartalanul. BME-MIT 2014 28.

Debug módba lépés BME-MIT 2014 29.

Break Point-ok Breakpoint utasítás (tipikusan RAM-ból) Címkomparálás az FPB-al BME-MIT 2014 30.

FPB: Flash Patchand BreakpointUnit Hardware-es breakpointok generálása o8 komparátor 6 program cím 2 literál Flash Patch feature o Módosítások a nem módosítható Flash kódon o 2 literál komparátor o Flash területeket remappel az SRAM-ba o Számunkra nem lényeges, csak ROM alapú eszközöknél BME-MIT 2014 31.

Debug portok, Trace portok BME-MIT 2014 32.

Coresight trace rendszer BME-MIT 2014 33.

DWT: Data Watchpoint Trace 4 komparátor: data address / program counter (az első konfigurálható clock cycles counterre is) Van hozzá MASK is o Hardware watchpoint: processzor debug módba o ETM trigger: trace csomag küldés indítás o PC mintavételező trigger o Data address sample trigger Számlálók o Órajel számláló o Sleep ciklusokat számláló o Interrupt overhead számláló PC mintavételezés időközönként Interrupt trace BME-MIT 2014 34.

ITM: Instrumentation Trace Macrocell Direkt konzol üzenetek (printf) DWT tud üzeneteket generálni Időbélyeg generálás a debuger számára BME-MIT 2014 35.

ETM: Embedded Trace Macrocell Már az ARM7-eseknél volt Utasítás végrehajtás követés DWT-et használja komparátorként Kivételek nyomon követése Utasítás nyomon követés o Gyakorlatilag az összes végrehajtott utasítás nyomon követhető Debuggernek meg kell hogy legyen a bináris kód BME-MIT 2014 36.

Cortex M3: Coresight debug rendszer BME-MIT 2014 37.

TPIU: Trace Port Interface Unit 4 bites szinkron mód o Elég csúnya formátum 1 bites UART szerű aszinkron mód BME-MIT 2014 38.