STM32F4DISCOVERY i COOCOX pierwsze kroki miganie ledami

Rozmowy na temat układów elektronicznych sterowania obrabiarek CNC
Awatar użytkownika

Autor tematu
AOLEK
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 9
Posty: 376
Rejestracja: 17 lip 2011, 20:27
Lokalizacja: Świdnica

STM32F4DISCOVERY i COOCOX pierwsze kroki miganie ledami

#1

Post napisał: AOLEK » 13 paź 2012, 10:32

Dopiero za 8 razem udało mi się znaleźć przykładowy program migania ledami i go poprawnie skompilować. Myślę,że STM32F4 to przyszłość i jaknajbardziej przyda się do sterowania naszych maszyn CNC. Z momocą wójka google przetłumaczyłem niektóre komentaże, a z waszą pomocą chciałbym zrozumieć linijka po linijce tego kodu.

Kod: Zaznacz cały

 /****************************************************************************************************/
 /*                                                                                                  */
 /*    Name:        blinky.c                                                                         */
 /*                                                                                                  */
 /*    Purpose:    Test Program for STM32VLDiscovery - blinks the LEDs on and off at different rates */
 /*                (Green = 4 x Slower than Blue). Green is turned off if the button is pressed.     */
 /*                                                                                                  */
 /*    Created:    21st September 2010                                                               */
 /*                                                                                                  */
 /*    Author:        Paul Robson ([email protected])                                              */
 /*                Simonsson Fun Techonlogies (original work on code for STM32)                      */
 /*              STM32F4DISCOVERY adapation by A. Wassatsch                                          */
 /*                                                                                                  */
 /****************************************************************************************************/

 #define HWREG(x)         (*((volatile unsigned long *)(x))) 
 #define RCC             0x40023800
 #define RCC_AHB1ENR     (RCC + 0x30) 
 #define GPIOA             0x40020000
 #define GPIOA_IDR        (GPIOA + 0x10) 
 #define GPIOD            0x40020c00
 #define GPIOD_MODER     (GPIOD + 0x0) 
 #define GPIOD_BSRR      (GPIOD + 0x18) 

 #define STACK_TOP 0x20002000                                        /* To może poruszać się całkiem szybko! */

 void nmi_handler(void); 
 void hardfault_handler(void); 
 void delay(void); 
 int main(void); 

 /*  Four vectors - the starting stack pointer value, code entry point and NMI and Hard-Fault handlers */
 /*  Cztery wektory - początkowa wartość wskaźnika stosu, punkt wejścia kod i NMI i Hard-Fault teleskopowe */

 unsigned int * myvectors[4] 
 __attribute__ ((section(".isr_vector")))= { 
     (unsigned int *)    STACK_TOP,
     (unsigned int *)     main,
     (unsigned int *)    nmi_handler,
     (unsigned int *)    hardfault_handler
 }; 

 int main(void) 
 { 
     int n = 0; 
     int button; 

     HWREG(RCC_AHB1ENR) |= 0x08 | 0x01;   /* Enable the GPIOA (bit 0) and GPIOD (bit 3) Włącz GPIOA (bit 0) i GPIOD (bit 3) */
     HWREG(GPIOD_MODER) = 0x05000000;     /* Set GPIOD Pin 12 and Pin 13 to outputs     Set GPIOD Pin 12 i pin 13 na wyjścia */

     while(1) 
     { 
         delay();                                      /* A short delay */
         button = (( HWREG(GPIOA_IDR) & 0x1) == 0);    /* Read the button - the button pulls down PA0 to logic 0 Odczyt przycisk - przycisk ściąga PA0 logice 0*/
         n++;                                          /* Count the delays */
         if (n & 1) {                                  /* Copy bit 0 of counter into GPIOC:Pin 8 Kopiuj * 0 bit licznika do GPIOC: Pin 8*/
             HWREG(GPIOD_BSRR) = 1<<12 ; 
         } else { 
             HWREG(GPIOD_BSRR) = 1<<28; 
         } 
         if ((n & 4) && button) {                      /* Copy bit 4 of counter into GPIOC:Pin 9 if button pressed */
             HWREG(GPIOD_BSRR) = 1<<13 ; 
         } else { 
             HWREG(GPIOD_BSRR) = 1<<29; 
         } 
     } 
 } 

 void delay(void) 
 { 
     int i = 100000;                                   /* About 1/4 second delay Około 1/4 sekundy opóźnienia*/
     while (i-- > 0) { 
         asm("nop");                                   /* This stops it optimising code out Zatrzymuje on optymalizacji kodu z*/
     } 
 } 

 void nmi_handler(void) 
 { 
     return ; 
 } 

 void hardfault_handler(void) 
 { 
     return ; 
 }


