Goto page 1, 2, 3, 4 Next
Atlantis
Guest
Fri Jan 08, 2016 1:07 pm
Swoją zabawę z programowaniem MCU zaczynałem od AVR-ów. Muszę przyznać,
że Atmel jest firmą szczególnie sprzyjającą amatorom - udostępnili za
darmo środowisko i pełnosprawny kompilator.
Teraz eksperymentuję z PIC32 i o ile pierwsze wrażenia są bardzo
pozytywne, to w beczce miody jest też łyżka dziegciu - darmowa wersja
kompilatora XC32 obsługuje tylko optymalizację na poziomie -O1. Nie ma
możliwości włączenia wyższej, w tym Os, która pozwoliłaby zaoszczędzić
sporo miejsca we flashu MCU. Microchip nadrabia za to przygotowaniem
bibliotek do obsługi peryferiów, razem w wyższymi warstwami (stos USB,
stos TCP/IP).
Jak jest w przypadku innych rodzin? W przyszłości chciałbym się
przyjrzeć STM32. Jak wygląda robienie projektów na tę platformę z punktu
widzenia amatora? Dostępne jest darmowe środowisko i kompilator? Nie ma
żadnych ograniczeń w optymalizacji i/lub rozmiarze generowanego kodu?
Artur Miller
Guest
Fri Jan 08, 2016 1:45 pm
W dniu 2016-01-08 o 13:07, Atlantis pisze:
Quote:
Swoją zabawę z programowaniem MCU zaczynałem od AVR-ów. Muszę przyznać,
że Atmel jest firmą szczególnie sprzyjającą amatorom - udostępnili za
darmo środowisko i pełnosprawny kompilator.
Teraz eksperymentuję z PIC32 i o ile pierwsze wrażenia są bardzo
pozytywne, to w beczce miody jest też łyżka dziegciu - darmowa wersja
kompilatora XC32 obsługuje tylko optymalizację na poziomie -O1. Nie ma
możliwości włączenia wyższej, w tym Os, która pozwoliłaby zaoszczędzić
sporo miejsca we flashu MCU. Microchip nadrabia za to przygotowaniem
bibliotek do obsługi peryferiów, razem w wyższymi warstwami (stos USB,
stos TCP/IP).
Jak jest w przypadku innych rodzin? W przyszłości chciałbym się
przyjrzeć STM32.
z praktyki mojej - fajne, dopóki nie zaczniesz wnikac w szczegóły. np w
implementację hardware handshakingu w UART'cie

Dobre też, bo to
Cortex, więc wiedza nabyta o CPU będzie w miare uniwersalna.
Quote:
Jak wygląda robienie projektów na tę platformę z punktu
widzenia amatora? Dostępne jest darmowe środowisko i kompilator?
jak rozważałę

to było coś z gcc, ale o rozsądnym debugowaniu w wersji
darmowej możesz zapomnieć.
po chwilowej przyjaźni z LPC zostałem z Atmelem, 32-bitowe AVRy, mimo,
że na własnej Atmelowej architekturze, wystarczają mi w zupełności. Do
tego darmowe środowisko bez ograniczeń, kompletny CSL z przykładami -
pomogło w decyzji.
a.
Marek
Guest
Fri Jan 08, 2016 1:55 pm
On Fri, 8 Jan 2016 13:07:07 +0100, Atlantis <marekw1986NOSPAM@wp.pl>
wrote:
Quote:
Teraz eksperymentuję z PIC32 i o ile pierwsze wrażenia są bardzo
pozytywne, to w beczce miody jest też łyżka dziegciu - darmowa
wersja
kompilatora XC32 obsługuje tylko optymalizację na poziomie -O1. Nie
ma
możliwości włączenia wyższej, w tym Os, która pozwoliłaby
zaoszczędzić
sporo miejsca we flashu MCU.
Wychodzą z założenia, że amatorom powinno to wystarczyć,
profesjonalista zapłaci $1000 za licencję, a haker i tak zrobi tak
jak będzie chciał...
--
Marek
Sebastian BiaĹy
Guest
Fri Jan 08, 2016 6:59 pm
On 2016-01-08 13:45, Artur Miller wrote:
Quote:
jak rozważałę

