Ethernetowy bootloader dla mikrokontrolerów Freescale Kinetis

5. Otworzyć plik .xmap i sprawdzić, czy aplikacja została umieszczona pod zmodyfikowanymi adresami pamięci Flash (rysunek 9).

 

Rys. 9. Zaznaczone na czerwono adresy pamięci po modyfikacji

Rys. 9. Zaznaczone na czerwono adresy pamięci po modyfikacji

 

 

Teraz wygenerowany plik .S19 jest gotowy do wgrania do pamięci mikrokontrolera przez ethernetowy bootloader. Plik ten można znaleźć w sposób przedstawiony na rysunku 10.

 

Rys. 10. Lokalizacja pliku .S19

Rys. 10. Lokalizacja pliku .S19

 

 

Rozwijanie aplikacji dla systemu MQX z ethernetowym bootloaderem w środowisku CodeWarrior

Dla przypadku wykorzystania ethernetowego bootloadera w projekcie programistycznym dla systemu MQX użyty został przykład „Hello World” znajdujący się pod ścieżką C :\Program Files\Freescale\Freescale MQX 3.7\mqx .

1. Przeciągnąć i upuścić do workspace-a środowiska CodeWarrior plik .project projektu hello_twrk60n512 .

2. Domyślnie system MQX alokuje tablicę wektorów pod pierwszym adresem pamięci Flash (0x0000-0000). Jako, że obszar ten jest wykorzystywany przez ethernetowy bootloader, konieczna jest realokacja tablicy wektorów w sekcji RAM . Aby to uczynić, należy otworzyć biblioteki bsp_twrk60n512 psp_twrk60n512 , dodać odpowiednie makro ( #define MQX_ROM_VECTORS ) do pliku user_config.h i przekompilować biblioteki (rysunek 11). Więcej o tej czynności można przeczytać w rozdziale 2.4 Freescale CodeWarrior Development Studio version 10.1 z dokumentu „ Getting Started ” ( C:\Program Files\Freescale\Freescale MQX ).

 

Rys. 11. Dodanie makra do pliku biblioteki

Rys. 11. Dodanie makra do pliku biblioteki

 

 

3. Zmienić opcję workspace-a na MK60N512VMD100_INTERNAL_FLASH i otworzyć plik MK60N512VMD100_flash.lcf (rysunek 12).

 

Rys. 12. Plik MK60N512VMD100_flash.lcf

Rys. 12. Plik MK60N512VMD100_flash.lcf

 

 

4. Zmodyfikować plik linkera .lcf .

a. Zmodyfikować adres pamięci początku aplikacji właściwej mikrokontrolera z 0x0000_0000 na 0x0000_C000 (listing 8).

 

Listing 8.

 

b. Usunąć obszar m_cfmprtrom (listing 9).

 

Listing 9.

 

O autorze