STM32 discovery-board, lämplig programvara?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
snigelen
Inlägg: 815
Blev medlem: 8 maj 2009, 11:02:14
Ort: Lund

Re: STM32 discovery-board, lämplig programvara?

Inlägg av snigelen »

En liten notering. Den där guiden verkar vara för Rev. B av STM32L100 discovery. Den har STLINK/V2 som debug-interface. Den ursprungliga STM32VL discovery, som du (och jag) har, har ett STLINK/V1-interface. Kanske inte EM::Blocks klarar det? Jag ser i all fall ingenstans där man kan välja V1/V2.
Användarvisningsbild
SeniorLemuren
Inlägg: 8426
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: STM32 discovery-board, lämplig programvara?

Inlägg av SeniorLemuren »

Japp, det stämmer att jag har en STM32F100 processor på kortet. Jag har snart blodtryck i närheten av hjärnblödning också.

Jag lyckades att komma så långt så att det gick att göra den första builden, men när det kom till att addera filer från STM32L1xx_StdPeriph_Driver så sket det sig ju naturligtvis. Jag missade L där det borde vara ett F. Nu letar jag efter STM32F1xx_StdPeriph_Drive och börjar om från början. :shock: :vissla: :evil: :doh: :mrgreen:
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: STM32 discovery-board, lämplig programvara?

Inlägg av mri »

Skummade igenom den där tutorialn. Mycket text så jag orkar inte läsa igenom den.
Dock laddade jag ner senaste version av Em::Blocks (2.30) eftersom jag inte brytt mig om att upgradera på en tid.
Jag kör Windows XP.
Pluggade i mitt STM32F0-Discovery som jag faktiskt inte testat tidigare. Det hade nåt default blink program som startade när det fick spänning från USB.
Skapade ett nytt projekt i Em::blocks för processorn STM32F051R8 som sitter på det här kortet. Alla default inställningar förutom "Run to main()" i debuggern. Jag har ingen aning om kristallen matchar klockfrekvensen som confas default i system_stm32f0xx.c. Jag kollade heller inte om minnet var rätt konfigurerat i länkscriptet (stm32f051r8_flash.ld).
Kompilerade projektet. Verkar som alla SPL filer dragits med i projektet.
Tryckte på debugger knappen (Start/Stop session).
Ett terminalföster öppnas och koden laddas över i processorn.

Kod: Markera allt

STLINK GDB Server (EmBlocks Oct  2 2014 21:12:49)
Shutdown after disconnect is active.
Connect under reset is active.

Connected to STlink/V2 probe at 003:004
Chip ID is 00000440, Core ID is  0bb11477.
Number of HW-breakpoints: 4
Listening at *:4242...
GDB connected.
Number of HW-breakpoints: 4
Number of HW-breakpoints: 4
Reset: system
GDB Program Transfer:
**
done.
Flash page at addr: 0x08000000 erased
Flash page at addr: 0x08000400 erased
Number of HW-breakpoints: 4
Reset: system
Write memory: address 0xE000ED08 (Data = 0x8000000)
Sedan syns programpekaren inne i main().
Färdigt att singelsteppa i koden.

Inte värre än så.

Har du installerat ST-LINK USB drivrutinerna?
Användarvisningsbild
SeniorLemuren
Inlägg: 8426
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: STM32 discovery-board, lämplig programvara?

Inlägg av SeniorLemuren »

Nej. Visste inte ens om att det behövdes. När jag plugga in enheten i USB-porten första gången, så kom nedanstående sida upp på datorn. Länkarna fungerar förstås inte, STM-sidan är väl omgjord från rörig till ännu rörigare antar jag.

Men i alla fall, eftersom det förekommer någon typ av kommunikation från kortet så trodde jag det var Ok.

Söker efter ST-LINK USB drivrutiner och hittar st_link V2 men enligt snigelen så hanterar kortet st_link V1. Kan det vara så att V2 är bakåtkompatibelt och går att använda.
internetsida.jpg
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: STM32 discovery-board, lämplig programvara?

