WSYW Flashcards
Czym różnią się systemy wbudowane od zwykłych systemów
komputerowych?
Systemy wbudowane są zaprojektowane do spełniania konkretnej funkcji lub
może pełnić funkcje pomocnicze. Jest bardziej niezawodny od systemów
komputerów, a ich wyposażenie jest optymalizowane do ich przeznaczenia. Mają
ograniczone zasoby, tj. RAM, pamięć masowa i moc obliczeniową oraz
ograniczony interfejs użytkownika. Często są używane w urządzeniach z
ograniczonymi możliwościami zasilającymi, dlatego powinny mieć ograniczony
pobór mocy.
. Typowe ograniczenia występujące dla systemów wbudowanych?
Interfejs użytkownika, pamięć RAM, pamięć masowa, moc obliczeniowa, pobór
mocy oraz odporność na warunki zewnętrzne.
Struktura systemu wbudowanego
Procesor, pamięć RAM, pamięć nieulotna, timery, generator sygnału zegarowego,
interfejsy komunikacyjne (np. I2C, UART, SPI), urządzenia pomiarowe/sterujące
(np. przetworniki, czujniki), blok zasilania. OPCJONALNE: interfejs użytkownika,
pamięć masowa.
Przykłady architektur używanych w systemach wbudowanych
8-bitowe: MCS-51, AVR, STM-8
16-bitowe: PIC-24F, DSPIC-33, MS-430
32-, 64- bitowe: ARM, RISCV, MIPS
. Podstawowe informacje o architekturze ARM i Cortex-M4
CORTEX-M4:
wydajniejsza wersja Cortexa-M3 oparta na architekturze ARMv7, dodatkowo
wyposażona w koprocesor arytmetyczny (FPU – floating point unit) oraz zestaw
instrukcji DSP (digital signal procesor), architektura 32-bitowa, 24-bitowy time
systick, TRNG (true random number generator), DMA (direct memory access),
zintegrowana pamięć i układy peryferyjne
ARCHITEKRUA ARM:
zaawansowane urządzenie RISCowe, 32-, 64-bitowe CPU, możliwość
zaimplementowania na procesorze ARM systemu operacyjnego, rodzina
architektur 32-, 64-bitowych, typu RISC
. Typowe mechanizmy komunikacji z systemem wbudowanym
CAN, SPI, QSPI, I2C, I2S, UART, USART, SDIO, USB-OTG-FS, 1-WIRE, IrDA, LIN
Podstawowe właściwości architektury ARM
Zintegrowane bezpieczeństwo, wysoka wydajność obliczeniowa oraz
energetyczna, obszerny ekosystem ze wsparciem globalnym, rozpowszechniona
na całym rynku
- W jaki sposób osiągnięto wydajne kodowanie instrukcji w architekturze
ARM? Na czym polega łączenie instrukcji 32-bitowych i 16-bitowych?
T32(Thumb): Możliwość kodowania instrukcji jako słowa 32-, 16-bitowe, co
umożliwia mniejsze zużycie pamięci.
A32(ARM): Słowa tylko 32-bitowe, instrukcje są bardziej złożone oraz
wydajniejsze, ale kosztem pamięci.
Bits[15:11] determinują czy instrukcja jest 16-bitowa czy jest drugą cześcią 32-
bitowej instrukcji
Znaczenie bibliotek CMSIS i HAL dla systemów wbudowanych
wykorzystujących mikroprocesory ARM.
Dzięki bibliotekom CMSIS (common microcontroller software interface standard)
umożliwiona jest przenośność systemów, jednak nie obsługują specjalizowanych
bloków I/O zależnych od producenta architektury.
Biblioteki HAL (hardware abstraction layer) są bardziej specjalizowane i
dostarczane przez środowisko, np. CubeIDE.
- Możliwości konfigurowania zegarów w procesorach ARM. Znaczenie tej
funkcji dla kontroli poboru mocy.
Zmiana taktowania zegara: PLL (phase locked loop), PRESCALER. W
mikrokontrolerach ARM, można ustalić częstotliwość zegara procesora, magistral
(AHB, APB1, APB2). Dobranie możliwie niskiej częstotliwości zegara zmniejsza
pobór mocy. Bloki nieużywane mogą mieć całkowicie wyłączony sygnał zegarowy.
GPIO - możliwości konfiguracji, użycie jako wejścia, wyjścia, rezystory
podciagajace, generacja przerwań przez GPIO.
Dostępne są dwie podstawowe konfiguracje - wyjście (w tym trybie wymuszamy na wyjściu stan wysoki lub stan niski) i wejście (w tym trybie odczytujemy stan logiczny odpowiadający napięciu na wyprowadzeniu). [Oprócz tego, wiele z tych wyprowadzeń posiada “funkcje alternatywne” – mogą być podłączone do wewnętrznych bloków mikrokontrolera realizujących bardziej złożone funkcje (np. interfejsów komunikacyjnych).]
Rezystory podciągające (do stanu wysokiego – pull-up, albo do niskiego – pull-down). Wymuszają odpowiedni stan na wejściu przy braku innego wymuszenia zewnętrznego.
Generacja przerwań przez GPIO:
Konfiguracja pinu GPIO
Konfiguracja przerwań GPIO
Ustawienia kontrolera przerwań (NVIC)
Programowanie obsługi przerwań ISR
Programowanie logiki obsługi przerwań w głównej pętli programu
Przerwania - jakie jest znaczenie priorytetów przerwań. Jakie jest znaczenie
sekcji krytycznych w kodzie. Jakie zagrożenia wiążą się z korzystaniem z
przerwań. Zastosowanie atrybutu volatile w odniesieniu do zmiennych
modyfikowanych w procedurze obsługi przerwania.
Sekcja krytyczna to fragment kodu, do którego odwołuje się również funkcja
obsługi danego przerwania i jeśli przerwanie nastąpi akurat w trakcie
wykonywania tej sekcji, możliwe jest wystąpienie błędu w programie.
Dla zmiennych, które modyfikuje się w wątku głównym i w przerwaniu
wykorzystuje się
. UART - zasada działania, podstawowe parametry transmisji.
bandwidth, długość słowa, parzystość, ilość stop bitów, oversampling
(próbkowanie jednego bitu dla bezpieczeństwa), pierwszy bit 0 START, ostatni bit 1 STOP długość łącznie 10 bit
Funkcja SysTick - przeznaczenie, sposób realizacji, wykorzystanie, funkcja
HAL_Delay.
32-bitowa wartość, która jest zwiększana co 1ms. Można odczytać za pomocą
HAL_GetTick(). HAL_Delay() zatrzymuje wątek główny. Może się przepełnić i zacząć
liczyć od nowa, przez co pom
Bufor cykliczny jako struktura danych umożliwiająca przesyłanie informacji między procedurą obsługi przerwania a wątkiem głównym.
Bufor cykliczny to struktura danych, która umożliwia przesyłanie informacji między procedurą obsługi przerwania (ISR) a wątkiem głównym w sposób efektywny i bezpieczny pod względem równoczesnego dostępu. Jest jednym z efektywnych sposobów komunikacji między asynchronicznymi i synchronicznymi częściami programu w systemach wbudowanych.?