SPRZEDAM dwie nakrętki kulowe 20x5 więcej w dziale GIEŁDA !

Tagi:

Awatar użytkownika

markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 13
Posty: 3975
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#2

Post napisał: markcomp77 » 13 paź 2012, 12:14

czy blinky.c to jest jeden plik z programem bez dodatkowych #includów?

[ Dodano: 2012-10-13, 12:17 ]
w wolnej chwili spróbuję kompilacji tego z linii w surowych (bez IDE) środowisku pod linuksem...

[ Dodano: 2012-10-13, 12:21 ]
a jak idzie komunikacja discovery z coIDE? (stlink)
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm

Awatar użytkownika

Autor tematu
AOLEK
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 9
Posty: 376
Rejestracja: 17 lip 2011, 20:27
Lokalizacja: Świdnica

#3

Post napisał: AOLEK » 13 paź 2012, 12:28

Ja mam to w COOCOX to co mam w poście wyżej jest w pliku main.c. Przy nowym projekcie podaje nazwe katalogu w kroku 1 i 2 wybór ARM i rodzaju procesora potem zaznaczam tak jak na zrzucie niżej i wszystkie potrzebne pliki lądują w katalogu którego nazwe podałem na samym początku.
Obrazek

[ Dodano: 2012-10-13, 12:39 ]
markcomp77 pisze:a jak idzie komunikacja discovery z coIDE? (stlink)
dopiero przedwczoraj kupiłem w necie jeszcze nieprzyszło :wink:
po kliknięciu deburdzera coś mi takiego wywala:"Console flasch download error"
SPRZEDAM dwie nakrętki kulowe 20x5 więcej w dziale GIEŁDA !

Awatar użytkownika

markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 13
Posty: 3975
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#4

Post napisał: markcomp77 » 13 paź 2012, 12:51

Obrazek

do tego punktu również dochodzi nawet pod wine pod linuksem coide.... gorzej z przesyłaniem do discovery

[ Dodano: 2012-10-13, 13:00 ]
Obrazek

tak wygląda konfig... w rameczce targetinfo sa parametry sieciowe...
czy to nie oznacza, że IDE komunikuje się z softem st-link via sieć -> 127.0.0.1:2009 (127.0.0.1 - to localhost - czyli ten sam komp)

to daje szansę na pracę pod linuksem !

muszę tylko odpalić debuger linuksowy (kiedyś odpalałem)
tylko czy protokół komunikacji jest ten sam?

wczoraj próbowałem, na szybko pracy pod windows - komunikacji nie było... może czegoś nie do grałem (np. numeru portu)
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm

Awatar użytkownika

Autor tematu
AOLEK
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 9
Posty: 376
Rejestracja: 17 lip 2011, 20:27
Lokalizacja: Świdnica

#5

Post napisał: AOLEK » 13 paź 2012, 13:05

Może problemem jest brak połączenia fizycznego z Discovery ?
Wczoraj gdzieś mi mignął przed oczyma taki temat.

[ Dodano: 2012-10-13, 13:08 ]
markcomp77 pisze:to daje szansę na pracę pod linuksem !
z tego co czytałem wczoraj na różnych forach to napewno pracuje pod linuxem.
SPRZEDAM dwie nakrętki kulowe 20x5 więcej w dziale GIEŁDA !

