Keil RTX RTOS to kolejny system operacyjny czasu rzeczywistego dla kontrolerów STM32.
Co to jest RTOS
RTOS to system czasu rzeczywistego, pozwalający na sprawną obsługę wątków (tego brakuje w wersji bez systemu operacyjnego).
Wszystko robimy „od nowa” – wersja Arm Keil RTX (w odróżnieniu od STM32CubeMX / STM32Ide) ma
- swoje IDE
- inny kompilator C++ (Arm C++)
- Flasher
- Debugger
- Wbudowane przykłady
Instalacja środowiska
- Pobieramy plik MDK533.EXE.exe
- Uruchomi się program o nazwie PACK INSTALLER (jeśli nie automatycznie, to poszukajmy go i uruchomimy).
- Po uruchomieniu lewy panel – zakładka BOARDS – wpisujemy swoją płytkę w Search np. Nucleo-F103Rb
- Wybieramy swój model płytki i klikamy oraz pobieramy!
- Po prawej stronie – zakładka – EXAMPLES
- Wybieracie Blinky (Nucleo-F103RB) – i przycisk przy przykładzie – pobierze się i zainstaluje a następnie odpali środowisko IDE
- Potem z tego miejsca każdorazowo można uruchomić ten projekt klikając w zielony przycisk obok niego lub można wybrać inny przykład
Problem z flashowaniem w uVision
uVision – to nazwa nowego IDE. Po otwarciu projekt wygląda całkiem podobnie do starego dobrego STM32CubeIDE.
- Po lewej stronie w drzewie plików szukamy pliku przykładowego projektu (w przykładu pierwszego przykładu to Blinky.c – UWAGA! Nie main.c). Otwieramy plik Blinky.c po prawej stronie ukaże się jego kod.
- F7 – kompilacja przykładu w języku C++ – jeśli działa, kompilator mamy, teraz Flash i debugger
- F8 – Flash i tu zaczynają się schody.
- W przypadku błędu wykonujemy poniższy kroki:
- Pobieramy program STM32 ST-LINK Utility.exe
- Uruchamiamy go – razem z nim instaluje się sterownik. U mnie program jest w lokalizacji: „c:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\STM32 ST-LINK Utility.exe”
- Klikamy Connect to the target (trzecia ikona z wtyczką)
- Prawdopodobnie będzie błąd, wtedy klikamy TARGET->SETTINGS ->MODE-> CONNECT UDER RESET ->OK
- Teraz znowu Connect to the target – połączy, pokaże zawartość pamięci kontrolera
- Zamknij oprogramowanie
- Wracamy do uVision – F8- Flash powinien ruszyć, zrobi aktualizację oprogramowania
- Teraz Ctrl+F5 Debugger
- Teraz stoi na breakpoincie na początku programu klikamy ikonę z kartką i strzałką w dół (F5) – druga od lewej
- W razie potrzeby zatrzymujemy ikoną trzecią od lewej (czerwony krzyżyk)
- Ctrl+F5 wracamy do widoku kompilatora
No ULINK Device Found
W przypadku błędu:
1 | No ULINK Device Found |
Można użyć innego Flashera w ustawieniach projektu:
Project – Options for target … – Debug – Use: ST-Link Debugger (poprzednio ULINK…)
Cannot load flash device description!
W przypadku takiego błędu
Project -> Options for '…’ -> Debug -> (obok Use: ST-Link Debugger) Settings -> Flash Download -> (Programming Algorithm) Add
Wybieramy STM32F0xx 128kB Flash… i klikamy Add
(wykrył Marcin P.)
Blinky
Przykład blinky mruga LED co pół sekundy, przycisk zatrzymuje program, a na konsoli można przeczytać Hello World. Łączymy się przez PuTTy – port COM (w ustawieniach Windows 10 sprawdzamy który, u mnie COM3) Serial – na maksymalnej prędkości 115200
HAL i bare metal
Biblioteki HAL współpracują z Keil RTX, dlatego dobrze zrobić sobie najpierw trening w wersji bare metal bez systemu operacyjnego.
Darmowa licencja
Na programy do 32kb można pobrać darmową licencję:
- File – License Management
- Get Lic Via Internet
- Uzupełniamy formularz, UWAGA jako PSN podajemy numer dla darmowych licencji ze strony Keil, 4RMW3-A8FIW-TUBLG
- Odbieramy mail z naszą nową, darmową licencją, kopiujemy nr seryjny
- Wklejamy go na dole w New License ID
c.d.n.