Fejlesztő környezet Manapság a fejlesztőkörnyezet egy integrált fejlesztő környezet (anglul IDE azaz Integrated Develpment Envirnment). A számítógép-prgramzást jelentősen megkönnyítő prgram, részben autmatizált prgramkészítést tesz lehetővé. Az integrált fejlesztői környezetnek alapvető szerepe van a gyrs alkalmazásfejlesztésben. Az IDE-k rendszerint tartalmaznak egy szövegszerkesztőt a prgram frráskódjának szerkesztésére, egy frdítóprgramt vagy értelmezőt, frdításautmatizálási eszközöket, valamint nymkövetési, grafikusfelület-szerkesztési és verziókezelési lehetőségeket sk egyéb mellett. A kmlyabbakhz például kiegészítők tömege érhető el, amelyek a teljes rendszerfejlesztés egyéb fázisaiban, például dkumentálás, prjectmenedzsment stb. nyújtanak nagy segítséget. ARM Crtex-M magkat tartalmazó mikrkntrllerek esetében is több különböző fejlesztő környezet szerezhető be a munka megkönnyítésére. Léteznek általáns célú környezetek, melyek kiegészíthetők a szükséges egységekkel. Ezek legnagybb hátránya, hgy pnts ismereteket igényel a telepítésük srán, mind az alkalmaztt prcesszrról annak debug funkcióiról a debug interface kezeléséről valamint magáról az IDE-ről. Elvileg léteznek pnts leírásk ezek telepítéséről, de a sk különböző verziójú driver nem minden esetben alkalmazható egy környezetben így nagyn nehézkes a kezelésük. Tvábbi lehetőség a prcesszrgyártók által összeraktt fejlesztő környezet, mely már skkal megbízhatóbb működést biztsít, de csak egyféle gyártó által frgalmaztt prcesszrk családjára működnek. Lehetőség van általáns fejlesztő környezetek beszerzésére vagy krlátztt körülmények közötti használatára. Egy fejlesztőkörnyezettel szemben támaszttt követelmények megértéséhez annak felépítését kell megfigyelni (1. ábra Fejlesztőkörnyezet felépítése). A fejlesztőkörnyezetnek kezelni kell tudni a frrásállmánykat. Ez általában egy kntext szenzitív editr beépítését jelenti, így segítve a fejlesztő munkáját. A következő nagyn fnts rész, hgy tudnia, kell kezelni és knfigurálni egy vagy több frdítóprgramt. Manapság általában ez a GCC-nek valamely váltzatát jelenti. Lényeges szempnt, hgy a gyakrabban használt pciókat grafikus felületről lehessen beállítani, és ezen beállításk alapján vezérelje a frdítás flyamatát. Lehessen a segítségével felhasználói könyvtárat létrehzni, amit más prjektben fel lehet használni. Hasnlóan tudja kezelni a frdítóhz tartzó könyvtárat is, mivel előfrdulhat, hgy annak részeit vagy egészét újra létre kell hzni. A frdító prgramkkal kmpatibilis linker prgrammal kapcslatban is hasnló beállítási vezérlési és feltételeket kell megldania. Az elkészül futtatható kóddal kapcslatban is van tvábbi funkciója egy jól használható fejlesztőkörnyezetnek. Jó dlg, ha rendelkezik valamilyen szimulátrral, ami alkalmas a futtatható kód valamilyen szintű tesztelésére. Ez a funkció nagyban tudja segíteni a numerikus számítási hibák megkeresését és kijavítását, aznban általában nem vagy csak krlátzttan lehet a szimulátrkkal a perifériákat kezelni. A perifériák működőképességét és a teljes prgram használhatóságát a debug interface-en keresztül lehet kezelni egy fejlesztő környezettel. Jó, ha a fejlesztő környezet segít a prgram nymkövetés nélküli letöltésében valamint a nymkövethetőség biztsításában. Debug interface-t általában a fejlesztő környezet szállítója is biztsít, de jó, ha a prcesszr gyártója által adtt debug interface-t is tudja támgatni. Ez utóbbi általában jbban, pntsabban tudja kezelni az adtt prcesszrt.
Integrált fejlesztő rendszer Szövegszerkesztő Frdítási pciók Objektek és könyvtárak Linker pciók Eredményfile kezelés Debug Szimulátr I II III IV V ASM prgram C/C++ prgram Objekt file-k Könyvtára Felhasználói Könyvtár Összefűző Linker prgram Futtatható kód axf file Szimulátr Betöltő JTAG/SWD JTAG/SWD Más gyártó A cél hardware 1. ábra Fejlesztőkörnyezet felépítése
Prgram készítő környezet Nymkövetés ARM prcesszrkn Számítógép + IDE USB JTAG debugger JTAG ARM Crtex M Tvábbi perifériák Vezérelt, irányíttt, megfigyelt környezet 2. ábra Debug környezet felépítése Az önálló vezérlési, irányítási és megfigyelési feladatk ellátására alkalmas prcesszrs rendszereket általában nem lehet a saját maga által kezelt perifériák segítségével debugglni. (2. ábra Debug környezet felépítése). A vezérlési feladatk srán pl. egy msógép funkcióit kell vezérelni, ezek egyike sem alkalmas arra, hgy a még nem működő prgram futásával kapcslatban tvábbi adatkhz jussunk. A futás közben keletkező adatk megfigyelésére alkalmas a JTAG interface. Ez az interface lehetőséget biztsít a prcesszr belső perifériáinak és műveletvégzéseinek megfigyelésére. Az ilyen kialakításk esetében lehetőség van egy adtt pillanatban a prcesszr futásának megszakítására, ekkr a regiszterek perifériák adatait lehet megfigyelni. A lényeg a prgram futásának megszakítása, azaz mintegy megállítjuk az időt és körülnézünk a prgram által kezelt tartalmak között. Sajns az ilyen módn történő idő megállítás sk esetben nem nyújt megldást. Gndljunk csak egy több prcesszrból álló rendszerre melyben az egyik prcesszr megáll és a többi pedig tvább fut. Ilyen körülmények között a megfigyelést úgy kell elvégezni, hgy a vizsgált prcesszr futásának minimális módsításával juthassunk hzzá a kívánt adatkhz. A JTAG interface ilyen esetben is tud segíteni. SWD-vel ki kell egészíteni SWD / JTAG Cnnectrs and Pinut (http://www.supprt.cde-red-tech.cm/cderedwiki/hardwaredebugcnnectins) JTAG was the traditinal mechanism fr debug cnnectins fr ARM7/9 parts, but with the Crtex-M family, ARM intrduced the Serial Wire Debug (SWD) Interface. SWD is
designed t reduce the pin cunt required fr debug frm the 5 used by JTAG (including GND) dwn t 3. In additin, ne f the pins freed up by this can be used fr Single Wire Viewing (SWV), which is a lw cst tracing technlgy (which is used by the "Red Trace" functinality within Red Suite). The SWD/SWV pins are verlaid n tp f the JTAG pins as fllws: JTAG Mde SWD Mde Signal Ntes TCK SWCLK Clck int the cre Use 10K-100K Ohm pulldwn resistr t GND TDI - JTAG Test Data Input Use 10K-100K Ohm pullup TDO SWV JTAG Test Data Output / SWV trace data utput TMS SWDIO JTAG Test Mde Select / SWD data in/ut GND GND - - Use 10K-100K Ohm pullup Use 10K-100K Ohm pullup Usually, MCUs d nt include pull-up r pull-dwn resistrs n JTAG/SWD pins. Resistrs shuld be added externally nt the bard as detailed abve. Yu may use resistrs between 10K and 100K fr these signals. This will prevent the signals frm flating when they are nt cnnected t anything. Nte that Crtex-M0 des nt supprt SWV trace. Other signals t nte RESET Cnnect this pin t the (active lw) reset input f the target MCU We wuld strngly recmmend als including RESET in additin t SWDIO, CLK and GND. Fr debugging sme MCUs, such as NXP LPC11xx, RESET is essential. ISP Mst NXP MCU's have an ISP pin which (when pulled lw) can be used t cause the MCU t enter a btlader n reset. Fr example n LPC17xx this is P2.10 and n LPC11xx and LPC13xx it is P0.1. Always ensure that yu have a 10K t 100K Ohm pull up resistr n the ISP pin, therwise yu are unlikely t be able t make a successful debug cnnectin. RTCK, DBGSEL Sme NXP LPC2000 devices have special pins that enable the JTAG interface. Fr example, n the NXP LPC2129 the signal RTCK must be driven lw during RESET t enable the JTAG interface. Yu may want t add jumpers t yur hardware t accmplish this.
Switching between JTAG and SWD mdes f debug Sme Crtex-M based MCUs supprt bth SWD and JTAG, thers supprt nly SWD (such as NXP LPC11xx and LPC13xx). Where bth are supprted, there are special sequences defined t switch frm JTAG mde (default) t SWD mde (and vice versa) that can sent t the cre. This switch sequence uses TMS (SWDIO), and this line is cnnected fr any SWD/JTAG cnnectin Nrmally where bth mdes are supprted, Red Suite will default t using SWD mde. Hwever this can be mdified by editing the launch cnfiguratin fr a prject. Lgic Levels and Grund Red Prbe+ attempts t adjust lgic levels based n the vltage it sees n Vtref referenced t whatever GND it has t wrk with. The vltage at Vtref is cming frm yur hardware, thus yu need a gd GND, shared with yur target hardware. Red Prbe+ (and LPC-Link) can be killed (like mst USB devices) by excessive ver current thrugh grund f the prbe and back thrugh the PC used fr debugging. The usual cause f this is that yur target has it's wn PSU and has a grund differential slightly different frm yur debug PC. Please d nt rely n Red Prbe+ / LPC-Link t grund yur PC t the same ptential as yur target. Pwer If yu have designed yur debug circuit accrding t the specificatin, yu shuld als check that sufficient pwer is being supplied t yur target. If yu are using a USB prt n yur PC t pwer yur target, make sure that yur PC is able t supply the required pwer ver USB - many PC USB prts d nt meet USB pwer requirements.