Fórum témák
» Több friss téma |
Ezzel a legegyszerűbb. De ha egyszer rászánod magad, hogy megismerd valamelyik rendes fejlesztőeszközt, akkor azok is kezelik az st-link-et (csak ott nem kizárólag a programot feltölteni tudod vele, hanem futtatás közben "pillant-álj" üzemállapotban meg tudod nézni a változók és regiszterek tartalmát is).
Idézet: „Ezen, ha minden igaz ki van vezetve a reset is.” Sajnos nincs. Amit eddig rendeltem, azon a reset az STM8 sorozathoz való SWIM debugger resete, és nem az ARM SWD resete. Valamiért az ST-Linken ez két külön lábon került megvalósításra. De az is lehet, hogy azóta változtatott a kínai. Idézet: „Az STlinkkel hogyan, milyen szoftverrel lehet a legegyszerűbben .bin fájlt feltölteni a bluepill.re?” ST-Link Utility, csak Windows STM32CubeProg, multiplatform A szoftverek letöltéséhez regisztrálnod kell az ST weboldalon.
Ezt próbáltam: System Workbench for STM32, de az arduinohoz képest eléggé "pilótavizsgásnak" tűnik az egész, és baromi lassú is.
Tudsz olyan fejlesztőkörnyezetet ajánlani ami kisebb ugrás az arduinohoz képest, illetve könnyebb megbarátkozni vele?
Először döntsd el, hogy milyen módon szeretnéd programozni az eszközt.
- Első lehetőség a CMSIS használta. Ez semmi mást nem ad neked, mint az adott ARM CPU regiszter definícióit. A perifériák gyártótól függőek, az adatlapból veszed az összes regisztert és beállítást. - STM32 Standard Peripheral Libraries. (A CPU kezelés a CMSIS-re épül.) Felhagytak a fejlesztésével, nem is mindegyik sorozathoz érhető el. - STM32 HAL / LL. Ez az aktuális vonal. (A CPU kezelés a CMSIS-re épül.) A HAL több funkciót ad, magasabb szintű, jobban hordozható. Az LL alacsonyabb szint, többet kell neked írnod, cserébe többet is enged. Van egy-egy szép nagy könyvtárad, külön minden sorozathoz. Az adott eszköz regiszter definícióitól kezdve egészen maas szintű periféria kezelésig. - STM32 CubeMX. Grafikus szoftver, ahol nagyon egyszerűen konfigurálhatod a mikrokontrollert. Órajeleket, perifériákat, FreeRTOS-t, mindent. A végén komplett, C nyelvű projektet generál. Választhatsz, hogy HAL vagy LL libeket használjon. - Végül választasz egy IDE-t. Ez lehet a Keil, 32 kByte-ig ingyenes. Aztán ott van a CubeIDE, ami az ST sajátja, Eclipse származék. Visual Studio Code-hoz is van plugin. Én Visual Studio-t használok (nem Code!), VisualGDB pluginnel. A VS ingyen van, a plugin 100 dollár.
Köszönöm, ez hasznos volt. Frissítettem is vele az STlink firmware-t.
Én a System workbench helyett az atollic truestudio v9.2.0-t használom. Ez eléggé hasonlít a workbench-re, de számomra kicsit letisztultabbnak tűnik. Project létrehozáshoz a cubemx-et szoktam használni, abból is a régi 4.27.0 verziót. Ez használható sebességgel működik a munkahelyi laptopomon is (core 2 duo T6400 2GHz, 4GB ram). Az újabb cubemx-ek (amik úgy látom java-sítva lettek) sajnos tényleg borzasztó lassúak ezen az összeállításon.
A CubeMX összes verziója Java.
A TrueStudio egy fizetős szoftver volt. Megvette a céget az ST, és most CubeIDE néven fut. Eclipse alapú, aki használt már Eclipset, annak ismerős lesz.
Jogos. Tényleg Java alapú a régi CubeMX is. Viszont a v5.x.x verzióktól teljesen megváltozott a program felülete (számomra sokkal áttekinthetetlenebb is lett), és a fentebb említett gépen használhatatlanra lassult. A CubeIDE a Truestudio és a CubeMX egybegyúrásával jött létre, de az egybegyúrás előtt és az Atollic felvásárlása után volt egy időszak amikor csak STM vezérlőkhöz használható ingyenesen letölthető önálló Truestudio is létezett.
A hozzászólás módosítva: Jan 13, 2020
Idézet: „Viszont a v5.x.x verzióktól teljesen megváltozott a program felülete (számomra sokkal áttekinthetetlenebb is lett)” Van benne valami. Azt viszont vedd figyelembe, hogy a 4.x verziónál már nem frissülnek az MCU HAL csomagok sem. És nem tudod vele az újabb MCU családokat kezelni. Például L4 esetén 1.13.0 a legfrissebb csomag a 4-ben, míg az 5-ös verzióban már 1.15.0, amiben újabb funkciók és hibajavítások is vannak. Ugyanígy hiányzik belőle a teljes G0, G4, L5 család is. Idézet: „core 2 duo T6400 2GHz, 4GB ram” Ha a mikrokontrolleres fejlesztés a munkád része, akkor miért nem cserélik le neked ezt a régi gépet? A mi cégünk sem túl gazdag (startup), de senkinek sincs 3. generációs i5-nél (8 GB RAM) gyengébb gépe. Még az anyagbeszerzőnek sem. Általában megvettük használtan. Minden másodperc bérköltsége kidobott pénz, amit a dolgozó a gépre várva tölt. A hozzászólás módosítva: Jan 13, 2020
Nem a munkám része, csak néha ott is van egy kis időm a hobbimmal foglalkozni. Otthon meg fel van rakva a régi és az újabb CubeMX is, meg a CubeIDE is (elférnek egymás mellett), az újabb MCU családokkal meg még amúgy sem foglalkoztam.
Hát most egy kicsit kavalkád van, hogy merre is tovább. Nincs szükség sokféle processzor kezelésére, és nem munkáról, hanem hobbiról van szó. Azaz olcsó bluepill panelekből szeretnék ezt-azt építeni, és ezeket a paneleket programozni.
Ha jól értem, akkor ha felteszem pl. a CubeIDE-t, akkor az tartalmaz mindent ami a bluepill programozásához kell, azaz teljes körűen (és a lehetőségekhez képes felhasználóbarát módon) tudnám programozni ezeket a kis paneleket?
Én ezt tenném.
B verzió, hogy maradsz az Arduino-nál. Engem mondjuk halálra idegesítene a limitáltsága.
Senkit nem akarok megbántani !
Lehet hogy lusta és kényelmes vagyok, de bármilyen mikrovezérlőre történő kódírásnál az alábbi szempontok szerint járok el : 1. A programot azért írom, hogy elvégezzen valamilyen feladatot. 2. Nem szeretném az alapvető periféria kezelő rutinokat (EEPROM, Flash memória, I2C, SPI, ...) is saját magam megírni, túlnyomórészt a főfeladatra szeretnék koncentrálni. (Meg tudnom írni a per. rutinokat, anno még lebegőpontos szubrutin gyűjteményt is írtam assemblerben, de ma már nem tenném, kevés az időm). 3. Szivesen használom az előre megírt "library"-kat, melyek kompletten lekezelnek adott célra kifejlesztett IC-ket, modulokat, (pl:NRF24L01, LoRa modulok, ESP8266 ...) és már sok tízezren használják, "tesztelik". 4. Próbálom tudásom szerint "hibamentesre" megírni a programot ( ami azért ritkán sikerül ), így igen ritkán van szükségem lépésenkénti futtatásra (debug) és minden lépésnél a változó értékek megjelenítésére. 5. Kritikus programsoroknál viszont kiíratom a szükséges változók értékeit, de ehhez nincs szükségem "lépésenkénti debug"-ra. Melyik mikrovezérlős fejlesztő környezetnek van a legnagyobb felhasználói tábora (Ami egyúttal nagyon sok tesztelőt is jelent !) ? Melyik mikrovezérlős fejlesztő környezetnek van a legtöbb, szinte mindenre kiterjedő rutingyűjteménye ? Melyikben tud egy kezdő nagyon rövid idő alatt, pilótavizsga letétele nélkül pár kattintással elindulni ? Jó és rossz programot is lehet írni minden mikrovezérlőre, bármelyik fejlesztőkörnyezetben. A megírt program a programíró tudását (MCU hardver, szoftver) tükrözi, és nem a fejlesztőkörnyezet tudásszintjét. Idézet: „Melyik mikrovezérlős fejlesztő környezetnek van a legnagyobb felhasználói tábora (Ami egyúttal nagyon sok tesztelőt is jelent !) ? Melyik mikrovezérlős fejlesztő környezetnek van a legtöbb, szinte mindenre kiterjedő rutingyűjteménye ? Melyikben tud egy kezdő nagyon rövid idő alatt, pilótavizsga letétele nélkül pár kattintással elindulni ?” Arduino, azon belül is az AVR és az ESP Az alaprendszer tűrhető. A libek vegyesek, azon múlik, ki csinálta. mbed Egészen jó, RTOS alapú rendszer. Libekre ugyanaz vonatkozik, mint fentebb.
Ez nem az a téma, ezért nem offolom szét, csak annyit mondok, az összevissza libek miatt beleértve a gyáriakat is káosz az egész.
Idézet: „5. Kritikus programsoroknál viszont kiíratom a szükséges változók értékeit, de ehhez nincs szükségem "lépésenkénti debug"-ra.” Első hiba. Gondolom, soros porton teszed. Ennek pedig hatása van a program futására. Elég sok CPU órajel ciklus, mire kiküldi az üzenetet, ez pedig megváltoztatja a rendszer időzítését... Szenvedtem már olyan hibakereséssel, ahol a debug (sokat logoló) szoftver kiválóan működött, a release build pedig furcsa hibákat produkált. Idézet: „4. Próbálom tudásom szerint "hibamentesre" megírni a programot ( ami azért ritkán sikerül ), így igen ritkán van szükségem lépésenkénti futtatásra (debug) és minden lépésnél a változó értékek megjelenítésére.” Egy debugger messze nem csak ezekre a dolgokra való. - Gyorsabban tölti fel a programot, mint a soros bootloader. - A legtöbb mikrokontrollerben vannak konfigurációs bitek, mint például órajel forrása, kódvédelem, BOR, bootloader, stb. Ezeket csak programozóval tudod írni, olvasni. -Sokkal kisebb, vagy egyáltalán nincs CPU terhelése a változók figyelésének. Általában külön hardver rész gondoskodik a kommunikációról. -A kód átírása, és újrafordítása nélkül tudod változtatni, hogy mely változókat figyeled. -A memória (változók) nem csak olvasható, hanem írható is. Tehát teszt jelleggel belenyúlhatsz menet közben a programba, átírhatod a változók értékét. -Léteznek feltételes töréspontok is. -A megállított programban látod a teljes hívás történetet, hogy hogyan jutott oda a programod, ahol éppen tart. -Interrupt kontextben is lekérdezheted a változók értékét. (ISR-ből ugye nem írunk hosszasan perifériát.) -A CPU összes regiszterének értékét listázhatod. -Hiba esetén áttöltheted a PC-re a teljes memóriatartalmat, hogy ott elemezd ki. Real time alkalmatásoknál sokszor nincs idő logolásra, mert felborítaná az időzítést. Ilyenkor RAM-ba szoktunk logolni, és hiba esetén a debuggerrel nézzük meg a logot. -Megállítja a watchdog timert, amíg megállítod a program futását. És még sok minden másra is jó.
Sziasztok!
Kezdek ismerkedni a Blue pillel. Arduinos környezetben eljutottam a led villogtatásig, UART, Timer interrupt. Próbaként csináltam egy projektet a CubeMX-el. Kérdésem az lenne hogy van e lehetőség a CubeMX -ben generált configurácios kód átvitelére Arduino Ide alá? Köszi Szabolcs.
Szerintem nem lehet. De ha belegondolsz, akkor a CubeMX-ben egy csomó olyan dolgot be tudsz állítani, ami az Arduino környezetbe "fixen bele van drótozva", ez meg még ellentmondásokhoz is vezetne.
Attól függ mi a zsák utca Mi a cégnél a CubeMX-et használjuk.
Arduinot pl soha nem használnánk. El kell döntened mi a cél(hobbi vagy komoly) Ha hobbi akkor Arduino(bár én otthon is CubeMX) Komoly hobbi akkor CubeMX. Nagyon jól dokumentált a CubeMX(HAL könyvtára) Annyi van hogy a milliónyi libet neked kell megírnod. Ami már az Arduinoban meg van. Persze nem is tudod mi történik a háttérben.
Hobbi célra megy, de nem egyszerű a program.
Az eddigi verziók DsPIC33EP re épültek, most kipróbálnám ezt az irányt is. Az arduinoban épp a megirt libek és a gyors haladás tetszett. A Blue pill valószínűleg csak az ismerkedésre lesz elég. Véglegesre egy F4 vagy F7 Nukleo lesz.
Akkor jobban teszed ha elfelejted az Arduino-t, mert talán 1-2 F4 típus még van benne támogatva, de F7 nem hiszem. Ha az F7 sem lenne elegendő, a H7-el még tovább lehet fokozni dolgokat.
Ahogy gyűjtöm a netről az infókat, sok helyen írják hogy vannak mintaprogik.
Konkrétan mégse találok.
A HAL mellé a gyártó is ad egy csomó mintaprogramot.
CubeMX: Help / Updater Settings... menüpont A megjelenő ablakban mutatja a könyvtárat, ahová a csomagokat telepítette. Elmész abba a könyvtárba, és ott lesz az összes telepített MCU család (F1, F4, stb) Belemész valamelyik mappájába (pl STM32Cube_FW_F4_V1.25.0), és azon belül a Projects mappába. Na, ott vannak a mintaprogramok eszköz (Nucleo, Discovery, Eval), és funkció (ADC, DAC, SPI, FATfs, FreeRTOS, stb) szerint csoportosítva. A hozzászólás módosítva: Márc 4, 2020
Akkor én valamit össze keverek.
Az MX nem az IDE része? Nálam az IDE van feltelepítve.
Régebben önálló program volt, mellette meg volt a Systemworkbench és a Tuestudio (egy rövid ideig miután az ST felvásárolta az Atollicot). Azután egybegyúrták ezeket és elnevezték STM32Cubeide-nek.
A hozzászólás módosítva: Márc 4, 2020
|
Bejelentkezés
Hirdetés |