to było coś z gcc, ale o rozsądnym debugowaniu w wersji
darmowej możesz zapomnieć.
Masz na myśli stm32?
Dlaczego? STM supportuje w większości cpu jtag, dorzucasz openeocd + gdb
i masz de facto pelny debug pod czym chcesz.
Chyba wszystkie army z tej okolicy debuguje się identycznie i raczej
*niczego* nie brakuje, może poza sprzetowymi pułapkami.
Artur Miller
Guest
Fri Jan 08, 2016 7:19 pm
W dniu 2016-01-08 o 18:59, Sebastian Biały pisze:
Quote:
On 2016-01-08 13:45, Artur Miller wrote:
jak rozważałę

to było coś z gcc, ale o rozsądnym debugowaniu w wersji
darmowej możesz zapomnieć.
Masz na myśli stm32?
Dlaczego? STM supportuje w większości cpu jtag, dorzucasz openeocd + gdb
i masz de facto pelny debug pod czym chcesz.
po stronie CPU tak. a debuger? te chińskie jtagi (ulink2) działają w
ogóle sensownie? może jakies inne są w rozsądnej dla amatora cenie?
a.
Sebastian BiaĹy
Guest
Fri Jan 08, 2016 8:08 pm
On 2016-01-08 19:19, Artur Miller wrote:
Quote:
Dlaczego? STM supportuje w większości cpu jtag, dorzucasz openeocd + gdb
i masz de facto pelny debug pod czym chcesz.
po stronie CPU tak. a debuger?
OpenOCD + gdb. Dalej to już kto co woli, np. Eclipse.
Quote:
te chińskie jtagi (ulink2) działają w
ogóle sensownie?
Każdy JTAG zadziala sensownie. Uzywam staruszka Olimex na USB. Mam też
taki na LPT i jakiś noname który emuluje bodaj byteblaster. Każdy działa
o ile rozpozna go OpenOCD. A on rozpoznaje chyba wszystkie, wliczając w
to chińskie klony za 1E.
Quote:
może jakies inne są w rozsądnej dla amatora cenie?
*Każdy* wspierany przez OpenOCD i mający prawidłowe napięcia. Ten na 6
rezystorach z LPT też
platformowe gĹupki
Guest
Fri Jan 08, 2016 8:13 pm
jebać euro,
a poza tym, to jak tego się używa bo jakoś nie mogę sobie wyobrazić...
Sebastian BiaĹy
Guest
Fri Jan 08, 2016 8:17 pm
On 2016-01-08 20:13, platformowe głupki wrote:
Quote:
jebać euro,
a poza tym, to jak tego się używa
Też nie wiem, w euro nie ma dziuki, wieć to musi byc jakoś inaczej.
platformowe gĹupki
Guest
Fri Jan 08, 2016 8:25 pm
tak też podejrzewałem, powski ekspercie...
dodam od siebie coś ciekawego:
http://usbdp.org/dodatki/article.php?id=11
Grzegorz Niemirowski
Guest
Fri Jan 08, 2016 8:27 pm
Atlantis <marekw1986NOSPAM@wp.pl> napisał(a):
Quote:
Jak jest w przypadku innych rodzin? W przyszłości chciałbym się
przyjrzeć STM32. Jak wygląda robienie projektów na tę platformę z punktu
widzenia amatora? Dostępne jest darmowe środowisko i kompilator? Nie ma
żadnych ograniczeń w optymalizacji i/lub rozmiarze generowanego kodu?
Ściągasz sobie Eclipse w wersji dla C/C++ (a nie ten dla Javy). Do tego
podpinasz sobie kompilator, np. GCC z
https://launchpad.net/gcc-arm-embedded
oraz kilka uniksowych narzędzi potrzebnych przy budowaniu projektu z
http://gnuarmeclipse.github.io/windows-build-tools/ I możesz kompilować. Do
programowania i debugowania używasz OpenOCD, które integruje się z Eclipse.
Wszystko za darmo, bez ograniczeń.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express:
http://www.grzegorz.net/oe/
Uptime: 51 days, 2 hours, 8 minutes and 35 seconds
Artur Miller
Guest
Fri Jan 08, 2016 8:30 pm
W dniu 2016-01-08 o 20:08, Sebastian Biały pisze:
Quote:
On 2016-01-08 19:19, Artur Miller wrote:
Dlaczego? STM supportuje w większości cpu jtag, dorzucasz openeocd + gdb
i masz de facto pelny debug pod czym chcesz.
po stronie CPU tak. a debuger?
OpenOCD + gdb. Dalej to już kto co woli, np. Eclipse.
te chińskie jtagi (ulink2) działają w
ogóle sensownie?
Każdy JTAG zadziala sensownie. Uzywam staruszka Olimex na USB. Mam też
taki na LPT i jakiś noname który emuluje bodaj byteblaster. Każdy działa
o ile rozpozna go OpenOCD. A on rozpoznaje chyba wszystkie, wliczając w
to chińskie klony za 1E.
może jakies inne są w rozsądnej dla amatora cenie?
*Każdy* wspierany przez OpenOCD i mający prawidłowe napięcia. Ten na 6
rezystorach z LPT też ;)
hm... gdyby jeszcze ten cholerny UART mnie tak nie zraził do STMów, to
może... ;)
a.
Sebastian BiaĹy
Guest
Fri Jan 08, 2016 8:41 pm
On 2016-01-08 20:30, Artur Miller wrote:
Quote:
hm... gdyby jeszcze ten cholerny UART mnie tak nie zraził do STMów, to
może...
A co w nim złego? Z ciekawości pytam, w zasadzie uarty wszystkie takie same.
Sebastian BiaĹy
Guest
Fri Jan 08, 2016 8:54 pm
On 2016-01-08 13:07, Atlantis wrote:
Quote:
Dostępne jest darmowe środowisko i kompilator?
Tak.
Quote:
Nie ma
żadnych ograniczeń w optymalizacji i/lub rozmiarze generowanego kodu?
Żadnych. Chyba że z powodów religijnych albo certyfikacyjnych g++ się
nie nadaje.
Artur Miller
Guest
Fri Jan 08, 2016 9:50 pm
W dniu 2016-01-08 o 20:41, Sebastian Biały pisze:
Quote:
On 2016-01-08 20:30, Artur Miller wrote:
hm... gdyby jeszcze ten cholerny UART mnie tak nie zraził do STMów, to
może... ;)
A co w nim złego? Z ciekawości pytam, w zasadzie uarty wszystkie takie
same.
podczas transmisji UARTem ze sprzętowym handshakiem i (zwłaszcza) z
wykorzystaniem DMA spodziewam się, że RTS sie aktywuje na początku
transmisji i gaśnie po wysłaniu całego bufora (zakładając, że odbiorca
może odbierac i CTS ciągle jest zapalony). Otóż nie, w STM32
(przynajmniej w wersji F103) RTS jest najwyraźniej "hardwired" do
sygnału "tx buffer empty", więc po każdym wysłanym znaku RTS gaśnie na
czas potrzebny do zassania nowego znaku z RAMu do nadajnika UARTa przez
DMA.
niby pierdoła, ale ten ficzer ślicznie wykładał GSMowy modem EHS-5
Cinterion'a (reset modemu bez żadnego komunikatu o błędzie po
kilkudziesięciu przesłanych bajtach). Niestety sprzęt nie był moim
wyborem, a projekt był za daleko, zeby go zmienić...
drugą raczej ciekawostką było odkrycie, że sam chip mocno emituje
zakłócenia RF w swoim sąsiedztwie. w układ poskładany na pająku (STM32 +
GPS + GSM) działał, a ściśnięty w małej obudowie wykazywał problemy z
GPSem. Oczywistości były wykluczone oczywiście

