J-Link Commander: jak zaprogramować pamięć mikrokontrolera bez licencji J-Flash

Na szczęście wszystkie interfejsy z rodziny J-Link, oprócz pracy w większości zintegrowanych środowisk programistycznych, mogą być sterowane przez oprogramowanie J-Link Commander (rys. 5). Za pomocą tej aplikacji można wykorzystywać możliwości interfejsu J-Link pracując w środowisku tekstowym, również z wykorzystaniem plików wsadowych (skryptów). Możliwe jest więc zautomatyzowanie pewnych etapów podczas produkcji urządzeń lub na przykład umożliwienie niewykwalifikowanemu użytkownikowi zmiany firmware’u w wykorzystywanym urządzeniu.

 

Rys. 5: Widok okna programu J-Link Commander, gdy do interfejsu nie jest dołączony układ docelowy
Rys. 5. Widok okna programu J-Link Commander, gdy do interfejsu nie jest dołączony układ docelowy

Po uruchomieniu J-Link Commandera, gdy interfejs jest dołączony do komputera, zostanie wyświetlone okno pokazane na rys. 5. W kolejnych wierszach znajdują się informacje o wersji zainstalowanego na komputerze oprogramowania (V4.56), wersji firmware’u (V8), wersji sprzętu (V8.00), numer seryjny interfejsu, nazwa interfejsu (SEGGER-EDU) oraz o zainstalowanych w interfejsie licencjach (FlashBP, GDB). Warto zwrócić uwagę na ostatnią linię:

Podana informacja oznacza, że interfejs nie wykrył napięcia zasilania układu docelowego – w tym przypadku do interfejsu nie było nic dołączone. Gdy do interfejsu jest dołączony zestaw uruchomieniowy, okno po uruchomieniu programu wygląda jak na rys. 6. Można zobaczyć, że interfejs wykrył napięcie zasilające układ docelowy:

 

Rys. 6: Widok okna programu J-Link Commander, gdy do interfejsu jest dołączony zestaw uruchomieniowy
Rys. 6. Widok okna programu J-Link Commander, gdy do interfejsu jest dołączony zestaw uruchomieniowy

Następnie są wyświetlane informacje o układach odnalezionych w łańcuchu JTAG. W przykładzie na rys. 6 interfejs był dołączony do zestawu ZL30ARM z mikrokontrolerem STM32F103CBT6 firmy STM (rdzeń Cortex-M3).

Jednym z najczęstszych zastosowań interfejsów JTAG jest programowanie pamięci Flash. Z wykorzystaniem wspomnianego zestawu ZL30ARM zaprezentujemy sposoby programowania pamięci mikrokontrolera STM32F103CBT6 interfejsem J-Link firmy Segger.

Programowanie pamięci z wykorzystaniem zintegrowanego środowiska programisty

Wszystkie interfejsy J-Link umożliwiają programowanie pamięci Flash za pośrednictwem wszystkich popularnych środowisk programistycznych IDE (np. uVision, EWARM, emIDE). Sposób postępowania jest zależny od wykorzystywanego środowiska – dokładny opis dotyczący Keil uVision został zaprezentowany w artykule Obsługa interfejsu Segger J-Link w środowisku uVision (ARM/Keil). Warto w tym miejscu tylko wspomnieć, że w sytuacji gdy dysponujemy jedynie plikiem wynikowym (np. w formacie Intel Hex), do programowania pamięci mikrokontrolera można wykorzystać również wersję demonstracyjną uVision. W takim przypadku nie działa ograniczenie wielkości kodu wynikowego do 32 kB.

 

 

Do pobrania

O autorze