 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
mosqito Član


Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3531 Aktiv.: 31.54
|
Objavljeno: Ned Avg 14, 2022 10:00 pm Naslov sporočila: |
|
|
V urejevalniku se pojavi datoteka main.c, ki je seveda prazna.
Za začetek napišemo eno minimalno kodo. Lepo je, da ne pozabmo na ustrezen komentar.
Koda: |
/**
* @file main.c
* @author Clan foruma elektronik.si
* @brief Moja prva vaja na mikrokontrolerju STM32
*
*/
int main(void) {
int i=0;
while (1) {
i++;
}
}
|
Pritisnemo "F7" za build in po nekaj trenutkih je naš prvi program preveden. Spodaj v statusnem oknu se izpiše:
Citiram: |
Build started: Project: forumvaja1
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'Target 1'
assembling startup_stm32g031xx.s...
compiling main.c...
compiling system_stm32g0xx.c...
linking...
Program Size: Code=308 RO-data=208 RW-data=0 ZI-data=1632
".\Objects\forumvaja1.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:01 |
Opis: |
|
Velikost datoteke: |
72.62 KB |
Pogledana: |
4 krat |

|
_________________ Always going the extra mile. |
|
Nazaj na vrh |
|
 |
mosqito Član


Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3531 Aktiv.: 31.54
|
Objavljeno: Ned Avg 14, 2022 10:07 pm Naslov sporočila: |
|
|
Sedaj je pa čas, da si izdelamo modul po shemi iz prve objave in ga priklopimo na ST-link. V tehnologijo izdelave in spajkanja se ne bom vtikal. Bo pa ta modul v kratkem tudi na zalogi v obliki kit kompleta.
V glavnem, ko smo si izdelali tiskanino (priloga je za toner-transfer), predlagam, da gre na tiskanino najprej regulator, sledi preverjanje napajalne napetosti (3,3V), potem pa naspajkamo še vse ostalo.
Tiskanina ima tudi eno prevezavo (TX-Out), ki jo naredimo z žičko.
Opis: |
|
Velikost datoteke: |
2.05 MB |
Pogledana: |
9 krat |

|
Opis: |
|
 Download |
Ime datoteke: |
fauxNixieTT.pdf |
Velikost datoteke: |
21.15 KB |
Downloadano: |
2 krat |
_________________ Always going the extra mile.
Nazadnje urejal/a mosqito Ned Avg 14, 2022 10:15 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
 |
mosqito Član


Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3531 Aktiv.: 31.54
|
Objavljeno: Ned Avg 14, 2022 10:14 pm Naslov sporočila: |
|
|
Razpored priključkov za ST-link je viden spodaj (4 blazinice). Za to prvo vajo ne rabimo ničesar drugega, kot 4 žice (SWCLK, SWDIO, GND in +3V3) direktno povezane na ST-link.
Prilagam še KiCad projekt.
Opis: |
|
Velikost datoteke: |
160.11 KB |
Pogledana: |
5 krat |

|
Opis: |
|
 Download |
Ime datoteke: |
FauxNIXIE-Display.zip |
Velikost datoteke: |
99.43 KB |
Downloadano: |
1 krat |
_________________ Always going the extra mile. |
|
Nazaj na vrh |
|
 |
mosqito Član


Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3531 Aktiv.: 31.54
|
Objavljeno: Ned Avg 14, 2022 10:20 pm Naslov sporočila: |
|
|
Če je vse skupaj prav priključeno in ima ustrezno napajanje, lahko preverimo, ali je tudi SWD prav priključen.
V uVision IDE kliknemo na "čarobno palico", oz. Options for target.
V zavihku "Debug" izberemo pri izbiri "Use"... ST-Link debugger in kliknemo na "Settings".
Opis: |
|
Velikost datoteke: |
95.07 KB |
Pogledana: |
3 krat |

|
_________________ Always going the extra mile. |
|
Nazaj na vrh |
|
 |
mosqito Član


Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3531 Aktiv.: 31.54
|
Objavljeno: Ned Avg 14, 2022 10:24 pm Naslov sporočila: |
|
|
Pojavi se novo okno, v katerem se na levi izpišejo podatki o ST-link vmesniku, na desni pa podatki o mikrokontrolerju. Če kaj od tega manjka, pomeni, da je napaka pri sestavljanju in povezovanju vezja in ST-linka. Preveriti je treba napajanje, razpored povezav in morda kakšne napakae pri spajkanju.
Kliknemo OK in se vrnemo v osnovni urejevalnik.
Če je vse OK, se izpiše takole (serijska številka bo seveda druga).
Opis: |
|
Velikost datoteke: |
82.9 KB |
Pogledana: |
2 krat |

