Moja prvá aplikácia
Postavené na hardvéri UM-G r5
Projekt je písaný v MPLAB X IDE v2.25 a kompilátor HI-TECH PICC18-STD v9.52.
Jadro operačného systému tvoria knižnice NOW-OS API.lib, NOW-OS Core.lib.
NOW-OS API.lib zahŕňa funkcie aplikačného rozhrania API.obj , API.h .
NOW-OS Core.lib zahŕňa funkcie jadra operačného sytému kde parí :
-
funkcie jadra a spracovanie príkazov, udalostí a chýb. Tiež zálohovanie užívateľských nastavení, spracovanie logiky systémy a autonómie Core.obj, Core.h
-
funkcie systému – nastavenie časovačov, reálneho času a kalendáru, alarmov, inicializácia operačného systému System.obj, System.h
-
smerovanie paketov po roznych fyzických komunikačných vrstvách Routing.obj, Routing.h
-
práca s virtuálnou pamäťou VirtualMemory.obj, VirtualMemory.h
-
práca s registrami Registers.obj, Registers.h
-
cyklický buffer pre spracovanie toku dát CyclicBuffer.obj, CyclicBuffer.h
-
pomocné funkcie Helpers.obj, Helpers.h
-
správa verzií Version.obj, Version.h
-
Interný proces jadra InternalProcess.c – spracováva časovače jadra a iné úlohy jadra, ktoré musia bežať na pozadí aplikácie.
Pre vytvorenie kompletnej aplikácie sú potrebné okrem knižníc aj tieto súbory:
-
Súbor s hlavným programom, kde je umiestnená inicializácia projektu a procesy - Main.c.
-
Súbor obsluhy prerušenia ISR.c.
-
Služby (aplikácie). Minimálne základná služba Basic_1.c. Basic_1.h.
-
Drivery. Minimálne driver pre ovládanie hardvéru na ktorom beží tento operačný systém DEVICE_UM-G.c, DEVICE_UM-G_Interface.h a driver pre ovládanie internej EEPROM v prípade použitia mikrokontroléra s internou EEPROM INTERNAL_EEPROM.c, INTERNAL_EEPROM_Interface.h .
-
Konfiguračné súbory:
-
Pre vnútornú logiku funkčnosti systému a autonómnu činnosť Autonomy.c. Kde je tabuľka reakcie na udalostí a odpovede a tabuľka pre filtrovanie udalostí a odpovedí.
-
Pre nastavenie funkčnosti celého programu Configure.c. Kde je minimálne informácia o podporovaných HW zariadeniach a virtuálnych elentoch, konfigurácia a inicializácia registrov, súpis všetkých funkcíí systému ktoré sú volané protokolom Operchip a automaticky spracovávané jadrom OS, zoznam udalostí ktoré spolupracujú priamo s funkciami, tabuľku adries DCID a tabuľka pre smerovanie adries DCID.
-
Pre nastavenie jadra operačného systému CORE_ConfigureHW.h. Obsahuje informácie o verzii, nastavenie veľkosti buffrov, nastavenie užívateľských časovačov, zoznam registrov, rozdelenie virtuálnej pamäti.
-
Cesty pre užívateľské knižnice Path.h.
-
Konfigurácia pinov hardvéru DEVICE_UM-G_ConfigureHW.h.
- Pre vnútornú logiku funkčnosti systému a autonómnu činnosť Autonomy.c. Kde je tabuľka reakcie na udalostí a odpovede a tabuľka pre filtrovanie udalostí a odpovedí.
- Pre nastavenie funkčnosti celého programu Configure.c. Kde je minimálne informácia o podporovaných HW zariadeniach a virtuálnych elentoch, konfigurácia a inicializácia registrov, súpis všetkých funkcíí systému ktoré sú volané protokolom Operchip a automaticky spracovávané jadrom OS, zoznam udalostí ktoré spolupracujú priamo s funkciami, tabuľku adries DCID a tabuľka pre smerovanie adries DCID.
- Pre nastavenie jadra operačného systému CORE_ConfigureHW.h. Obsahuje informácie o verzii, nastavenie veľkosti buffrov, nastavenie užívateľských časovačov, zoznam registrov, rozdelenie virtuálnej pamäti.
- Cesty pre užívateľské knižnice Path.h.
- Konfigurácia pinov hardvéru DEVICE_UM-G_ConfigureHW.h.
Základná aplikácia pre hardvér UM-G r5 pre použitie NOW-OS
Ak máme vytvorenú minimálnu aplikáciu pre NOW-OS, môžeme prídávať ďalšie stavebné bloky aplikácie. V základnej aplikácii sú použité funkčnosti pre binárny vstup a výstup a komunikácia po RS232 protokolom Operchip.
Do projektu treba pridať ešte tieto súbory:
-
Službu BasicApp.c, BasicApp.h. V tejto službe je zdrojový kód našej aplikácie. To znamená funkčnosť, ktorá nie je nikde inde a je priamo volaná jadrom operačného systému.
-
Driver BINARY_INPUT.c, BINARY_INPUT.h, BINARY_INPUT_Interface.h a BINARY_INPUT_ConfigureHW.h. Interface je rozhranie drivera a ConfigureHW je konfigurácia pinov mikrokontroléra.
-
Driver BINARY_OUTPUT.c, BINARY_OUTPUT_Interface.h a BINARY_OUTPUT_ConfigureHW.h. Interface je rozhranie drivera a ConfigureHW je konfigurácia pinov mikrokontroléra.
-
Driver UART.c, UART.h, UART_Interface.h a UART_ConfigureHW.h. Interface je rozhranie drivera a ConfigureHW je konfigurácia pinov mikrokontroléra.
-
SW Modul RS232.c, RS232_Interface.h a RS232_ConfigureHW.h. Interface je rozhranie drivera a ConfigureHW je konfigurácia pinov mikrokontroléra.
Funkcia Main()
Hlavná funkcia programu. Inicializuje hardvér, jadro, drivery a moduly. Spúšťa procesy.
void main(void)
{
//System init
UM_G_Init();
OS_Init(0);
//Drivers init
UART_Init(COM2, GetSystemClock(), 19200, NON, HANDSHAKE_OFF);
strcpy(bTemp, "UM-G r4; ");
strcat(bTemp, _VERSION_);
strcat(bTemp, "; www.operchip.com rn");
UART_PutData(COM2, bTemp, strlen(bTemp));
BINARY_INPUT_Init(0x07);
BINARY_OUTPUT_Init(0xfc);
//Module init
SERIAL_COM_Init(COM2);
//loop
while(1){
CORE_Process();
INTERNAL_Process();
UART_Process();
SERIAL_COM_Process(COM2);
BINARY_INPUT_Process();
}
}
UM_G_Init() – Inicializácia oscilátora, časovačov,pinov mikrokontroléra, RTC, EEPROM a hardvérových komponentov zariadenia.OS_Init(0) – Inicializácia operačného systému. Verzie, registre, alarmy, užívateľské nastavenia a test konfigurácie EEPROM, zapnutie watchdogu.UART_Init(COM2, GetSystemClock(), 19200, NON, HANDSHAKE_OFF) – Inicializácia UART. 19200Baud, 8bit.BINARY_INPUT_Init(0x0f) – Inicializácia vstupov. Aktivované sú 4 vstupy.BINARY_OUTPUT_Init(0xfc) – Inicializácia výstupov. Aktivované sú dva výstupy.
SERIAL_COM_Init(COM2) – Inicializácia rozhrania RS232.