Inlägg av mri »

De är antagligen bakåtkompatibla.

Det finns nån annan nyttig ST utility också. Har den inte installerad nu, men jag använde den en gång för att låsa upp flash minnet så att hela minnet kunde raderas. Det var på ett Embedded Pi kort som kommer förprogrammerad med nån sorts bootstrap loader som är skyddad genom att några flash sektorer är markerade som read-only.
Användarvisningsbild
SeniorLemuren
Inlägg: 8426
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: STM32 discovery-board, lämplig programvara?

Inlägg av SeniorLemuren »

mri skrev: Inte värre än så.
???? Jag skulle vilja påstå att det inte går att få till stånd en felfri kompilering genom att följa denna fullständigt katastrofala beskrivnig. Jag har följt beskrivningen och naturligtvis använder jag de filer som är för STM32f10x i stället för STM32l1x.

Jag komer fram till :
Let’s see a quick search in the gateway header file could help us or not. The file is long but early parts (from line 69 to 87)
include some clues. It says something about the type choice about the MCU. Following that, we see the lines below after the line
89:
“USE_STDPERIPH_DRIVER”. Yes, this is what we are trying to do. So, looks like we have to implicitly tell to the toolchain we
want to use this library (driver). Let’s make this definition known by all files.
Open “Project / Build Options” from the menu and like we did before click on the Isildak on the left side. And click “Compiler
Settings”, “#defines” respectively. (You had something similar before, while deleting “__DONT_INIT_VTABLE” keyword,
remember? But it was only one build configuration. This time you will add a keyword definition and alternatively it will be for all
of our build configurations.)
For a new line hit enter after the “STM32L1XX_MDP” statement and write down the keyword we just saw in the “stm32l1xx.h”
file: “USE_STDPERIPH_DRIVER” (without the quotes). Click OK to close the window. And build the project again.
Jaha? Till att börja med. Vart hittar jag "the gateway header file"?

Sedan öppnar jag Project / Build Options och klickar på Compiler Settings”, “#defines”. Det öppnas då ett helt tomt fält, men som jag tyder instruktionen så skall där redan stå: STM32L1XX_MDP eller i mitt fall då STM32f10x_MDP efter det skall jag skriva: USE_STDPERIPH_DRIVER. Så här skiter det sig igen. Jag har testa med att skriva in STM32f10X_MDP på första raden och därefter USE_STDPERIPH_DRIVER och gjort Build igen. Rad upp och rad ner med error,error,error.

Ja, fortsätter man att läsa vidare i manualen så fattar man mindre och mindre av röran. Det värsta jag sett.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: STM32 discovery-board, lämplig programvara?

Inlägg av mri »

Men så skit i den där tutorialn då! Finns ju massor med skit på nätet producerat av glada amatörer. Det är tillåtet att tänka själv och prova.

Em::blocks har ju en helt fint fungerande och logisk Wizard och om man bara vet vad man har för processor så kan man välja defaults för resten av inställningarna. Då får man ett tomt projekt med SPL som garanterat kompilerar. Sen bygger man ut main.c med sin egen kod. Gör nu enligt följande steg, tar högst 5 minuter:

0. Se till att du installerat ST-LINK USB drivare
1. Starta Em::blocks 2.30
2. File / Close workspace
3. File / New / Project...
4. Välj STmicro-ARM
5. Go
6. Next >
7. Fyll i vettigt projektnamn och path
8. Next >
9. Next >
10. Välj Cortex_M3 (F10x - F2xx - L1xx -W108xx)
11. Next >
12. Välj STM32F10x
13. Next >
14. Kolla exakt typbeteckning på kapseln. Välj STM32F100RB från dropdown.
15. (Notera att "Standard Peripheral Library" är ikryssad som default.)
16. Finish
17. Ok
18. Välj Target settings fliken och kryssa i "Run to main()". (Inte nödvändigt men trevligt)
19. Ok
20. Build / Build target
21. Jag får följande build meddelanden:

Kod: Markera allt

