Fórum témák
» Több friss téma |
Kíváncsiságból telepítettem az EmBitz-et.
Első betekintésre jónak tűnik! Amit nem találok elsőre. Hol lehet a programozónak beállítani az ST-Linket? A létrehozott projectben nem találom az alap megszakítás rutinok létrehozását? (Vagy ez már házi feladat?)
"Amit nem találok elsőre. Hol lehet a programozónak beállítani az ST-Linket?"
F8, és indítja a debug-ot. Ha csak programozni akarsz, debug nélkül: 1. Install ST-LINK utility 2. EmBitz: Project / Properties... Build targets tab, check Generate Hex file Tools / Configure tools... Add Name: Flash with ST Link Executable: Parameters:
Directory:
A hozzászólás módosítva: Máj 26, 2017
Köszönöm ez megvan.
De, Sajnos nem sikerül a fordítás! Beraktam az: #include "stm32f4xx_gpio.h" Ott vannak benne a definíciók. : #define GPIO_Pin_12 ((uint16_t)0x1000) /* Pin 12 selected */ És mégis kapok rakat hasonló hibaüzenetet: 104. sor: #define LED4_PIN GPIO_PIN_12 .\inc\stm32f4_discovery.h|104|error: 'GPIO_PIN_12' undeclared here (not in a function)| A hozzászólás módosítva: Máj 26, 2017
Azért nagyon remélem, hogy tud ST-Link-kel debuggolni.
Este majd kipróbálom.
Más!
Telepítve: Plugins: uVision Project Loader És nem látja a Keil5-ös: Project.uvprojx ??? Nem is ismeri!! Ez sem egy telepítem, és működik IDE verzió! A hozzászólás módosítva: Máj 26, 2017
Tud debugolni, openocd-t használ.
Nagy dolgot ne várj, egy Eclipse alapú IDE, kb. azt tudja mint az általad említett " Eclipse + openocd + gnuarmeclipse pugin" kombó, csak általában működik OOTB. C++ projekttől szétesik a kódkiegészítés, és az indexelés. Bár vannak olyanok akik írták, hogy megy, tehát ez akár regresszió is lehet.
Ezek szabvány C projekttek:
Mégis szétesik?
Mi az, hogy szabvány C projekt? Ahány IDE, annyiféleképpen tárolják a projektet. A demo programokhoz adnak 3 féle projekt fájlt. Ezekkel a progikkal könnyebb a fordítás, mivel az összes környezeti változó, linkelt könyvtár, stb. be lett állítva. EmBitz-hez ezeket neked kell beállítanod. A dolgot bonyolítja, hogy az ST nem képes eldönteni milyen formában adja is oda a progikat. Pl.: Az SPL könyvtár alapú projekteket alapból létre tud hozni az EmBitz (csak csináld végig a varázslót). A demo-k persze valami köztes könyvtárakat tartalmaznak, ami se nem CubeMX se nem SPL (és most épp egy harmadik fajtát fejlesztenek...). Ez nem az EmBitz hibája, hanem az ST hülyesége.
A hozzászólás módosítva: Máj 26, 2017
Próbálkoztam a netről példát szedni a HAL könyvtárral de egyenlőre nem úgy tűnik hogy lementi az adatot bárhova is:
Ezt csináltam:
Ez egy fejlesztői kártya, amit programozol? Ha igen, tettél már rá előtte másik programot (ami használta ezt a területet 0x08007C00)? Ha nem vagy benne biztos, nézd meg az ST-Link Utility-vel mi van a flash ezen területén. Ha már használtad, akkor az írás előtt mindenképp törölni kell a területet tartalmazó flash lapot.
A hozzászólás módosítva: Máj 26, 2017
Sajnos nincsen rá több idöm!
Delette, EmBitz ment a levesbe!
0,0
Ez mit befolyásol egy már működő procinál? Fut a progi, lehúzom a programozó egy vezetékét és megáll. Bár ahogy nézem, nem az egész áll meg, hanem csak az RTC, a multiplexálás fut. De ha áramtalanítom, akkor a multiplexálás sem indul el. Vbat-ra 3,3V kötve vagyon.
Az EmBitz-ről nekem ellentétes véleményem alakult ki.
- fél óra alatt ment a debug, a printf, minden ST-Link-kel Amit szerettem volna, arra elég. Tud debuggolni, látom a változókat, megy a printf, nem is foglal 600 MByte-ot, nekem tetszik, bejött.
Közben én is találtam tanítást hozzá:
Bővebben: Link Azt hiszem, még egyszer neki veselkedek a project építésnek! Kisebb lépéssekkel. A hozzászólás módosítva: Máj 26, 2017
Köszi ez jó ötlet, szoktam használni programozásra de eszembe sem jutott azzal ránézni a flash-re.
Rájöttem hogy a 32k csak 0x08002160 az utolsó cím így a használt 0x08007C01 sok volt. Azt átírtam így ez lett:
Most szépen le is tudom menteni az adatot de az a baj, hogy csak 1x. Utána már nem írja felül. Miért van ez? A hozzászólás módosítva: Máj 26, 2017
A flash úgy működik, hogy az 1-es bitet képes vagy 0-ra állítani. Visszafelé nem megy, 0 bitet nem tudsz 1-re állítani.
ARM alatt van egy utasítás, ami egy teljes page-et töröl, tehát minden bit 1-lesz, 0xFF-bájtok. Miután kitöröltél mindent, utána újraírhatod a page-et. A page mérete mikrovezérlőtől függ, STM32F103 alatt 1k-byte-os. Tehát, ha egy bitet akarsz módosítani, beolvasod a teljes page-et, átírod a bitet, törlöd a page-t (erase) és visszaírsz mindent. Talán HAL_FLASHEx_Erase ami téged érdekel, nem használtam még HAL-t... A hozzászólás módosítva: Máj 26, 2017
Én a legutolsó page-et használom config tárolásra, a programot nem írom felül.
Helo Valaki!
Már csak 2 hibám van az EmBitz projectben. Amire nem találom a javítást! A kod részlet:
És a hiba jelzés: ... .\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h|418|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'| .\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h|438|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'| .\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h|418|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'| .\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h|438|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'| ||=== Build finished: 4 errors, 25 warnings (0 minutes, 12 seconds) ===| Esetleg valaki tudja értelmezni?
Értem már. Elolvastam a ref manual ide eső részét + találtam a végén examplet a page erase dologra.
Visszaírtam a menteni kívánt adatok címét 0x08007C00 0x08007C02 0x08007C04 Ez a ref manual szerint a page 31 mivel 1k -egy page. felhasználtam a example kódot amit beraktam a main-be de nem törli a memóriát. STM utulityvel megnéztem érintetlen a 3 cím. Még az az azadt van benne amit korábban beállítottam. Nem lenne jó az erase kód?
A hozzászólás módosítva: Máj 27, 2017
És ha igy definiálnád a cimet?:
Tudná a fordító, hogy unsigned az értéked! A hozzászólás módosítva: Máj 27, 2017
Gondolom, a __STATIC_INLINE nem tetszik a fordítónak.
Köszönöm!
Ebben a formában elfogadta:
A __STATIC_INLINE nem része a szabványos C++-nak.
A 4xx-et még nem próbáltam ki, de 1xx alatt a core_cm3.h-ban deklarálva van:
Gondolom egy #include hiányzik, ami felkapja a core_cm3.h-t, vagy ilyesmit. A hozzászólás módosítva: Máj 27, 2017
Nem tiszta, hogy miért akarjátok újra megcsinálni a kereket.
Megírtak már mindent helyettetek. Nem kell túlzásba vinni a munkát.
Hiányzott a Lock / Unlock függvény előtte utána. Azzal már működik szépen.
Flash írás olvasás sikerült megcsinálni jól működik, köszönöm a segítséget.
Másik kérdésem lenne. USART kommunikációban hogyan oldjátok meg hogy a két fél tudja mit küld fogad éppen? Pl oda vissza akarok küldeni több féle adatot beállítást honnan tudja majd a poci, hogy én éppen az áram értékét küldtem és nem mondjuk a feszültség értékét. Ha Pl a 8 bit-ből az első 4-et használom pl valamiféle kódra amiről beazonosítja a fogadó fél hogy a kapott adat tulajdonképpen micsoda az jó irányelv? Vagy ti ezt hogy szoktátok. Most nem kódra vagyok kíváncsi csupán az elméletére hogy hogyan szoktátok. A hozzászólás módosítva: Máj 27, 2017
Sorosporton szövegesen kommunikálunk, karaktereket küldünk.
Kitalálunk 1 formátum szabályt, amit a túloldalon már tudsz értelmezni. Pl.: Volt, 12, mAmper, 800, … Erre kell írni szöveg értelmezőt. |
Bejelentkezés
Hirdetés |