Ethernetowy bootloader dla mikrokontrolerów Freescale Kinetis
Rozwijanie aplikacji z ethernetowym bootloaderem w środowisku CodeWarrior
Jako projekt bazowy środowiska CodeWarrior, do którego dodany zostanie ethernetowy bootloader, wykorzystać można dowolny istniejący projekt lub alternatywnie stworzyć można nowy projekt. Na potrzeby artykułu wybrana została opcja druga – stworzenie projektu od podstaw. Należy w tym celu wykonać następujące kroki:
1. Uruchomić środowisko, wybrać File->New->Bareboard Project i postępować zgodnie z rysunkiem 6.
Rys. 6. Stworzenie projektu w środowisku CodeWarrior
2. Zmienić opcję projektu na MK60N512VMD100_INTERNAL_FLASH i otworzyć plik MK60N512VMD100_flash.lcf (rysunek 7).
Rys. 7. Plik MK60N512VMD100_flash.lcf
3. Zmodyfikować plik .icf
a. Zmodyfikować adres pamięci początku aplikacji właściwej mikrokontrolera z 0x0000 na 0xC000 (listing 5).
Listing 5.
# 48KB (Reserved for Ethernet Bootloader) fnet_bootloader (RX) : ORIGIN = 0x00000000, LENGTH = 0x0000C000 m_interrupts (RX) : ORIGIN = 0x0000C000, LENGTH = 0x000001E0 m_text (RX) : ORIGIN = 0x0000C400, LENGTH = 0x0007F000-0x0000C400
b. Usunąć obszar m_cfmprtrom (listing 6).
Listing 6.
# m_cfmprotrom (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010 # .cfmprotect : # { # *(.cfmconfig) # . = ALIGN (0x4); # } > m_cfmprotrom
c. Stworzyć sekcję dla parametrów bootloadera (listing 7)
Listing 7.
# 4Kbytes (Last logical-block reserved for parameters) fnet_params (RW) : ORIGIN = 0x0007F000,LENGTH = 0x00001000
Cały zmodyfikowany plik .icf został pokazany w dodatku B do artykułu.
4. Skompilować projekt. Domyślnie środowisko CodeWarrior nie generuje pliku pamięci linkera, konieczne jest aktywowanie tej opcji, tak jak pokazano to na rysunku 8.
Rys. 8. Aktywowanie opcji generowania pliku pamięci