LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
IoT

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.

# 48KB (Reserved for Ethernet Bootloader)
fnet_bootloader (RX) : ORIGIN = 0x00000000, LENGTH = 0x0000C000
vectorrom (RX): ORIGIN = 0x0000C000, LENGTH = 0x00000410
rom (RX) : ORIGIN = 0x0000C420, LENGTH = 0x0007F000-0x0000C420

 

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

 

Listing 9.

# m_cfmprotrom (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010
# .cfmprotect :
# {
# *(.cfmconfig)
# . = ALIGN (0x4);
# } > m_cfmprotrom

 

Polski portal branżowy dedykowany zagadnieniom elektroniki. Przeznaczony jest dla inżynierów i konstruktorów, projektantów hardware i programistów oraz dla studentów uczelni technicznych i miłośników elektroniki. Zaglądają tu właściciele startupów, dyrektorzy działów R&D, zarządzający średniego szczebla i prezesi dużych przedsiębiorstw. Oprócz artykułów technicznych, czytelnik znajdzie tu porady i pełne kursy przedmiotowe, informacje o trendach w elektronice, a także oferty pracy. Przeczyta wywiady, przejrzy aktualności z branży w kraju i na świecie oraz zadeklaruje swój udział w wydarzeniach, szkoleniach i konferencjach. Mikrokontroler.pl pełni również rolę patrona medialnego imprez targowych, konkursów, hackathonów i seminariów. Zapraszamy do współpracy!