|
_________________ Always going the extra mile. |
|
Nazaj na vrh |
|
 |
mosqito Član


Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3531 Aktiv.: 31.54
|
Objavljeno: Ned Avg 14, 2022 10:35 pm Naslov sporočila: |
|
|
Sedaj lahko pritisnemo "F8" ali pa ikono "Load" z dvema puščicama navzdol. S tem sprogramiramo interni flash mikrokontrolerja. V statusnem oknu se izpiše
Citiram: |
Load "D:\\!moje\\Projekti\\e.pavlin.si - FauxNIXIE\\SW\\za_forum\\sw\\Objects\\forumvaja1.axf"
Erase Done.
Programming Done.
Verify OK.
Flash Load finished at 22:24:44 |
Zdaj lahko preverimo, ali naš "program" res deluje. Za to seveda uporabimo debugger. Za razliko od arduino okolja tu ne potrebujemo nikakršnega izpisa na konzolo in podobnega, kar dodatno jemlje prostor v kodi in upočasnjuje delovanje. Za pričetek debugiranja kliknemo na ikonco s povečvalom ali pa pritisnemo Ctrl-F5. Izgled urejevalnika se spremeni in pojavijo se dodatna okna.
Na levi strani je status, ki prikazuje trenutno stanje registrov mikrokontrolerja in način izvajanja. Več o samem delovanju ARM cortex M0 je na voljo v knjižnici v osnovnem oknu urejevalnika na levi strani, kjer je okno Project. Spodaj kliknemo na zavihek "Books".
Sedaj pa se vrnimo na debugiranje: levo so torej eistri, desno je izvorna C koda, zgoraj pa (če nismo že kdaj prej zaprli tega pogleda) še disassemblerska koda, ki se izvaja in ustreza trenutni vrstici v C kodi.
Opis: |
|
Velikost datoteke: |
200.24 KB |
Pogledana: |
3 krat |

|
Opis: |
|
Velikost datoteke: |
104.77 KB |
Pogledana: |
1 krat |

|
_________________ Always going the extra mile. |
|
Nazaj na vrh |
|
 |