Awatar użytkownika

markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 13
Posty: 3975
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#6

Post napisał: markcomp77 » 13 paź 2012, 13:14

to pracuje pod linuksem... mam łączność (na parę sposobów)
ale mi chodzi o łączność pod linuksem pod Wine z coIDE

[ Dodano: 2012-10-13, 13:15 ]
Obrazek
ściąga z discovery

[ Dodano: 2012-10-13, 13:26 ]
tutaj jest sprawozdanie z łączenia się z linuksa (surowe środowisko.. linia bez IDE)
https://www.cnc.info.pl/topics65/rampa- ... htm#259830

[ Dodano: 2012-10-13, 13:28 ]
markcomp77 pisze: teraz zobaczę czy to działa...

[ Dodano: 2012-04-19, 11:38 ]

Kod: Zaznacz cały

smark@hpecik:~/ARM/stlink$ sudo ./gdbserver/st-util fu bar
non-option ARGV-elements: fu bar 
2012-04-19T11:36:28 INFO src/stlink-usb.c: -- exit_dfu_mode
2012-04-19T11:36:28 INFO src/stlink-common.c: Loading device parameters....
2012-04-19T11:36:28 INFO src/stlink-common.c: Device connected is: F4 device, id 0x20006411
2012-04-19T11:36:28 INFO src/stlink-common.c: SRAM size: 0x30000 bytes (192 KiB), Flash: 0x100000 bytes (1024 KiB) in pages of 16384 bytes
Chip ID is 00000413, Core ID is  2ba01477.
KARL - should read back as 0x03, not 60 02 00 00
init watchpoints
Listening at *:4242...
no i chyba łączność działa...
muszę poszukać, gdzie się ustawia port...
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm

Awatar użytkownika

Autor tematu
AOLEK
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 9
Posty: 376
Rejestracja: 17 lip 2011, 20:27
Lokalizacja: Świdnica

#7

Post napisał: AOLEK » 13 paź 2012, 13:34

A to co ? po odchaczeniu opcji: autodownload w opcjach debuggera.

Obrazek

[ Dodano: 2012-10-13, 13:35 ]
markcomp77 pisze:muszę poszukać, gdzie się ustawia port...
w opcjach debuggera obok
SPRZEDAM dwie nakrętki kulowe 20x5 więcej w dziale GIEŁDA !

Awatar użytkownika

markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 13
Posty: 3975
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#8

Post napisał: markcomp77 » 13 paź 2012, 13:42

AOLEK pisze:markcomp77 napisał/a:
muszę poszukać, gdzie się ustawia port...

w opcjach debuggera obok
hehe... szukałem gdzie zmienić port servera, gdy można zmienić port klient ;)
AOLEK pisze:A to co ? po odchaczeniu opcji: autodownload w opcjach debuggera.
debugger łączyć się chce ze sprzętem... anie może, bo go nie podłączyłeś... albo coś jest nie tak z konfiguracją łączenia
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm

Awatar użytkownika

Autor tematu
AOLEK
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 9
Posty: 376
Rejestracja: 17 lip 2011, 20:27
Lokalizacja: Świdnica

#9

Post napisał: AOLEK » 13 paź 2012, 13:47

hehe... szukałem gdzie zmienić port servera, gdy można zmienić port klient
działa ?
a na drugie pytanie: Listonosz jest daleko dlatego nie może się połączyć :mrgreen:

Teraz trzeba się zagłębiać w biblioteke STM32F4.
SPRZEDAM dwie nakrętki kulowe 20x5 więcej w dziale GIEŁDA !

Awatar użytkownika

markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 13
Posty: 3975
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#10

Post napisał: markcomp77 » 13 paź 2012, 14:01

AOLEK pisze:Teraz trzeba się zagłębiać w biblioteke STM32F4.
to jest temat wart publicznego przedyskutowania...
bo jest z tym niezła bonanza
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika CNC”