-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!news.uzoreto.com!aioe.org!
NZ87pNe1TKxNDknVl4tZhw.user.46.165.242.91.POSTED!not-for-mail
From: a...@m...uni.wroc.pl
Newsgroups: pl.misc.elektronika
Subject: Re: STM32 i HAL -- pierwsze podej?cie, pierwsze pytania
Date: Tue, 26 Jul 2022 01:58:27 -0000 (UTC)
Organization: Aioe.org NNTP Server
Message-ID: <tbnho3$3r3$1@gioia.aioe.org>
References: <1...@h...invalid>
Injection-Info: gioia.aioe.org; logging-data="3939";
posting-host="NZ87pNe1TKxNDknVl4tZhw.user.gioia.aioe.org";
mail-complaints-to="a...@a...org";
User-Agent: tin/2.4.5-20201224 ("Glen Albyn") (Linux/5.10.0-9-amd64 (x86_64))
Cancel-Lock: sha1:Lg5V6ERktZAsUDpJTA/xXwM8dbI=
X-Notice: Filtered by postfilter v. 0.9.2
Xref: news-archive.icm.edu.pl pl.misc.elektronika:773477
[ ukryj nagłówki ]Arnold Ziffel <a...@h...invalid> wrote:
> Hej,
>
> Tak jak pisa?em -- zacz??em troch? rze?bi? w STM32. Programator jeszcze
> nie przyszed? (zdecydowa?em, ?e jednak nie u?yj? p?ytki Nucleo tylko od
> razu wrzuc? MCU w projektowany uk?ad), ale zacz??em pisa? kod na sucho.
>
> I tu pojawia si? kilka pyta? / problem?w.
<snip>
> 3. Czy ja dobrze widz?, ?e HAL nie udost?pnia mo?liwo?ci szybkiego
> prze??czania pinu mi?dzy wej?ciem i wyj?ciem? Tak si? sk?ada, ?e w
> pierwszym projekcie, do kt?rego chc? u?y? STM32, potrzebuj? trzech stan?w
> (niski, wysoki i wysokiej impedancji). Akurat tutaj nie potrzebuj? tego
> szybko (co 4 ms), wi?c sztuczka z wywo?ywaniem (stosunkowo ci??kiej)
> funkcji HAL_GPIO_Init() si? uda, ale nie wyobra?am sobie tego w bardziej
> krytycznych czasowo sytuacjach.
>
> A mo?e w og?le obs?uga GPIO przez HAL to zabawka dla pocz?tkuj?cych i
> nikt, kto programuje na serio, nie korzysta z tego, tylko pisze
> bezpo?rednio do port?w?
Chyba duzo ludzi uzywa HAL-a. Czesc uzywa interfejs low level.
Ja zaczelem od biblioteki 'libopencm3', z tym ze sporo rzeczy
robilem bezposrednio.
Co do szybkiego przelaczania: mysle ze filozofia wielu programow
zaklada konfiguracje na starcie a potem brak zmian. W STM32
konfiguracja moze byc dosc "ciezka": na starcie wiekszosc urzadzen
jest wylaczona (dla oszczednosci energii), zeby je uaktywnic
trzeba w paru miejscach zrobic odpowiednie ustawienia. Np.
dla GPIO jest lock register: mozesz zablokowac zmiany konfiguracji
az do nastepnego resetu.
> 4. Czy ja dobrze widz?, ?e HAL nie umo?liwia agregowania pin?w? Chcia?bym
> jednocze?nie zmieni? stan konkretnych pin?w w porcie -- czy da si? to
> zrobi? przez HAL, czy trzeba pisa? bezpo?rednio do portu?
>
> 5. Mamy pi?kny enum GPIO_PinState, a w nim warto?ci GPIO_PIN_SET oraz
> GPIO_PIN_RESET. Czy HAL umo?liwia takie skonfigurowanie portu, ?eby port
> by? zanegowany (czyli np. pisz?c PIN_SET chcemy tak naprawd? ustawi? tam
> stan niski, i tak samo odczytuj?c)? Nie widz? nic takiego, a skoro ju?
> wprowadzili HAL, to wydaje mi si? to rozs?dne i logiczne.
Normalnie chcesz zeby zapis pin(ow) to byla 1-3 instrukcje
maszynowe: w ogolnej wersji jedna umieszcza adres portu
w rejestrze procesora, druga umieszcza wartosc w rejestrze
procesora, trzecia presyla wartosc z rejestru procka do
portu. W wielu sytuacjach potrzebne sa juz w rejestrach
procesora, wtedy wystarczy pojedyncza instrukcja. Jak
masz odpowiednie makra (czy funkcje inline) to tak bedzie
(nie wiem czy HAL to robi). Negacje mozesz wrzucic w
miare prosta makrologia, ale to moze (nie musi) dodac
dodatkowe instrukcje wiec nie jest dobre jako defaultowy
ficzer.
> 7. Pytanie bardziej o sam mikrokontroler. W jakim stanie b?d? piny, gdy
> procesor wejdzie w stan resetu
W datasheet jest stan rejestrow po resecie. We wszystkich modelach
STM32 ktore widzialem normaly stan po resecie to bylo "input floating".
> (bo np. b?d? wrzuca? nowy program przez
> programator)?
Ja uzywalem STlink (sprzet) z opensourcowym programem stlink.
On _nie_ resetowal procka do programowania. Jak byla jakas
dziwna konfiguracja urzadzen to zostawala po programowaniu
Tak a propo: duzo modeli ma bootloader. Jak odpowiednio
ustawisz piny (i ewentualnie flagi konfiguracji) to
bootloader startuje po resecie. Niezaleznie od tego czy
bootloader wystatartowal mozesz programowac przez STlink
(SWD). Ale stan procka sie rozni: bootloader konfiguruje
niektore urzadzenia.
--
Waldek Hebisch
Następne wpisy z tego wątku
- 26.07.22 08:14 Marek
- 26.07.22 09:29 Janusz
- 26.07.22 09:40 Grzegorz Niemirowski
- 26.07.22 10:00 MKi
- 26.07.22 10:09 Grzegorz Niemirowski
- 26.07.22 11:48 jacek pozniak
- 26.07.22 12:01 MKi
- 26.07.22 12:03 MKi
- 26.07.22 13:48 stary grzyb
- 26.07.22 17:13 Arnold Ziffel
Najnowsze wątki z tej grupy
- ciekawy układ magnetofonu
- Mikroskop 3D
- Jak być bezpiecznym z Li-Ion?
- Szukam monitora HDMI ok. 4"
- Obcinaczki z łapaczem
- termostat do lodowki
- SEP 1 kV E
- Aku LiPo źródło dostaw - ktoś poleci ?
- starość nie radość
- Ataki hakerskie
- Akumulatorki Ni-MH AA i AAA Green Cell
- Dławik CM
- JDG i utylizacja sprzetu
- Identyfikacja układ SO8 w sterowniku migających światełek choinkowych
- DS1813-10 się psuje
Najnowsze wątki
- 2024-12-23 Riga => Specjalista ds. public relations <=
- 2024-12-23 Łódź => Specjalista ds. Sprzedaży <=
- 2024-12-23 Kraków => International Freight Forwarder <=
- 2024-12-23 Co nalezy do Cinkciarza, a co do Conotoxia ?
- 2024-12-23 Poznań => Key Account Manager <=
- 2024-12-23 Warszawa => Presales / Inżynier Wsparcia Technicznego IT <=
- 2024-12-23 Rzeszów => Spedytor Międzynarodowy <=
- 2024-12-23 Warszawa => Infrastructure Automation Engineer <=
- 2024-12-23 Białystok => Analityk w dziale Trade Development (doświadczenie z Po
- 2024-12-23 Warszawa => Site Reliability Engineer (SRE) <=
- 2024-12-23 Warszawa => DevOps Engineer <=
- 2024-12-23 Warszawa => Senior Account Manager <=
- 2024-12-23 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-23 Katowice => Administrator IT - Wirtualizacja i Konteneryzacja <=
- 2024-12-23 Mińsk Mazowiecki => Spedytor Międzynarodowy <=