to nie był mój
projekt, szczegółow nie znam, ale mam dostęp do osób, które z tym
walczyły, mogę wyciągnąć więcej info w razie potrzeby.
a.
Sebastian BiaĹy
Guest
Fri Jan 08, 2016 10:03 pm
On 2016-01-08 21:50, Artur Miller wrote:
Quote:
RTS jest najwyraźniej "hardwired" do
sygnału "tx buffer empty", więc po każdym wysłanym znaku RTS gaśnie na
czas potrzebny do zassania nowego znaku z RAMu do nadajnika UARTa przez
DMA.
W wolnej chwili zerknę na to. Nie używam sprzetowej kontroli więc nie
zauważyłem.
Quote:
niby pierdoła, ale ten ficzer ślicznie wykładał GSMowy modem EHS-5
Cinterion'a (reset modemu bez żadnego komunikatu o błędzie po
kilkudziesięciu przesłanych bajtach).
Czyli jednak nie wina stm32 :D
Quote:
drugą raczej ciekawostką było odkrycie, że sam chip mocno emituje
zakłócenia RF w swoim sąsiedztwie.
Z ciekawostek, Atmelowski SAM7 popędzałem kiedyś w celu sterowania
wyswietlacza. Słuchałem radia kiedy to nagle ... jak by coś piszczało.
Nie, to nie jest możliwe, ale przenisłem układ bliżej. Jak to pieknie
grało! Okazało się ze grało równie głośno po odpięciu kabli od LCD, a na
płyce tylko cpu i zasilanie
Goto page 1, 2, 3, 4 Next