Vargham Creative Commons License 2017.01.13 0 0 46

> Akkor mi köt a Nucleohoz?

Tulajdonképpen nem sok. De az MBED-hez sem. :-(

Ami mellettük szólt:

  • Nucleo: Kész board. A target, a soros USB és a debugger egyben. Nincs forrasztás, nincs dugdosás. Az ára. Nagyon olcsón lehet
  • X-Nucleo: Shield-ek, amiket csak rádugok. (Bluetooth, Szenzor, Motor driver, stb)
  • MBED: Az Arduinonál robusztusabb, mégis hasonlóan egyszerű, néhány sor kóddal el lehet indulni.

Ami ellenük:

  • Nucleo: Vagy nem kapcsolódik a számítógéphez, vagy menet közben száll el a fenébe. Arra tippelek, hogy az ST-LINK V2-1 drivere összeveszik valamivel Windowson. Jó lenne, ha rá tudnám tenni az ST-LINK V2 fimrwareét. Nem lenne flash programozás, de nem is zavarna. Úgyis offline IDE-t használok, hogy működjön a debug.
  • Nucleo: Perifériák nem támogatása. Például: CAN busz a kezdetektől van az MBED platformon. Sok STM32 MCU-ban is van, az ST meg is csinálta hozzájuk a drivert. Csak éppen az ST HAL és az MBED API közé nem írták meg évekig az összekötő kódot... Szeptemberben végre belekerült. Egy bug miatt F103on nem megy. Azóta sem javították.
  • X-Nucleo: Elvileg a Nucleo családhoz tervezett shieldek, gyakorlatilag több esetben is azzal kellett kezdeni, hogy SMD ellenállásokat forrasszak egyik pozícióból a másikba. Hogy aztán jelezhessem a hibát, hogy nem megy a szoftver.
  • MBED: Kicsit buta az online IDE. Túlságosan leterhelt a szerver, lassú a build, néha elszáll.
  • MBED: Sokszor nem működik az export to offline IDE opció. Ha működik, akkor sem fordul le azonnal a projekt, egy csomó fordítási és include opciót kézzel kell átírni.
  • MBED: Keverés az OS verziók és a támogatott boardok között. Figyelem a mátrixot, végre lefordul, de mégsem működik az adott kombináció...

Sok IDE-t próbáltam már: Keil, CoIDE, Atollic, STM32 workbench, Visual Studio +VisualGDB, Em::Blocks, stb. Van, amelyik jó, de drága. Aztán van, amelyik jó, de nincs hozzá támogatás. Aztán van, ami nem működik. Meg az, ami működik.

 

Vettem egy nagy levegőt, és átrágtam magam a CubeMX-en. Szépen, logikusan össze lehet rakni a konfigurációt. Először mondjuk ijesztő a lehetőségek rengetege. :-) Működik a project export Atollic TrueStudio-ba, ahol aztán AZONNAL le is fordul, és AZONNAL fel is tölti a cél MCU-ra. A TrueStudio pedig kódméret nélkül ingyenes, csak néhány extra debug és kód analizáló feature fizetős.

 

Elsőre ijesztő volt az 1000 soros main.c, de találtam egy kapcsolót a CubeMX-ben, hogy a hardver init-et tegye külön c/h fájlokba, így lett gpio.h/c, usart.h/c, stb. A main.c pedig csak 300 sor, aminek kb fele komment, a másik fele pedig meghívja az initet az inklúdolt fájlokból. Jó, ez sok az Arduinohoz képest, de teljesen átlátható. Kb 5 perc volt hozzáadni két taskot a RTOShoz, az egyik egy blinky, a másik pedig soros porti kommunikáció. Tetszik, hogy nyugodtan használhatok delay-t, csak az adott szál várakozik. Az CubeMX generált kód bármikor újra generálható, ha szükség lenne funkciók hozzáadására. A felhasználói kód kommentekkel jelölve van, a jelölt részek közötti részek megmaradnak.

 

Úgyhogy most jöhet a fejlesztés.

Előzmény: Prof (44)