Projektowanie systemów wbudowanych na przykładzie rodziny SAM7S z rdzeniem ARM7TDMI - Jacek Augustyn.pdf

(35661 KB) Pobierz
345489179 UNPDF
345489179.032.png 345489179.033.png
Jacek Augustyn
systemów wbudowanych
na przykładzie rodziny SAM7S
z rdzeniem ARM7TDMI
Wydawnictwo IGSMiE PAN • Kraków • 2007
Projektowanie
345489179.034.png
Spis treści
Wstęp
9
1. Informacje ogólne o procesorach rodziny AT91SAM7S
1 1
1.1. Typy procesorów SAM7S
1 1
1.2. Architektura procesorów SAM7S
1 1
1.3. Źródła zegara taktuj ącego
1 3
1.4. Funkcje wyprowadzeń zewnętrznych
1 4
1.5. Sygnały żądania przerwania
1 4
1.6. Mapa pamięci
1 5
1.7. Typowe struktury rejestrów urządzeń peryferyjnych
16
1.8. Ładowanie programu
1 7
2. Rdzeń ARM7TDMI
1 9
2.1. Architektura rdzenia
1 9
2.2. Tryby ARM i Thumb
2 1
2.3. Tryby operacyjne
2 2
2.4. Dostępne rejestry w zależności od trybu pracy
2 3
2.4.1. Rejestry stanu
2 3
2.4.2. Rejestry w trybie ARM
2 4
2.4.3. Rejestry w trybie Thumb
2 6
2.5. Omówienie listy instrukcji w trybie ARM
2 7
2.5.1. Wykonywanie warunkowe instrukcji
2 9
2.5.2. Rozkazy arytmetyczne, logiczne, MOV/MVN
3 0
2.5.3. Przesuwnik bitowy
3 1
2.5.4. Modyfikator uaktualniania rejestru CPSR
3 3
2.5.5. Rozkazy mnożenia
3 4
2.5.6. Rozkazy rozgałęzień
3 5
2.5.7. Rozkazy przesłań z lub do pamięci
3 7
2.5.8. Pseudoinstrukcja LDR Rd,=
4 1
2.5.9. Rozkazy przesłań wielu rejestrów
4 2
2.5.10.Rozkaz SWAP/SWAPB
4 5
2.5.11. Rozkazy MSR/MRS
4 5
2.5.12.Rozkaz SWI
4 6
2.5.13.Rozkazy opcjonalnych koprocesorów
47
2.6. Informacje o liście instrukcji w trybie Thumb
4 7
3. Plik startowy
4 9
3.1. Struktura pliku startowego
4 9
3.2. Mapa pamięci aplikacji
.... 50
3.3. Definicje stałych symbolicznych
5 1
3.4. Iriicjalizacja wektorów przerwań i wskaźników stosów
5 2
3.5. Przekazanie sterowania do dalszej części programu
5 5
3.6. Inicjalizacje podstawowych urządzeń peryferyjnych
56
3.6.1. Maskowanie przerwań w kontrolerze AIC
5 7
3.6.2. Konfiguracja wyprowadzenia NRST
5 7
3.6.3. Kontroler pamięci MC
5 7
345489179.035.png 345489179.001.png 345489179.002.png 345489179.003.png 345489179.004.png 345489179.005.png 345489179.006.png 345489179.007.png 345489179.008.png 345489179.009.png 345489179.010.png 345489179.011.png
4
Projektowanie systemów wbudowanych na przykładzie rodziny SAM7S z rdzeniem ARM7TDMI
4.2.2. Bity rejestrów urządzeń peryferyjnych 6 7
5.1.1. Interfejs użytkownika 7 2
5.1.2. Przykład funkcji konfigurującej kontroler RSTC 7 3
5.2.1. Przykład funkcji konfigurującej kontroler MC 7 5
5.2.2. Przykład komendy REMAP 7 5
5.3.1. Zegar SLOWCLK 7 7
5.3.2. Główny oscylator MAINCLK 7 7
5.3.3. Blok PLL 7 7
5.3.4. Rozprowadzanie sygałów zegarów taktujących, blok PMC 7 8
5.3.5. Interfejs użytkownika 7 9
5.3.6. Przykład funkcji konfigurującej zegar taktujący 8 3
5.3.7. Przykład funkcji załączającej i wyłączającej zegar taktujący dla urządzeń peryferyjnych 83
5.4. Obwód nadzorujący WDT
8 4
5.4.1. Interfejs użytkownika
8 5
5.4.2. Przykład funkcji konfigurującej obwód WDT
8 7
5.5. Inicjalizacja podstawowych urządzeń peryferyjnych w języku C
8 7
5.6. Szkielet aplikacji
8 8
6. Organizacja komponentów programowych
9 1
6.1. Dekompozycja systemu
9 1
6.2. Sterowniki urządzeń peryferyjnych
9 1
6.3. Podział sterowników
9 4
6.3.1. Sterowniki linii wejściowych i wyjściowych GPIO ogólnego przeznaczenia
9 4
6.3.2. Sterowniki timerów i timerów PWM
9 5
6.3.3. Sterowniki urządzeń komunikacyjnych
9 5
6.4. Sterowniki protokołów
9 7
6.5. Komponenty programowe
9 7
6.6. Zestawienie sterowników
9 8
7. Kontroler wyprowadzeń PIO
1 01
7.1. Funkcje wyprowadzeń zewnętrznych
1 01
7.2. Wybrane parametry elektryczne wyprowadzeń zewnętrznych
1 02
7.3. Struktura bloku PIO
1 02
7.3.1. Wybór trybu GPIO
104
7.3.2. Wybór urządzenia peryferyj nego A lub B
1 04
7.3.3. Konfiguracja wejścia lub wyjścia w trybie GPIO
1 04
345489179.012.png 345489179.013.png 345489179.014.png 345489179.015.png 345489179.016.png 345489179.017.png 345489179.018.png 345489179.019.png 345489179.020.png 345489179.021.png 345489179.022.png 345489179.023.png 345489179.024.png
Spis treści
5
7.3.4. Zapis i odczyt stanu wyprowadzenia
1 05
7.3.5. Konfiguracja wyjścia typu multi-drive
1 05
7.3.6. Rezystor podciągający
1 05
7.3.7. Filtr przeciwzakłóceniowy
1 05
7.3.8. Żądanie przerwania
.....
106
7.4. Interfejs użytkownika
1 06
7.5. Przykład sterowników kontrolera PIO
1 07
7.5.1. Funkcje konfigurujące i obsługujące tryb GPlO-wejście
1 08
7.5.2. Funkcje konfigurujące i obsługujące tryb GPlO-wyjście
1 08
7.5.3. Funkcje konfigurujące wyprowadzenia do trybu urządzenia peryferyjnego
1 09
7.5.4. Zaawansowana konfiguracja wyprowadzeń
1 10
7.5.5. Funkcje konfigurujące żądania przerwania
1 11
7.6. Przykład sterownika diod LED
1 11
7.7. Przykład funkcji opóźniającej
1 12
7.8. Przykład sterownika obsługującego mikrowyłączniki
1 13
7.9. Przykład zastosowania sterowników LED i SW
1 14
7.10. Przykład sterownika klawiatury w trybie odpytywania
1 15
7.10.1.Definicje stałych symbolicznych
1 16
7.10.2.Funkcje składowe
1 16
7.10.3. Przykład aplikacji wykorzystującej sterownik KB
1 18
7.11. Przykład sterownika dla wyświetlacza HD44780
1 19
7.11.1. Zapis wartości do wyświetlacza
1 19
7.11.2. Definicje stałych symbolicznych dla komend wyświetlacza
1 21
7.11.3.Funkcje składowe sterownika LCD
1 22
7.11.4. Przykład użycia sterownika LCD
1 24
8. Sterownik hierarchicznego menu
125
8.1. Założenia
1 25
8.2. Organizacja plików
1 27
8.3. Organizacja danych
1 28
8.3.1. Definicje struktur danych
1 29
8.3.2. Umieszczenie struktur danych w pamięci FLASH
1 31
8.4. Treść funkcji stowarzyszonych z pozycjami menu
1 31
8.5. Przykład sterownika hierarchicznego menu
1 32
8.6. Przykład użycia sterownika MNU
1 36
9. System przerwań
1 37
9.1. Pojęcia podstawowe
1 37
9.2. Typowe zastosowania systemu przerwań
1 37
9.3. Struktura systemu przerwań w procesorach SAM7S
1 39
9.4. Obsługa żądań przerwania przez rdzeń ARM7TDMI
1 39
9.4.1. Szczegóły przyjęcia przerwania IRQ
1 40
9.4.2. Szczegóły przyjęcia przerwania FIQ
1 41
9.5. Sygnały żądań przerwania od urządzeń peryferyjnych
141
9.5.1. Numerowanie urządzeń peryferyjnych
1 41
9.5.2. Grupa żądań przerwania pochodząca od bloku systemowego
1 42
9.5.3. Sygnały żądań IRQ0, IRQ1 oraz FIQ
1 42
9.6. Struktura wewnętrzna kontrolera przerwań AIC
1 43
9.6.1. Obwód konfiguracji żądania przerwania
1 43
9.6.2. Obwód wektoryzacji
1 44
9.6.3. Fałszywe przerwanie
1 46
9.7. Interfejs użytkownika
1 46
9.8. Sterownik kontrolera przerwań AIC
1 49
9.8.1. Funkcje składowe
1 49
9.8.2. Szkielet procedury obsługi przerwania IRQ bez zagnieżdżeń
1 51
345489179.025.png 345489179.026.png 345489179.027.png 345489179.028.png 345489179.029.png 345489179.030.png 345489179.031.png
Zgłoś jeśli naruszono regulamin