WebElektronika

FreeRTOS alapjai III. (első projektünk)

person access_time 2015.06.10.
Folytatjuk tovább a FreeRTOS megismerését, de most a száraz elméletet félretéve, összeállítjuk az első projektünket.


Ha meglátogatjuk a FreeRTOS letöltési oldalát, akkor találunk ott egy linket, amelyre kattintva a Sourceforge oldala jelenik meg és a letöltés -jó esetben- automatikusan elindul. Ennek a cikknek az íraskor a FreeRTOS8.2.1-es verziója érhető el, amely 2015.03.24-én vált véglegessé.

A letöltés után a FreeRTOS8.2.1.exe file-t indítsuk el, és adjunk meg egy könyvtárat, ahova kicsomagolhatjuk a file tartalmát (1. ábra).

kep
1. ábra   Kicsomagolás
 

A kicsomagolt könyvtárak nevei egyértelműen mutatják, hogy melyik eszközhöz készült. Találunk itt ARM-okat, PIC-eket, de még MicroBlaze-t is (2. ábra).

kep
2. ábra   Részlet a demolehetőségekben
 

A kicsomagolás után láthatóvá válnak a demo projektek a "../FreeRTOSV8.2.1/FreeRTOS/Demo/" elérési útvonalon. Tekintettel arra, hogy mi most a Microchip 32 bites mikrovezérlőjével kívánunk foglalkozni, menjünk be a "PIC32MX_MPLAB" könyvtárba (3. ábra). Régebben a PIC32MX család volt a Microchip "zászlóshajója", ez azonban a PIC32MZ család megjelenésével megváltozott.

kep
3. ábra   A PIC32MX_MPLAB könyvtár tartalma
 

Érdekesség, hogy a Microchip már pár éve az MplabX fejlesztőkörnyezetet javasolja a fejlesztőknek, de a legújabb FreeRTOS verzióban még MpLab verzió található, noha a projekthez kiválasztott fordító már az XC32-es. Kattintsunk a "RTOSDemo.mcp" file-ra, ezzel el is indítjuk az MpLab IDE fejlesztőkörnyezetet, és a 4. ábrán lévő kép fogad minket.

kep
4. ábra   MpLab fejlesztőkörnyezet (kattints a képre)
 

Itt találjuk a demoprojekthez tartozó file-okat. Látni fogjuk majd a későbbiekben, hogy ezeknek a file-oknak egy részére nem lesz szükségünk (5. ábra).

kep
5. ábra   A projekt felépítése
 

Fordítsuk le a projektünket, és a következő ablak fogad minket, ahol ki kell választani a fordítónk (XC32) elérési útvonalát (6. ábra).

kep
6. ábra   Elérési útvonal beállítása
 

A hetedik ábrán az assembler fordító elérési útvonalát kell beállítani.

kep
7. ábra   Assembler fordító
 

Végül a linkernek kell beállítani az elérési útvonalát (8. ábra), és ezután a demoprojektünk sikeresen lefordul, létrejön a hex file, amely a PIC32MX mikrokontrollerbe betölthető. Érdemes megemlíteni, hogy a FreeRTOS operációs rendszer a projekttel együtt fordul le, és az elkészült hex file tartalmazza az operációs rendszert is és az alkalmazásunkat is.

kep
8. ábra   Linker program elérési útvonalának a megadása
 

Sorozatunknak ebben a részében nem alkalmazunk PIC32MX-es tesztpanelt, hanem debug segítségével ellenőrizzük a demo alkalmazásunk működését. Ehhez szükséges egy RTOS Viewer, amelyet az MpLab telepítésekor "adhatunk" a fejlesztőkörnyezethez. Látható a 9. ábrán, hogy még egy taskunk sincs.

kep
9. ábra    RTOS Viewer (kattints a képre)
 

Ha rákattintunk a System linkre, akkor az alapállapotot látjuk (10. ábra).

kep
10. ábra   RTOS Viewer-ben néhány rendszerjellemző (kattints a képre)
 

Indítsuk el a szimulációt, majd egy kicsit várva, állítsuk le. Nézzük meg újra az RTOS Viewer-t, azon belül pedig a Task-okat (11. ábra).

kep
11. ábra   Task-ok állapota, tulajdonságai az RTOS Viewer-ben (kattinst a képre)
 

Láthatjuk a "Taskok" ablakban, hogy vannak olyan taskok, amelyek készen állnak a futásra, vannak, akik blokkolva vannak vagy fel vannak függesztve, azaz, nem kaphatnak futási jogot.

Most nézzük meg a rendszertulajdonságokat, amelyeket a 12. ábrán láthatunk. Részletesen a következő cikkekben fogjuk bemutatni ezeket, de már láthatjuk az xTickCount értékét, hogy 291. Ez azt jelenti, hogy a szimuláció ideje 291 Tick volt.

kep
12. ábra   Rendszerjellemzők értékei a szimuláció után (kattints a képre)
 

A sorozatunk következő részében visszatérünk a "száraz" elmélethez, megnézünk még néhány alapot, például a memóriaszervezést, a sorokat, a szemaforokat és azután jönnek a példák.