-------------- Build: Debug in test2 ---------------

Compiling: SPL\src\misc.c
Compiling: SPL\src\stm32f10x_adc.c
Compiling: SPL\src\stm32f10x_bkp.c
Compiling: SPL\src\stm32f10x_can.c
Compiling: SPL\src\stm32f10x_cec.c
Compiling: SPL\src\stm32f10x_crc.c
Compiling: SPL\src\stm32f10x_dac.c
Compiling: SPL\src\stm32f10x_dbgmcu.c
Compiling: SPL\src\stm32f10x_dma.c
Compiling: SPL\src\stm32f10x_exti.c
Compiling: SPL\src\stm32f10x_flash.c
Compiling: SPL\src\stm32f10x_fsmc.c
Compiling: SPL\src\stm32f10x_gpio.c
Compiling: SPL\src\stm32f10x_i2c.c
Compiling: SPL\src\stm32f10x_iwdg.c
Compiling: SPL\src\stm32f10x_pwr.c
Compiling: SPL\src\stm32f10x_rcc.c
Compiling: SPL\src\stm32f10x_rtc.c
Compiling: SPL\src\stm32f10x_sdio.c
Compiling: SPL\src\stm32f10x_spi.c
Compiling: SPL\src\stm32f10x_tim.c
Compiling: SPL\src\stm32f10x_usart.c
Compiling: SPL\src\stm32f10x_wwdg.c
Compiling: src\main.c
Compiling: src\startup_stm32f10x_ld_vl.S
Compiling: src\system_stm32f10x.c
Linking executable: bin\Debug\test2.elf
Process terminated with status 0 (0 minutes, 18 seconds)
0 errors, 0 warnings (0 minutes, 18 seconds)


bin\Debug\test2.map|1|Program size (bytes):    1392|
||Data size    (bytes):     104|
||BSS size     (bytes):      28|
||             ----------------|
||Total size   (bytes):    1524   (R/W Memory: 132)|
|||
||=== Build finished: 0 errors, 0 warnings (0 minutes, 18 seconds) ===|
Alltså, Em::blocks har färdigt inkluderat hela SPL åt dig i projektet. Du behöver inte allt där för att blinka en lysdiod såklart.

22. Debug / Start/Stop Debug Session
23. Ett terminalfönster med GDB skall öppnas och koden laddas över till kortet
24. Meddela när du kommit såhär långt, eller vilket steg som fallerade
Användarvisningsbild
SeniorLemuren
Inlägg: 8426
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: STM32 discovery-board, lämplig programvara?

Inlägg av SeniorLemuren »

Ok så där långt hade jag kommit. Det var när jag gjorde detta som det gick fel.
After copying, you should add the necessary files to our project to make it compiled in builds. Click “Project / Add Files” menu
item and select “stm32l1xx_rcc.c” and “stm32l1xx_gpio.c” files from the “STM32L1xx_StdPeriph_Driver\src“ folder and click
“Open”.
När jag tog bort dssa så fick jag inga felmeddelanden.

När jag klickar på Debug / Start så kommer det upp ett dosfönster för någon sekund. och sedan ett felmedelande:
Debug server is closed/terminated. Session vil stop.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: STM32 discovery-board, lämplig programvara?

Inlägg av mri »

Aha, ok. Så i tutorialn skall man bygga upp SPL "omgivningen" själv. Det går ju förvisso om man håller tungan rätt i mun. Nu kan du ju skippa den biten eftersom Em::blocks fixar det åt dig.

Det finns säkert nån slags debug-log funktionalitet i Em::blocks/GDB men jag vet inte hur man aktiverar den.

När du pluggar in ditt kort till datorn, ser du enheten i Device Managern under Universal Serial Bus Controllers?
När jag pluggar in en äkta ST-LINK/V2 eller mitt STM32F0-Discovery kort dyker det upp en "STMicroelectronics STLink dongle" enhet där.
snigelen
Inlägg: 815
Blev medlem: 8 maj 2009, 11:02:14
Ort: Lund

