Mikrokontrolery Infineon XMC4500 w praktyce, część 2
Narzędzie, które powinno zostać użyte jako pierwsze to Add User Label. Umożliwi ono nadanie komponentom etykiet. Po uruchomieniu narzędzia otworzone zostanie okno o nazwie User Label. W polu Please Specify User Label wpisać należy etykietę i zaakceptować zmianę poprzez wciśnięcie przycisku OK (rysunek 7). Od tej chwili etykieta widoczna będzie przy nazwie komponentu w oknie App Dependency TreeView oraz w oknie S/W App Connectivity View.
Jeśli przypisany komponentowi DavE App zasób wewnętrzny mikrokontrolera wchodzi w interakcję z układami, modułami, systemami, bądź innymi komponentami poza mikrokontrolerem, drugim narzędziem konfiguracyjnym, z którego należy skorzystać jest Manual Pin Assignment (rysunek 8). Pozwoli ono na przyporządkowanie fizycznych wejść i wyjść zasobu mikrokontrolera do jego wyprowadzeń. Po włączeniu narzędzia otworzone zostanie okno (o nazwie Manual Pin Assignment) z tabelą, w której każdy rząd jest przyporządkowaniem jednego wejścia lub wyjścia zasobu mikrokontrolera do jednego z jego wyprowadzeń. Dodawanie nowych rzędów tabeli odbywa się przez wciśnięcie przycisku z zielonym znakiem plusa. Przyporządkowania dokonuje się poprzez wybór wejść i wyjść zasobu z kolumny Resource oraz wyprowadzeń mikrokontrolera z kolumny Port-Pin/Pin Number. Po zakończeniu czynności należy nacisnąć przycisk Solve And Save, a potem Close.
Rys. 8. Okno Manual Pin Assignment
Kolejnym narzędziem konfiguracyjnym jest Signal Connection. Za jego pomocą użytkownik ma możliwość przypisania sygnałów konfigurowanego komponentu do sygnałów innych komponentów. Po uruchomieniu narzędzia otworzone zostanie okno (o nazwie Signal Connection) z tabelą, w której każdy rząd jest przypisaniem jednego sygnału wybranego komponentu DAvE App do jednego sygnału innego komponentu DAvE App. Dodawanie nowych rzędów tabeli odbywa się przez wciśnięcie przycisku z zielonym znakiem plusa. Przypisania dokonuje się poprzez wybór sygnałów z lewej kolumny Signal (odwołuje się ona do wybranego komponentu DAvE App) oraz z prawych kolumn App i Signal (odwołują się one do pozostałych komponentów DAvE App). Przykładowy scenariusz może obejmować np. przypisanie sygnału przerwania od wykonania pomiaru przez przetwornik A/C lub sygnału przerwania od odbioru danych przez interfejs komunikacyjny do sygnału kontrolera przerwań NVIC (Nested Vector Interrupt Controller) (rysunek 9). Spowoduje to generowanie przerwań przez kontroler NVIC od przyporządkowanych mu zdarzeń. Zaakceptowanie ustawień zakończyć należy naciśnięciem przycisku Solve and Save, a następnie Close.
Rys. 9. Okno Signal Connection
Naciśnięcie przycisku Solve and Save, który dostępny jest w oknie Manual Pin Assignment oraz Signal Connection uruchamia mechanizm o nazwie Solver. Sprawdza on poprawność konfiguracji weryfikując czy wybrane ustawienia mogą zostać fizycznie wykonane i czy nie kolidują ze sobą wzajemnie.
Następnym narzędziem konfiguracyjnym jest UIEditor. Po jego włączeniu otworzone zostanie okno z ustawieniami parametrów pracy wybranego komponentu DAvE App. Parametry są pogrupowane, a każda grupa dostępna jest w osobnej zakładce (rysunek 10).
Po skonfigurowaniu wszystkich komponentów można przystąpić do wygenerowania kodu źródłowego. Uruchomienie generatora kodu odbywa się w taki sam sposób jak narzędzi konfiguracyjnych: za pomocą menu lub ikony. W wyniku pracy tego narzędzia wygenerowane zostają pliki nagłówkowe i źródłowe, które zostają włączone do projektu (rysunek 11).
Rys. 11. Drzewo projektu zawierające pliki stworzone przez generator kodu
3) Pisanie kodu warstwy aplikacji
Gdy już wszystkie wymagane przez aplikację komponenty DAvE Apps są dodane do projektu oraz odpowiednio skonfigurowane, a następnie zostały na ich podstawie wygenerowane pliki z kodem źródłowym, które są dołączone do projektu, można przystąpić do kolejnego kroku procesu tworzenia oprogramowania. Jest nim pisanie kodu źródłowego warstwy aplikacji. Podczas tego etapu użytkownik korzysta z funkcji i struktur danych zaimplementowanych w wygenerowanych wcześniej plikach. W kolejnym etapie można kod skompilować, wgrać do pamięci mikrokontrolera oraz debugować.
Podsumowanie
Obecnie najpopularniej spotykane narzędzia usprawniające tworzenie oprogramowania dla mikrokontrolerów udostępniane przez producentów to biblioteki do zasobów wewnętrznych, oprogramowanie pośredniczące Middleware (np. stos USB, stos TCP/IP, system operacyjny czasu rzeczywistego itp.), przykładowe projekty oraz proste generatory kodu konfiguracji zasobów wewnętrznych. Zestaw narzędzi pakietu DAvE 3 oferuje nie tylko wszystkie te usprawnienia, ale idzie o krok dalej. Zasoby wewnętrzne reprezentowane są przez tak zwane komponenty pozwalające tworzyć oprogramowanie zgodnie z ideą CBP/CBSD. Dzięki temu każdy komponent nie tylko łatwo jest skonfigurować za pomocą graficznego interfejsu użytkownika, dodać do projektu w postaci kodu źródłowego i używać za pomocą funkcji, definicji i struktur danych, ale też w prosty sposób można określać zależności miedzy komponentami. Można zatem powiedzieć, że pakiet narzędzi DAvE 3 udostępnia mechanizm projektowania oprogramowania, co pozwala na znacznie skrócenie czasu tworzenia aplikacji docelowej [4].
Literatura
[1] A Model of Component-Based Programming, Xin Chen, Jifeng He, Zhiming Liu, Naijun Zhan
[2] Component-Based SoftwareDevelopment, Abdille Hagi Abdullahi, 2008
[3] www.infineon.com Embedded Component Based Programming with DAvE™ 3, Mike Copeland, 2012
[4] www.infineon.com Reduce SW Development Time with DAvE™ 3, marzec 2012
[5] DAvE 3 Help