mosqito Član


Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3531 Aktiv.: 31.54
|
Objavljeno: Ned Avg 14, 2022 10:43 pm Naslov sporočila: |
|
|
Preprost primer debugiranja:
V datoteki main.c lahko postavimo break point (tu se bo izvajanje končalo). V sivi coni pred vrstico kliknemo, da se pojavi rdeč krogec. To predstavlja breakpoint. Sedaj pritisnemo na F5 ali kliknemo na ikono RUN (druga z leve v paleti zgoraj). Program se zažene in ustavi na vrstici z breakpointom. Spodaj vidimo trenutno vrednost spremenljivke "i". Program ponovno zaženemo in vsakič, ko se ustavi na breakpointu preverimo vrednost spremenljivke. Ta se povečuje za 1, kar je tudi prav.
Na levi strani lahko opazujemo vrednost registrov. Vidimo, da je prevajalnik za našo spremenljivko "i" uporabil register R0. Ker koda ne dela nič pametnega, je tudi disassembler koda sila enostavna (prištevanje registru R0 sprotno vrednost #1 in v naslednjem koraku skok nazaj na to vrstico):
Koda: |
0x080001F0 1C40 ADDS r0,r0,#1
0x080001F2 E7FD B 0x080001F0 |
Opis: |
|
Velikost datoteke: |
33.64 KB |
Pogledana: |
5 krat |

|
_________________ Always going the extra mile. |
|
Nazaj na vrh |
|
 |
mosqito Član


Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3531 Aktiv.: 31.54
|
Objavljeno: Ned Avg 14, 2022 10:53 pm Naslov sporočila: |
|
|
Toliko za prvo vajo. Sledi priprava in uporaba HAL knjižnice, inicializacija periferije, nastavljanje internega takta in konfiguracija HAL knjižnic.
Če je komu tak način "tečaja" všeč, naj mi prosim napiše. Če sem naredil kakšno napako, me opozorite, da popravim.
Predlagam pa tudi, da bi tole ponovili enkrat v živo. Interesenti se javite v tej temi:
https://www.elektronik.si/phpBB2/viewtopic.php?p=569834#569834
_________________ Always going the extra mile. |
|
Nazaj na vrh |
|
 |
Wrecker Član

Pridružen-a: Pet 11 Feb 2011 22:43 Prispevkov: 254 Aktiv.: 1.45
|
Objavljeno: Tor Avg 16, 2022 7:57 am Naslov sporočila: |
|
|
Res si se s tem fajn potrudil. Bravo. S tem vsak lahko začne od nule.
Jest komaj čakam, da zadeva steče in da boš razkril še kakšne bolj specialne trike in detajle.
|
|
Nazaj na vrh |
|
 |
mosqito Član


Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3531 Aktiv.: 31.54
|
Objavljeno: Sre Avg 17, 2022 9:46 am Naslov sporočila: |
|
|
Zdaj lahko dodamo HAL knjižnico za STM32G0. V projektu dodamo eno mapo "HAL":
Desni klik na "Target 1" in izberemo Add Group. Preimenujemo "New Group" v "HAL".
Iz GITHUB-a si prenesemo source kodo iz repozitorija (link na začetku):
https://github.com/STMicroelectronics/stm32g0xx_hal_driver
kar direktno v osnovno mapo projekta uVision, ki ga imamo na disku. S tortoise GIT to najlažje naredimo z GIT Clone (Slika spodaj).
Na disku se pojavi mapa "stm32g0xx_hal_driver".
Tako "kloniranje" ima veliko prednost, saj vsakič, ko se pojavi popravek ali nova verzija HAL driverja se enostavno prepiše nova verzija in imamo vedno zadnje stanje brez veliega truda.
Opis: |
|
Velikost datoteke: |
90.72 KB |
Pogledana: |
3 krat |

|
_________________ Always going the extra mile. |
|
Nazaj na vrh |
|
 |
mosqito Član


Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3531 Aktiv.: 31.54
|
Objavljeno: Sre Avg 17, 2022 9:52 am Naslov sporočila: |
|
|
V projektno skupino "HAL" dodamo vse iz podmape ".\stm32g0xx_hal_driver\Src" na disku, razen nekaj datotek, ki imajo v imenu "template". Na projektni skupini HAL desno kliknemo in izberemo "add existing files to group". Poklikamo na mapo ".\stm32g0xx_hal_driver\Src" in izberemo vse datoteke razen tistih s "template" v imenu.
Opis: |
|
Velikost datoteke: |
84.64 KB |
Pogledana: |
3 krat |

|
Opis: |
|
Velikost datoteke: |
307.57 KB |
Pogledana: |
4 krat |

|
_________________ Always going the extra mile. |
|
Nazaj na vrh |
|
 |
mosqito Član


Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3531 Aktiv.: 31.54
|
Objavljeno: Sre Avg 17, 2022 10:00 am Naslov sporočila: |
|
|
Na disku v projektni mapi ustvarimo še en direktorij in ga poimenujemo "inc". Tu bodo naše header (.h) datoteke.
Kliknemo na "čarobno palico" (Options for project). V zavihku "C/C++" dodamo to novo include mapo.
Opis: |
|
Velikost datoteke: |
35.61 KB |
Pogledana: |
1 krat |

|
Opis: |
|
Velikost datoteke: |
79.65 KB |
Pogledana: |
3 krat |

|
Opis: |
|
Velikost datoteke: |
124.58 KB |
Pogledana: |
1 krat |

|
Opis: |
|
Velikost datoteke: |
84.91 KB |
Pogledana: |
1 krat |

|
_________________ Always going the extra mile. |
|
Nazaj na vrh |
|
 |
mosqito Član


Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3531 Aktiv.: 31.54
|
Objavljeno: Sre Avg 17, 2022 10:04 am Naslov sporočila: |
|
|
Enako vajo ponovimo za mapo "stm32g0xx_hal_driver\Inc".
Opis: |
|
Velikost datoteke: |
75.27 KB |
Pogledana: |
1 krat |

|
_________________ Always going the extra mile. |
|
Nazaj na vrh |
|
 |
Proteus Član



Pridružen-a: Sre 15 Jun 2005 10:03 Prispevkov: 1943 Aktiv.: 8.20
|
Objavljeno: Sre Avg 17, 2022 12:59 pm Naslov sporočila: |
|
|
mosqito je napisal/a: |
Prilagam še KiCad projekt. |
A to moje oči prav vidijo?
Verjetno je to prvič v zgodovini SLO forumov, da je objavljen source TIV.
In to v programu, ki ga ni potrebno prihvatizirati preko Partis & Co.
|
|
Nazaj na vrh |
|
 |
mosqito Član


Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3531 Aktiv.: 31.54
|
Objavljeno: Sre Avg 17, 2022 1:04 pm Naslov sporočila: |
|
|
Haha. Saj imam tudi "baltium" s službeno licenco. Samo se mi ne zdi higienično, pa še to bi bilo spodbujanje piratiziranja, kar je domena ene druge skupnosti
_________________ Always going the extra mile. |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 494 dni
Powered by phpBB © 2001, 2005 phpBB Group
|