Fórum témák

» Több friss téma
Fórum » STM32 - Blue Pill
 
Témaindító: Skori, idő: Dec 19, 2019
Témakörök:
Lapozás: OK   3 / 3
(#) benjami válasza Skori hozzászólására (») Jan 12, 2020 / 1
 
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).
(#) vargham válasza Skori hozzászólására (») Jan 13, 2020 / 1
 
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.
(#) Skori válasza benjami hozzászólására (») Jan 13, 2020 /
 
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?
(#) vargham válasza Skori hozzászólására (») Jan 13, 2020 /
 
Arduino?
(#) vargham válasza Skori hozzászólására (») Jan 13, 2020 / 1
 
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.
(#) Skori válasza vargham hozzászólására (») Jan 13, 2020 /
 
Köszönöm, ez hasznos volt. Frissítettem is vele az STlink firmware-t.
(#) benjami válasza Skori hozzászólására (») Jan 13, 2020 / 1
 
É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.
(#) vargham válasza benjami hozzászólására (») Jan 13, 2020 /
 
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.
(#) benjami válasza vargham hozzászólására (») Jan 13, 2020 /
 
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
(#) vargham válasza benjami hozzászólására (») 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.
(#) vargham válasza benjami hozzászólására (») Jan 13, 2020 / 1
 
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
(#) benjami válasza vargham hozzászólására (») Jan 13, 2020 / 1
 
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.
(#) Skori hozzászólása Jan 13, 2020 / 1
 
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?
(#) vargham válasza Skori hozzászólására (») Jan 13, 2020 / 2
 
Én ezt tenném.
B verzió, hogy maradsz az Arduino-nál. Engem mondjuk halálra idegesítene a limitáltsága.
(#) usane válasza vargham hozzászólására (») Jan 13, 2020 / 2
 
Engem már halálra idegesített
(#) mcucoder hozzászólása Szo, 12:24 / 1
 
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.
(#) vargham válasza mcucoder hozzászólására (») Szo, 15:04 /
 
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.
(#) usane válasza mcucoder hozzászólására (») Szo, 20:27 /
 
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.
(#) vargham válasza mcucoder hozzászólására (») Vas, 16:56 /
 
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ó.
Következő: »»   3 / 3
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu