plik


ÿþKurs Po lekturze poprzednich cz[ci kursu Czytelnik powinien wiedzie, czym s procesory softcore i gdzie mo|na je stosowa. Przedstawiono równie| proces implementacji prostego systemu cyfrowego z procesorem Nios II przy u|yciu programów projektowych firmy Altera. W bie|cym artykule opisano etapy tworzenia oprogramowania dla procesorów Nios II w [rodowisku programistycznym Nios II SBT na przykBadzie obsBugi portów GPIO. Procesory Nios II w ukBadach FPGA (3) Dodatkowe materiaBy na CD i FTP ObsBuga portów GPIO Dodatkowe materiaBy na CD i FTP: Cz[ 3 kursu jest wprowadzeniem do Porty I/O procesora Nios II ftp://ep.com.pl, user: 16195, pass: 4k17u606 omówienia programowej obsBugi podsta- Do tak utworzonego projektu dodane wowych bloków peryferyjnych mikropro- zostan porty GPIO. Firma Altera oferuje cesora Nios II dostpnych w programie blok IP do obsBugi portów GPIO o nazwie doda dwukrotnie blok IP z ustawienia- SOPC Builder. W artykule omówiono ob- PIO (Parallel IO). mi konfiguracyjnymi pokazanymi na ry- sBug portów GPIO. W tym celu zostanie W bibliotece bloków sunku 19 i rysunku 20, odpowiednio, do zmodyfikowany projekt cyfrowego systemu IP programu do two- obsBugi diod LED i przycisków. Jak mo|na utworzonego w drugiej cz[ci kursu. rzenia systemów cy- zauwa|y, blok PIO umo|liwia tworzenie Przydatn funkcj [rodowiska projek- frowych SOPC bu- towego Quartus II jest kopiowanie projek- ilder umieszczono tów. Umo|liwia to tworzenie podobnych go w zakBadce Peri- programów bez |mudnego przepisywania pherals > Microcon- cz[ci kodu. troller Peripherals Przed dodaniem do systemu portów (rysunek 18). Jest GPIO nale|y utworzy kopi projektu to uniwersalny blok WitajSwiecie o nazwie  GPIO . W tym IP, który w zale|- celu nale|y go otworzy, a nastpnie no[ci od konfigura- z menu Project wybra Copy Project, wpi- cji, mo|e pracowa sa nazw i wskaza miejsce na dysku, jako: port wyj[ciowy gdzie zostan zapisane pliki (na przykBad (output), wej[ciowy folder porty_gpio  rysunek 17). (input) lub dwukie- runkowy (bidirectio- nal). Na pBytce zesta- wu ewaluacyjnego rysunek 18. umiej- s dostpne czte- scowienie bloku IP ry przyciski oraz PIO w bibliotece rysunek 19. ustawienia konfiguracyjne rysunek 17. Kopiowanie projektu w pro- osiem diod LED. programu sOPC bloków PIO dla portu wyj[ciowego do gramie Quartus II Do projektu nale|y Builder sterowania diod LED 70 ELEKTRONIKA PRAKTYCZNA 12/2010 ObsBuga portów GPIO portów o maksymalnej szeroko[ci wyno- Po zamkniciu programu SOPC Bu- co nie mog by midzy sob wymieniane. szcej 32 bity. Mo|na zauwa|y, |e projek- ilder program Quartus II wy[wietli zapy- Dodatkowo, systemy cyfrowe utworzone tant systemu cyfrowego w ukBadzie FPGA tanie o aktualizacj symbolu systemu. Po w programie SOPC Builder w wersji 7.0 mo|e doda wiele takich portów i jest od[wie|eniu symbolu graficznego nale- lub ni|szej nie mog by u|ywane w pro- ograniczony tylko liczb dostpnych wy- |y doda wyprowadzenia do koDcówek cesie projektowym Nios II SBT. prowadzeD ukBadu programowalnego oraz ukBadu FPGA oraz przypisa odpowiednie W programie Nios II SBT mo|na two- przestrzeni adresow procesora Nios II. koDcówki do linii sygnaBowych. Popra- rzy trzy rodzaje projektów: aplikacje, BSP Porty mog mie nazw zgodn z peBnion wiony plik edytora schematów programu oraz biblioteki u|ytkownika. W projekcie funkcj, co uBatwia prac programi[cie. Quartus II zamieszczono na rysunku 22. Na rysunku 21 przedstawiono projekt W dymkach widocznych przy symbo- opisywanego systemu, w którym utworzo- lach wyprowadzeD IO program Quartus no dwa porty: led_pio do sterowania dio- wy[wietla przypisane koDcówki ukBadu dami LED i button_pio do odczytywania FPGA. S one widoczne dopiero po kom- stanu przycisków. Po dodaniu portów GPIO pilacji projektu. nale|y wygenerowa system. Zrodowisko Listing 1. Plik system.h z opisem systemu cyfrowego projektowe Nios #ifndef __SYSTEM_H_ II EDS #define __SYSTEM_H_ Do tworzenia pro- /* Include definitions from linker script generator */ #include  linker.h gramów dla procesora Nios II sBu|y [rodowi- /* sko programistyczne * CPU configuration Nios II EDS (Embedded * */ Developemnt Suite). #define ALT_CPU_ARCHITECTURE  altera_nios2 Umo|liwia ono zarz- #define ALT_CPU_BIG_ENDIAN 0 dzanie projektami opro- #define ALT_CPU_BREAK_ADDR 0x820 #define ALT_CPU_CPU_FREQ 50000000u gramowania dla ró|- #define ALT_CPU_CPU_ID_SIZE 1 nych systemów cyfro- #define ALT_CPU_CPU_ID_VALUE 0x0 #define ALT_CPU_CPU_IMPLEMENTATION  tiny wych, kompilacj kodu #define ALT_CPU_DATA_ADDR_WIDTH 16 programu oraz debu- #define ALT_CPU_DCACHE_LINE_SIZE 0 #define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 gowanie. Zrodowisku #define ALT_CPU_DCACHE_SIZE 0 #define ALT_CPU_EXCEPTION_ADDR 0x8020 Nios II EDS umo|liwia #define ALT_CPU_FLUSHDA_SUPPORTED korzystanie z dwóch #define ALT_CPU_FREQ 50000000 #define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 ró|nych procesów pro- #define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 jektowych przy tworze- #define ALT_CPU_HARDWARE_MULX_PRESENT 0 #define ALT_CPU_HAS_DEBUG_CORE 1 niu programów: #define ALT_CPU_HAS_DEBUG_STUB #define ALT_CPU_HAS_JMPI_INSTRUCTION  Nios II Software Build #define ALT_CPU_ICACHE_LINE_SIZE 0 Tools (SBT), #define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 #define ALT_CPU_ICACHE_SIZE 0  Nios II IDE. #define ALT_CPU_INST_ADDR_WIDTH 16 Nios II IDE byB #define ALT_CPU_NAME  cpu_0 #define ALT_CPU_RESET_ADDR 0x8000 u|ywany we wcze- ... /* [niejszych wersjach * Define for each module class mastered by the CPU [rodowiska projekto- * */ wego. Nios II SBT jest aktualnie wspieranym #define __ALTERA_AVALON_JTAG_UART #define __ALTERA_AVALON_ONCHIP_MEMORY2 dla procesorów Nios II #define __ALTERA_AVALON_PIO i domy[lnie urucha- #define __ALTERA_AVALON_SYSID #define __ALTERA_AVALON_TIMER miany przy otwieraniu #define __ALTERA_NIOS2 ... [rodowiska projektowe- /* go. Oba procesy projek- * led_pio configuration * towe s zbudowane na */ bazie [rodowiska Ec- #define ALT_MODULE_CLASS_led_pio altera_avalon_pio lipse, korzystaj z tych #define LED_PIO_BASE 0x40 #define LED_PIO_BIT_CLEARING_EDGE_REGISTER 0 samych programów #define LED_PIO_BIT_MODIFYING_OUTPUT_REGISTER 1 narzdziowych przy #define LED_PIO_CAPTURE 0 #define LED_PIO_DATA_WIDTH 8 tworzeniu kodu wy- #define LED_PIO_DO_TEST_BENCH_WIRING 0 nikowego, a programy #define LED_PIO_DRIVEN_SIM_VALUE 0x0 #define LED_PIO_EDGE_TYPE  NONE i biblioteki utworzone #define LED_PIO_FREQ 50000000u przy u|yciu jednego #define LED_PIO_HAS_IN 0 #define LED_PIO_HAS_OUT 1 procesu mog by u|y- #define LED_PIO_HAS_TRI 0 #define LED_PIO_IRQ -1 wane przez drugi. Jed- #define LED_PIO_IRQ_INTERRUPT_CONTROLLER_ID -1 nak ró|ni si one spo- #define LED_PIO_IRQ_TYPE  NONE #define LED_PIO_NAME  /dev/led_pio sobem tworzenia pliku rysunek 20. ustawienia konfiguracyjne #define LED_PIO_RESET_VALUE 0x0 makefile z poleceniami bloków PIO dla portu wej[ciowego do #define LED_PIO_SPAN 32 #define LED_PIO_TYPE  altera_avalon_pio dla kompilatora, przez odczytywania stanu przycisków ELEKTRONIKA PRAKTYCZNA 12/2010 71 Kurs aplikacji jest przechowywany kod zródBo- wy programu dla procesora Nios II. Projekt BSP jest bibliotek programow z opisem warstwy sprztowej systemu cyfrowego, dla którego jest tworzona aplikacja. Zawie- ra on sterowniki programowe i niezbdne pliki nagBówkowe dla jednego procesora Nios II w danym systemie cyfrowym. Je|e- li w systemie cyfrowym s dwa lub wicej procesory Nios II, to dla ka|dego z nich na- le|y utworzy odrbny projekt BSP opcjo- nalnie zawierajcy dodatkowe biblioteki programowe oferowane przez partnerów firmy Altera, takie jak na przykBad sys- tem operacyjny mC/OS-II (bez licencji). Projekt bibliotek programowych sBu|y do gromadzenia czsto u|ywanych w ró|nych projektach funkcji, na przykBad biblioteki rysunek 21. Projekt systemu cyfrowego z portami GPIO funkcji graficznych. Projekt BSP Jak wspomniano, projekt BSP zawiera definicj [rodowiska uruchomieniowego procesora Nios II oraz bibliotek z funk- cjami obsBugi peryferiów dostpnych w systemie cyfrowym, dla którego jest on tworzony. Projekt BSP izoluje wic projekt aplikacji od definicji zasobów sprzto- wych, takich jak: mapa pamici proceso- ra, peryferia czy konfiguracja procesora. W programie Nios II SBT mo|na utworzy dwa rodzaje projektów BSP: korzystaj- cych z warstwy abstrakcji sprztu Altera HAL lub pisanych dla systemu operacyjne- go mC/OS-II. System operacyjny mC/OS-II oraz programy pisane dla niego korzystaj z biblioteki programowej Altera HAL (po- równaj rysunek 23 a i b). Aby utworzy nowy projekt BSP na- rysunek 22. Plik edytora schematowego z projektowanym systemem cyfrowym le|y w programie Nios II SBT z menu File wybra opcj New  > Nios II Board system.h znajdujcy si w gBównym ka- zdefiniowane dostpne peryferia mikropro- Support Package (rysunek 24). Nastpnie talogu projektu BSP. Zawiera on makrode- cesora. Ka|de z urzdzeD peryferyjnych ma wprowadzi nazw projektu, wskaza plik finicje u|ywane przez funkcje biblioteki podane ustawienia konfiguracyjne w pliku *.sopc z opisem systemu cyfrowego oraz HAL. Na listingu 1 zamieszczono frag- system.h. Na listingu 1 przedstawiono wybra typ projektu. W dalszej cz[ci ment tego pliku, z którego mo|na odczyta ustawienie konfiguracyjne tylko dla portu kursu bd tworzone projekty bez syste- m.in.: czstotliwo[ sygnaBu zegarowego GPIO, do którego doBczono diody LED ze- mu operacyjnego, dlatego nale|y wybra (ALT_CPU_FREQ - 50 MHz) i wersj pro- stawu ewaluacyjnego. Nazwy definicji za- opcj Altera HAL. Na rysunku 25 przed- cesora (ALT_CPU_CPU_IMPLEMENTATION czynaj si od nazwy moduBu zdefiniowa- stawiono widok okna kreatora tworzenia - Nios II/e). W pliku tym s równie| nej w programie SOPC Builder. Definicje te projektu BSP. Po rozwiniciu drzewa utworzonego projektu BSP (rysunek 26) mo|na zauwa- |y, |e program Nios II SBT utworzyB m.in. pliki nagBówkowe, definicje linkera dla procesora Nios II oraz doBczyB biblioteki ze sterownikami ukBadów peryferyjnych (folder drivers) i bibliotek Altera HAL (folder HAL). W[ród utworzonych plików znajduje si summary.html, który mo|na otworzy w przegldarce WWW. Zawiera on podstawowe informacje o procesorze i systemie cyfrowym (rysunek 27). Jednym z najwa|niejszych plików opi- sujcych peryferia i konfiguracj sprzto- rysunek 23. Porównanie programów dla procesora Nios II: a) tylko z bibliotek Altera w procesora Nios II jest plik nagBówkowy HAL, b) z systemem operacyjnym mC/Os-II 72 ELEKTRONIKA PRAKTYCZNA 12/2010 ObsBuga portów GPIO Listing 2. Plik sterowników programowych bloku PIO Listing 3. szablon programu gBównego #ifndef __ALTERA_AVALON_PIO_REGS_H__ dla procesora Nios II z definicjami #define __ALTERA_AVALON_PIO_REGS_H__ podstawowych bibliotek #include  system.h #include <io.h> #include  alt_types.h #define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_ int main() { NATIVE(base, 0) return 0; #define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) } #define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) #define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_ NATIVE(base, 1) #define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) d u ko w a n y c h #define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) s t e r o w n i kó w #define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_ urzdzeD (ena- NATIVE(base, 2) #define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) ble_reduced_ #define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) device_drivers) #define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_ i zoptymalizo- NATIVE(base, 3) #define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) wanej biblio- #define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) teki jzyka C #define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_ (enable_smal- NATIVE(base, 4) l _ C _ l i b r a r y ) . #define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) #define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) W celu dal- #define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_ szego zmniej- NATIVE(base, 5) szenia obj- #define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) #define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) to[ci kodu w y n i ko w e g o /* Defintions for direction-register operation with bi-directional PIOs */ #define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 p r o g r a m u #define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 mo|na odzna- #endif /* __ALTERA_AVALON_PIO_REGS_H__ */ czy wspar- cie dla jzyka szy). BSP editor umo|li- C++ (enable- wia m.in. zmian sposo- _c_plus_plus) bu kompilacji, wBczenie w zakBadce rysunek 26. Kreator nieu|ywanych funkcji, Advanced. Po projektu BsP zmian stopnia optyma- wprowadzeniu lizacji kompilatora, czy zmian nale|y nacisn przycisk Generate rysunek 24. Tworzenie nowego projektu BsP wybór standardowego i wygenerowa pliki z ustawieniami. Omó- urzdzenia wyj[ciowego, wione powy|ej ustawienia pokazano na s u|ywane przy korzystaniu ze sterowni- o ile w systemie dostpne s peryferia tego rysunku 28. ków programowych. typu (np. JTAG_UART, wy[wietlacz znako- Dla ka|dego ukBadu peryferyjnego do- Nie nale|y samodzielnie modyfikowa wy LCD czy UART). Dla prostych aplikacji, Bczane s pliki nagBówkowe z definicjami plików projektu wygenerowanych przez które nie korzystaj na przykBad z funkcji staBych oraz z funkcjami obsBugi. PrzykBa- program Nios II SBT, gdy| bBdne wpisy standardowego wyj[cia czy dostpu do pa- dowy plik nagBówkowy sterowników portu mog spowodowa zBe dziaBanie biblioteki mici Flash, mo|na w zakBadce Common GPIO przedstawiono na listingu 2. S to programowej Altera HAL lub uniemo|liwi bezpiecznie zaznaczy opcj u|ycia zre- makrodefinicje dostpu do rejestrów por- uruchomienie programu. Do modyfikacji ustawieD projektu sBu|y opcja Nios II  > BSP editor z menu kontekstowego projektu (wywoBywane prawym przyciskiem my- rysunek 25. Kreator nowego projektu BsP dla procesora Nios II rysunek 27. Zawarto[ wygenerowanego pliku summary.html ELEKTRONIKA PRAKTYCZNA 12/2010 73 Kurs tu GPIO. Korzystaj one z podstawowych funkcji do odczytu (IORD) i zapisu danych (IOWR) pod adresem wzgldnym w sto- sunku do adresu bazowego (parametr base) w przestrzeni adresowej mikroprocesora Nios II. Kolejne makra sBu| do odczyty- wania lub zapisywania warto[ci rejestrów konfiguracyjnych bloku PIO:  PIO_DATA  rejestr danych portu GPIO. Przy zapisie ustawia warto[ci wyj[ciowe portu, przy odczycie zwra- ca poziomy logiczne na wej[ciach portu.  PIO_DIRECTION  ustawienia kierun- ku poszczególnych bitów portu. War- to[ 1 oznacza wyj[cie a warto[ 0 wej- [cie.  PIO_IRQ_MASK  rejestr maskowania generowania przerwania dla wej[,  PIO_EDGE_CAP  rejestr wykrywania wystpienia zbocza narastajcego lub opadajcego na koDcówkach. Warto[ 1 oznacza wystpienie zbocza opada- jcego lub narastajcego w zale|no[ci od ustawieD zdefiniowanych na etapie konfiguracji bloku PIO w programie SOPC Builder.  PIO_SET_BITS i PIO_CLEAR_BITS sBu| do ustawiania lub zerowania in- dywidualnych bitów w rejestrze wyj- [ciowym. Poszczególne rejestry s dostpne wy- Bcznie po zaznaczeniu odpowiednich opcji w kreatorze bloku PIO w programie SOPC Buidler. Na przykBad dla portu led_ pio rejestry kierunkowy, przerwaD bd niedostpne, gdy| zostaB on skonfigurowa- ny jako port wyj[ciowy. PrzykBad u|ycia makro definicji do za- pisu heksadecymalnej warto[ci 0x0F do portu led_pio wyglda nastpujco: IOWR_ALTERA_AVALON_PIO_DATA(LED_ PIO_BASE, 0x0F); LED_PIO_BASE jest adresem bazowym bloku IP w systemie cyfrowym. WywoBanie tego makra powoduje zapisanie w rejestrze zerowym warto[ci 0x0F. Projekt BSP mo|na skompilowa nie- zale|nie od projektu aplikacji. W razie po- trzeby, kompilacja skojarzonego projektu BSP jest uruchamiana przed kompilacj projektu aplikacji. Projekty Aplikacji W celu utworzenia projektu aplikacji dla procesora Nios II nale|y z menu File rysunek 28. ustawienia konfiguracyjne projektu BsP wybra opcj New  > Nios II Application. Na rysunku 29 pokazano kreator dodawa- le|y doda plik main.c, w którym zosta- BSP) oraz alt_types.h z biblioteki Al- nia nowego projektu aplikacji. W kreato- nie utworzona funkcja gBówn programu. tera HAL. Plik alt_types definiuje typy rze nale|y poda jego nazw oraz wskaza Na listingu 3 przedstawiono przykBadow danych u|ywane przez bibliotek HAL. wcze[niej utworzony projekt BSP. zawarto[ pliku main.c, który mo|e po- Najcz[ciej stosowanymi bd dodatnie, Nowoutworzony projekt nie zawiera sBu|y jako szablon dla nowych aplikacji. staBoprzecinkowe zmienne 32-bitowe (al- |adnych plików. Pliki zródBowe s do nie- Oprócz gBównej funkcji programu w pliku t_32u) lub ze znakiem (alt_32). Zmienne go dodawane z menu File poleceniem New znajduj si definicje doBczenia plików o innej liczbie bitów (8, 16 lub 64) zostaBy  > Source File. Do projektu aplikacji na- nagBówkowych system.h (z projektu zdefiniowane analogicznie, np.: alt_8u. 74 ELEKTRONIKA PRAKTYCZNA 12/2010 ObsBuga portów GPIO Listing 4. PrzykBad obsBugi portu GPIO #include  system.h #include  alt_types.h #include  altera_avalon_pio_regs.h #include <unistd.h> int main() { alt_u32 licznik = 0; while(1){ licznik++; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, ~licznik); if(licznik >= 255){ licznik = 0; } usleep(100000); } return 0; } rysunek 29. Kreator nowego projektu aplikacji dla procesora Nios II Ciekaw funkcjonalno[ci [rodowiska Eclipse i usprawnieniem procesu pisania programu jest podpowiadanie jego kodu. Funkcj t uruchamia si skrótem klawia- turowym CTRL+spacja (rysunek 30). Po jej uruchomieniu [rodowisko Nios II SBT two- rzy list zmiennych, definicji preprocesora i funkcji, których nazwa rozpoczyna si od wprowadzonych znaków. Funkcjonalno[ ta jest szczególnie przydatna przy wpro- wadzaniu bardzo dBugich i trudnych do zapamitania definicji, na przykBad z pliku system.h. Podpowiadanie kodu progra- mu wy[wietla wyBcznie te nazwy, które s widoczne w danym pliku, na przykBad poprzez dodanie odpowiedniego pliku na- rysunek 30. Funkcja podpowiadania kodu w [rodowisku Eclipse gBówkowego. Funkcja ta mo|e nie dziaBa Listing 5. PrzykBad obsBugi dwóch portów GPIO prawidBowo po dodaniu pierwszego pliku do nowo utworzonego projektu. Aby pro- #include  system.h #include  alt_types.h gram odpowiednio odczytaB zale|no[ci bi- #include  altera_avalon_pio_regs.h #include <unistd.h> bliotek programowych, nale|y uruchomi kompilacj projektu. int main() { alt_u32 licznik = 0; Na listingu 4 przedstawiono prosty alt_u32 przyciski = 0; program, który w ptli while() inkremen- alt_u32 led = 0; while(1){ tuje zmienn licznik. Zanegowana warto[ licznik++; przyciski = IORD_ALTERA_AVALON_PIO_DATA(BUTTON_PIO_BASE); zmiennej jest wystawiana na wyprowadze- if(licznik >= 15){ nia portu led_pio. Do pliku main.c doBczo- licznik = 0; } no dwa pliki nagBówkowe: altera_avalon_ led = (0xF0 & (przyciski<<4) | (0x0F & licznik)); IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, ~led); pio_regs.h z podstawowymi definicjami usleep(100000); rejestrów bloku PIO oraz unistd.h. } return 0; Biblioteka unistd.h zawiera funkcje } API systemów operacyjnych budowanych w standardzie POSIX (m.in. Linux, Mac OS X). W implementacji biblioteki unistd.h odczytu jest podawany adres bazowy blo- rów jest tworzone dwuetapowo. Rozdzie- dla procesorów Nios II dostpne s wszyst- ku PIO button_pio, który zdefiniowano lenie projektu sterowników programowych kie funkcje z API POSIX, jednak niektóre w pliku nagBówkowym system.h. Wci- (BSP) od projektu aplikacji umo|liwia na z nich (np. link(), unlink()) zawsze zwra- [nicie przycisku powoduje za[wiecenie przykBad testowanie aplikacji na ró|nych caj kod bBdu. W programie z listingu 4 si odpowiadajcej mu diody doBczonej konfiguracjach sprztowych, lub tworzenie u|yto funkcji usleep(), która blokuje wy- do wyprowadzenia led7...4. kilku aplikacji, korzystajcych z jednego konywanie programu na liczb milisekund projektu BSP. W artykule omówiono pod- podan jako argument wywoBania. Podsumowanie stawowe ustawienia konfiguracyjne pro- Na listingu 5 przedstawiono zmody- W artykule przedstawiono proces two- jektów BSP oraz przedstawiono na przy- fikowany program z listingu 4, w którym rzenia aplikacji dla  mikkich procesorów kBadzie obsBugi portu IO korzystanie z pod- dodano obsBug przycisków. W programie Nios II. Ze wzgldu na stosunkowo prost stawowych funkcji biblioteki Altera HAL. przy ka|dym wywoBaniu ptli while() jest i szybk mo|liwo[ zmiany parametrów Maciej GoBaszewski, EP odczytywany stan przycisków. Nale|y cyfrowego systemu wewntrz ukBadów maciej.golaszewski@ep.com.pl zwróci uwag, |e w wywoBaniu funkcji FPGA, oprogramowanie dla tych proceso- ELEKTRONIKA PRAKTYCZNA 12/2010 75

Wyszukiwarka

Podobne podstrony:
Procesory NiosII cz1
Procesory NiosII cz4
procesy
Wyświetlacz MMI z 6 kanałowym procesorem dźwięku (9VD)
rup process engineerQCC276E
2010 artykul MAPOWANIE PROCESOW Nieznany
Formy i procesy peryglacjalne
EKO VI Promocja jako proces komunikacji
Kalendarium procesu?atyfikac
MEDIA w procesie socjalizacji
Mikrokomputer Pecel z procesorem AT90S8535 cz 3
Metody modelowania procesow 12 cz I (1)

więcej podobnych podstron