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).

Strona producenta.

Wszystko robimy „od nowa” – wersja Arm Keil RTX (w odróżnieniu od STM32CubeMX / STM32Ide) ma

  1. swoje IDE
  2. inny kompilator C++ (Arm C++)
  3. Flasher
  4. Debugger
  5. Wbudowane przykłady

Instalacja środowiska

  1. Pobieramy plik MDK533.EXE.exe
  2. Uruchomi się program o nazwie PACK INSTALLER (jeśli nie automatycznie, to poszukajmy go i uruchomimy).
  3. Po uruchomieniu lewy panel – zakładka BOARDS – wpisujemy swoją płytkę w Search np. Nucleo-F103Rb
  4. Wybieramy swój model płytki i klikamy oraz pobieramy!
  5. Po prawej stronie – zakładka – EXAMPLES
  6. Wybieracie Blinky (Nucleo-F103RB) – i przycisk przy przykładzie – pobierze się i zainstaluje a następnie odpali środowisko IDE
  7. 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

PackInstaller

Problem z flashowaniem w uVision

uVision – to nazwa nowego IDE. Po otwarciu projekt wygląda całkiem podobnie do starego dobrego STM32CubeIDE.

  1. 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.
  2. F7 – kompilacja przykładu w języku C++ – jeśli działa, kompilator mamy, teraz Flash i debugger
  3. F8 – Flash i tu zaczynają się schody.
  4. 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
Keil IDE

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ę:

  1. File – License Management
  2. Get Lic Via Internet
  3. Uzupełniamy formularz, UWAGA jako PSN podajemy numer dla darmowych licencji ze strony Keil, 4RMW3-A8FIW-TUBLG
  4. Odbieramy mail z naszą nową, darmową licencją, kopiujemy nr seryjny
  5. Wklejamy go na dole w New License ID

c.d.n.