Jak widać, lista obsługiwanych procków jest imponująca, więc może warto poznać to narzędzie.
Do zaprogramowania mikrokontrolera LPC2378 (również innych oferowanych przez producenta, firmę NXP, można zastosować program FLASHMAGIC. Program ten możne bezpłatnie pobrać ze strony http://www.flashmagictool.com/download. ... flashmagic. Jego instalacja przebiega typowo i nie powinna sprawić jakiegokolwiek problemu. Program uruchamia się wybierając odpowiednią pozycję w menu (ilustracja 1). Po jego uruchomieniu naszym oczom ukazuje się „piękny widok z perspektywami na fascynującą przygodę” … a poważnie: mamy główne okienko programu, jak pokazuje ilustracja 2. Program ten jest przeznaczony do zaprogramowania pamięci FLASH mikrokontrolera w oparciu w plik w formacie Intel-hex wygenerowany przez kompilator. Po zainstalowaniu program ten jest wstępnie właściwie skonfigurowany (w zakresie parametrów sterowania liniami modemowymi) i nie należy tego modyfikować. Jednak, jeżeli ktoś ma nieodpartą chęć przekonania się o tym samemu, to... nic nie stoi na przeszkodzie by tego doświadczyć. Należy kliknąć na przycisk „Options” i następnie na „Advanced Options”, jak pokazuje ilustracja 3. Po wybraniu opcji, rozwinie się kolejne okienko, gdzie należy wybrać zakładkę „Hardware Config”, gdzie można konfigurować szczegóły sterowania liniami modemowymi w trakcie programowania mikrokontrolera w trybie IAP.
Właściwie ustawione parametry sterowania dla interfejsu szeregowego pokazuje ilustracja 4. By program FLASHMAGIC zrobił, to co się od niego oczekuje, należy podać mu niezbędne informacje oraz połączyć pełnomodemowym kablem (zawierającym oprócz linii transmitowanych danych również obsługę linii modemowych) port COM komputera (ewentualnie zastosować przejściówkę USB↔RS232) z portem mikrokontrolera umożliwiającym programowanie w trybie IAP (dane szeregowe skierowane do UART0, odpowiednie linie modemowe przyłączone do sygnału reset oraz zewnętrznego przerwania EINT0). Przykładowe rozwiązanie pokazuje ilustracja 5.
Czynności do wykonania przed procedurą programowania, należy wybrać:
- model programowanego mikrokontrolera, klikającć na przycisk „Select”, w wyniku czego rozwija się menu do wyboru modelu mikrokontrolera (ilustracja 6) i wybrać pozycję LPC2378 (gdyż taki będzie programowany),
- klikając na „trójkącik” w pozycji „COM port” wybrać port komunikacyjny dla programu FLASHMAGIC, (ilustracja 7), w moim przypadku jest to COM1,
- klikając na „trójkącik” w pozycji „Baud Rate” wybrać prędkość komunikacyjną (ilustracja 8), z jaką będzie przesyłany kod programu do zapisu w pamięci FLASH, wiadomo, że im jest większa prędkość, tym czas operacji jest krótszy ale, jako transakcja wiązana, rośnie prawdopodobieństwo przekłamania, wybór prędkości 38400 wydaje się być optymalnym,
- klikając na „trójkącik” w pozycji „Interface” wybrać pozycję „None (ISP)” jako brak interfejsu, w naszym przypadku nie jest używany żaden, ilustracja 9 (interfejs pokazany na ilustracji 5 nie jest w kategorii interfejsu w rozumieniu programu FLASHMAGIC a zaprezentowany na wymienionej ilustracji układ jest jedynie „wyniesionym” poza urządzenie interfejsem do konwersji poziomów napięć ze standardu RS232 do poziomów wymaganych przez mikrokontroler +3,3V, w rozumieniu znaczenia interfejsu w programie FLASHMAGIC odpowiada to pozycji „brak interfejsu”),
- w pozycji „Oscillator” wpisać częstotliwość sygnału taktującego mikrokontroler, czyli częstotliwość rezonatora kwarcowego (ilustracja 10), w naszym przypadku jest to 12 MHz,
- zaznaczyć „ptaszka” (ogólnie mieć zaznaczony) „Erase block used by Firmware”, co oznacza, że przez zaprogramowaniem należy skasować pamięć FLASH w obszarze, w jakim będzie rezydować nowy program, ilustracja 11,
- po kliknięciu na „Browse”, rozwija się dodatkowe okienko do określenia pliku zawierającego kod programu do zapisania w pamięci FLASH, należy ogólnofilozoficznie doklikać się do docelowej pozycji, ilustracja 12,
- zaznaczyć ptaszka w pozycji „Verify after programming”, co oznacza, że program po zakończeniu programowania pamięci FLASH wykona weryfikację poczynionej operacji, odczyta zawartość pamięci FLASH i porówna ze wzorcem na dysku, opcja nie jest konieczna, ale, uważam, że bardzo przydatna, ilustracja 13.