Re: STM32 discovery-board, lämplig programvara?

Inlägg av snigelen »

mri skrev:De är antagligen bakåtkompatibla
Nej jag tror inte det, det är helt olika USB-protokoll som används. Jag tror att STLINK/v1 som är på STM32VLDISCOVERY är att betrakta som obsolete, det har inte används sedan de släppte det kortet.
Det var väldigt besvärlig att implementera v1 under Linux eftersom det var något kludd inbakat i någon SCSI grunka och bröt den ena standarden efter den andra.
Användarvisningsbild
SeniorLemuren
Inlägg: 8426
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: STM32 discovery-board, lämplig programvara?

Inlägg av SeniorLemuren »

Bara UCD Mass Storage Device. och när jag ansluter kortet så plingar det och en HTML-sida dyker upp med 3 länkar till http://www.st.com/ ingen av dom länkarna finns på hemsidan. Ingenting annat syns.

Jag har nu änligen fått builden att gå igenom felfritt med ett blinkprogram efter 20 timmars strulande. Det är ju själva f"¤%& att det inte går att få kontakt med kortet.

Jag har installerat st-link_v2_usbdriver.exe utan felmedelanden. Jag har sökt men inte funnit någon version st-link_v1, vilket tydligen är vad som behövs. Fattar inte att man tagit bort V1 drivern från hemsidan. Vill man att man skall kasta bort gamla kort? Jag blir så förbannad!
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: STM32 discovery-board, lämplig programvara?

Inlägg av lillahuset »

Hur svårt kan det vara?

Det här är nog vad du är ute efter:
http://www.st.com/web/en/catalog/tools/ ... 7/PF258166

Det tog nog bortåt trettio sekunder att hitta den.
snigelen
Inlägg: 815
Blev medlem: 8 maj 2009, 11:02:14
Ort: Lund

Re: STM32 discovery-board, lämplig programvara?

Inlägg av snigelen »

Det lär finnas en fix för att få STLINK/V1 att fungera med EM::Blocks enligt denna sida på EM::Blocks forum.
Användarvisningsbild
SeniorLemuren
Inlägg: 8426
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: STM32 discovery-board, lämplig programvara?

Inlägg av SeniorLemuren »

Ja jäklar du lillahuset. Den där filen har jag sett men av misstag tolkat 002 i filnamnet som version 2. Tänk hur det kan bli när man sitter framför skärmen sedan kl 7 i morse.

I alla fall, jag avinstallerade V2 och installerade V1. Ingen framgång. Den syns inte på Universal Serial Bus Controllers lista.

jag installerade fixprogrammet och samma där ingen fil med namnet STM32 STLink finns i listan över installerade drivrar. Endast dessa kommer upp.
zadig.jpg
Så här borde det se ut.
Som det visas här på bilden.
Så jag vet inte vad som går fel i installationen av ST-link driver. Installationen går igenom utan fel, men lämnar inga spår efter sig i listan. Jag har även startat om datorn, inget hjälper. Får nog faan ge upp ändå och kasta skiten.

Edit: Fick mitt ChipKIT Uno32 idag och den kommer upp direkt på Universal Serial Bus Controllers lista som FT232R USB UART så jag får väl börja leka med den i stället. Tråkigt att behöva ge upp bara så där efter så mycket jobb. :( :( :(
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
SeniorLemuren
Inlägg: 8426
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: STM32 discovery-board, lämplig programvara?

Inlägg av SeniorLemuren »

Så där. Det var lite skillnad på grejor. :)

Det tog ca. en timme att ladda hem programvara, installera drivrutiner, programmera blinka diod. Med chipKit Uno32 som bygger på en PIC32MX320F128.

Tyvärr hade jag inte fått hem PICkit3 så jag körde via chipKIT Development Platform och USB. Lätt som en plätt. Så nu kan STM32-skiten vara, (om ingen har ett trovärdig anledning att fortsätta plåga sig för att få fart på den). Jag tycker möjligheterna är uttömda.
Skriv svar