Architektura ARM. Marcin Peczarski. 17 lutego Instytut Informatyki Uniwersytetu Warszawskiego
|
|
- Klaudia Aniela Smolińska
- 6 lat temu
- Przeglądów:
Transkrypt
1 Architektura ARM Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 17 lutego 2012
2 ARM Międzynarodowa firma, mająca główną siedzibę w Cambrdge w Wielkiej Brytanii. Projektuje i sprzedaje licencje na rdzenie ARM. Nie produkuje chipów. Podobno ok. 3/4 telefonów komórkowych i systemów wbudowanych zawiera rdzenie ARM.
3 Przegląd aktualnych wersji architektury ARM Źródło:
4 Zapowiadana 64-bitowa wersja architektury ARM Źródło:
5 ARM = Advanced RISC Machines Zestaw instrukcji wzorowany na RISC, aby łatwo potokować: ldr r3, [r1, #36] adds r2, r3, #1 RISC-owe wywoływanie procedur: bl bx etykieta lr Prawie każda instrukcja może być wykonywana warunkowo: movge r7, r4 Argument można przesunąć przed wykonaniem operacji: orr r1, r1, r4, lsl #12 str r2, [r4, r0, lsl #2] Występują instrukcje typowo CISC-owe: push pop {r4, r5, lr}; prolog funkcji {r4, r5, pc}; epilog funkcji
6 Cortex-M3/M4 Rdzenie do zastosowań mikrokontrolerowych Cienkokońcówkowe Jednolita przestrzeń adresowa architekura typu Princeton Osobne szyny do pamięci danych i programu organizacja typu Hardward Na kolejnych slajdach omawiam architekturę Cortex-M3, posługując się przykładami przetestowanymi na mikrokontrolerach z rodziny STM32.
7 Przykład mikrokontrolera z rdzeniem Cortex-M3 Źródło:
8 Przestrzeń adresowa Źródło:
9 Bezpośrednie adresowanie bitów bitaddr = baseaddr + 32 dwordoffset + 4 bitnumber Źródło:
10 Organizacja pamięci programu Flash sidata = etext.data.rodata RAM stack heap estack end ebss.bss.text edata = sbss 0x isr vector.data sdata = 0x
11 Kod startowy deklaracje extern unsigned long _sidata; extern unsigned long _sdata; extern unsigned long _edata; extern unsigned long _sbss; extern unsigned long _ebss; extern unsigned long _estack; int main(void);
12 Kod startowy wykonywany po wyzerowaniu static void Reset_Handler(void) { unsigned long *src, *dst; for (dst = &_sdata, src = &_sidata; dst < &_edata; ++dst, ++src) *dst = *src; for (dst = &_sbss; dst < &_ebss; ++dst) *dst = 0; main(); for (;;); }
13 Tablica przerwań attribute ((section(".isr_vector"))) void (* const g_pfnvectors[])(void) = { (void*)&_estack, Reset_Handler, /* Przerwania rdzenia Cortex-M3 */ NMI_Handler, HardFault_Handler, MemManage_Handler, BusFault_Handler, UsageFault_Handler,... SysTick_Handler, /* Przerwania układów peryferyjnych */... };
14 Zaślepki dla nieużywanych przerwań static void Default_Handler(void) { for (;;); } #define WEAK attribute ((weak)) void WEAK NMI_Handler(void); #pragma weak NMI_Handler = Default_Handler
15 Połączenie tego w całość (1) MEMORY { FLASH (rx) : ORIGIN = 0x , LENGTH = 128K RAM (rwx) : ORIGIN = 0x , LENGTH = 20K } _minimum_stack_and_heap = 2560; SECTIONS {... }
16 Połączenie tego w całość (2).text : { KEEP(*(.isr_vector)) *(.text) *(.text.*) *(.rodata) *(.rodata.*). = ALIGN(4); _etext =.; _sidata = _etext; } >FLASH =0xff
17 Połączenie tego w całość (3).data : AT(_sidata) {. = ALIGN(4); _sdata =.; *(.data) *(.data.*). = ALIGN(4); _edata =.; } >RAM =0
18 Połączenie tego w całość (4).bss : {. = ALIGN(4); _sbss =.; *(.bss) *(.bss.*) *(COMMON). = ALIGN(4); _ebss =.; } >RAM
19 Połączenie tego w całość (5) _estack = (ORIGIN(RAM) + LENGTH(RAM)) & 0xFFFFFFFC; ASSERT(_ebss + _minimum_stack_and_heap <= _estack, "There is not enough space in RAM.") PROVIDE(end = _ebss);...
20 Zaświecenie diody hard-code Dioda jest podłączona do wyprowadzenia PB8. typedef volatile uint32_t reg_t; uint32_t tmp; *(reg_t*)(0x x18) = 0x ; tmp = *(reg_t*)(0x40010c00 + 0x04); tmp &= 0xfffffff0; tmp = 0x ; *(reg_t*)(0x40010c00 + 0x04) = tmp; *(reg_t*)(0x40010c00 + 0x10) = 1 << 8;
21 Biblioteki CMSIS Cortex Microcontroller Software Interface Standard STM32... x StdPeriph Driver biblioteka obsługująca peryferie specyficzne dla danego modelu mikrokontrolera
22 Zaświecenie diody z użyciem CMSIS Trzeba włączyć właściwy plik nagłówkowy (jeden): #include <stm32f10x.h> #include <stm32f2xx.h> #include <stm32l1xx.h> Potem już jest łatwiej: uint32_t tmp; RCC->APB2ENR = RCC_APB2ENR_IOPBEN; tmp = GPIOB->CRH; tmp &= ~(GPIO_CRH_MODE8_1 GPIO_CRH_CNF8_0 GPIO_CRH_CNF8_1); tmp = GPIO_CRH_MODE8_0; GPIOB->CRH = tmp; GPIOB->BSRR = GPIO_BSRR_BS8;
23 Zaświecenie diody z użyciem StdPeriph Driver Trzeba włączyć właściwe pliki nagłówkowe, np.: #inlcude <stm32f10x_gpio.h> #inlcude <stm32f10x_rcc.h> Potem już jest łatwo, choć nie zawsze wydajnie: GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_StructInit(&GPIO_InitStruct); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOB, &GPIO_InitStruct); GPIO_WriteBit(GPIOB, GPIO_Pin_8, Bit_SET);
24 CMSIS dostarcza funkcji dla operacji niedostępnych w języku C Włączamy odpowiedni plik nagłówkowy: #include <stm32...x.h> I możemy używać różnych ciekawych funkcji: #define htons(x) REV16(x) #define htonl(x) REV(x)
25 Używając GCC, można je zdefiniować nieco bardziej efektywnie #if defined GNUC #define htons(x) ({ \ uint16_t result; \ asm ("rev16 %0, %1" : "=r" (result) : "r" (x)); \ result; \ }) #define htonl(x) ({ \ uint32_t result; \ asm ("rev %0, %1" : "=r" (result) : "r" (x)); \ result; \ }) #endif
26 Rejestry R0 do R12 rejestry ogólnego przeznaczenia SP (R13, MSP, PSP) wskaźnik stosu LR (R14) adres powrotu PC (R15) licznik programu PSR (APSR, IPSR, EPSR) rejestr znaczników PRIMASK, FAULTMASK, BASEPRI rejestry maskujące przerwania CONTROL rejestr sterujący trybami pracy rdzenia
27 Przerwania Reset NMI Hard fault Memory management fault Bus fault Usage fault Supervisor call PendSV SysTick IRQ0... IRQ67 Zerowanie rdzenia Przerwanie niemaskowalne Błąd podczas obsługi przerwania Naruszenie ochrony pamięci Błąd szyny pamięci Niepoprawna instrukcja lub argument instrukcji Wywołanie usługi systemu operacyjnego za pomocą instrukcji SVC Wywołanie planisty w celu przełączenia kontekstu, w założeniu niski priorytet Licznik systemowy, cykliczne przerwanie systemu operacyjnego, w założeniu wysoki priorytet Przerwania zgłaszane przez peryferie
28 Eskalacja wyjątków Źródło:
29 ABI funkcji i przerwań Pierwsze 4 argumenty funkcji są przekazywane w rejestrach R0 do R3, pozostałe przez stos. Funkcja może dowolnie modyfikować rejestry R0 do R3 i R12. Funkcja musi przywrócić wartości rejestrów R4 do R11, LR i SP sprzed wywołania. Przed wywołaniem procedury przerwania procesor odkłada na stos rejestry R0 do R3, R12, adres powrotu, PSR, LR. Funkcja, która ma obsługiwać przerwanie, to najzwyklejsza funkcja języka C o sygnaturze void Handler(void); Nie są potrzebne żadne dodatkowe atrybuty! attribute ((interrupt))
30 Łańcuchowa obsługa przerwań Źródło: Może dochodzić do zagłodzenia!
31 Łańcuchowa obsługa przerwań, dalsze przykłady Źródło:
32 ABI przerwań, problem Skąd procesor wie, czy instrukcja bx lr jest powrotem ze zwykłej funkcji, czy z obsługi przerwania (trzeba coś zdjąć ze stosu)? Czy ktoś zauważył problem?
33 Tryby pracy rdzenia Źródło: Są dwa stosy: MSP dla trybów uprzywilejowanych (ang. privileged thread, privileged handler), PSP dla trybu użytkownika (ang. user thread).
34 ABI przerwań, rozwiązanie problemu Przed wywołaniem funkcji obsługującej przerwanie procesor zapisuje do rejestru LR wartość: 0xfffffff1 powrót do obsługi innego przerwania (ang. privileged handler), odtwórz stan z MSP, po powrocie używaj MSP; 0xfffffff9 powrót do wątku uprzywilejowanego (ang. privileged thread), odtwórz stan z MSP, po powrocie używaj MSP; 0xfffffffd powrót do wątku użytkownika (ang. user thread), odtwórz stan z PSP, po powrocie używaj PSP.
35 Priorytety przerwań Przerwanie może mieć priorytet od 3 do 15. Czym mniejsza wartość, tym większy priorytet. Trzy przerwania mają ustalony, niekonfigurowalny priorytet: Reset priorytet 3, NMI priorytet 2, HardFault priorytet 1. Pozostałym przerwaniom można nadać priorytet, który jest liczbą 4-bitową i składa się z dwóch pól: priorytet wywłaszczania, podpriorytet. Liczba bitów przeznaczonych na priorytet wywłaszczania jest konfigurowalna. Pozostałe bity są przeznaczone na podpriorytet.
36 Numery przerwań CMSIS definiuje typ wyliczeniowy: typedef enum IRQn {... }; Przerwania zgłaszane przez rdzeń mają ujemne numery: NonMaskableInt_IRQn = -14, MemoryManagement_IRQn = -12, BusFault_IRQn = -11, UsageFault_IRQn = -10,... SysTick_IRQn = -1, Przerwania zgłaszane przez peryferie mają nieujemne numery: WWDG_IRQn = 0,... TIM2_IRQn = 28,...
37 Blokowanie przerwań o konfigurowalnych priorytetach Użyjemy CMSIS: #include <stm32f10x.h> #include <stm32f2xx.h> #include <stm32l1xx.h> Makro deklarujące zmienną, przechowującą poprzedni stan: #define SYS_ARCH_DECL_PROTECT(x) \ uint32_t x Makro zapisujące aktualny stan i blokujące przerwania: #define SYS_ARCH_PROTECT(x) \ (x = get_primask(), disable_irq()) Makro przywracające poprzedni stan: #define SYS_ARCH_UNPROTECT(x) \ set_primask(x)
38 Użycie SYS_ARCH_DECL_PROTECT(x); /* Tutaj może zostać zgłoszone przerwanie w dowolnym momencie. */ SYS_ARCH_PROTECT(x); /* Tutaj kod wykonuje się przy zablokowanych przerwaniach. */ SYS_ARCH_UNPROTECT(x);
39 Wersja makr dla GCC #if defined GNUC #define SYS_ARCH_DECL_PROTECT(x) \ uint32_t x #define SYS_ARCH_PROTECT(x) ({ \ asm volatile ( \ "mrs %0, PRIMASK\n\t" \ "cpsid i" : \ "=r" (x) : \ ); \ }) #define SYS_ARCH_UNPROTECT(x) ({ \ asm volatile ("msr PRIMASK, %0" : : "r" (x)); \ }) #endif
40 Konfigurowanie priorytetu przerwania Wystarczą 4 priorytety wywłaszczania i 4 podpriorytety: #define PRE_PRIO_BITS 2 #define SET_IRQ_PREEMPTION_PRIORITY_BITS() \ NVIC_SetPriorityGrouping(7 - PRE_PRIO_BITS) Priorytety (wywłaszczania) wygodnie jest nazwać: #define HIGH_IRQ_PRIO 1 #define MIDDLE_IRQ_PRIO 2 #define LOW_IRQ_PRIO 3 CMSIS dostarcza kilka funkcji: NVIC_SetPriority(SysTick_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), HIGH_IRQ_PRIO, 0));
41 Konfigurowanie priorytetu przerwania, cd. Przerwania zgłaszane przez peryferie można też konfigurować za pomocą StdPeriph Driver: #include <misc.h> NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel = TIM2_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = LOW_IRQ_PRIO; NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0; NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStruct);
42 Blokowanie przerwań wg priorytetu Makro deklarujące zmienną, która przechowuje informację o blokowanych przerwaniach: #define IRQ_DECL_PROTECT(prv) \ uint32_t prv Makro zapisujące stan aktualnie blokowanych przerwań i blokujące przerwania o priorytecie niższym lub równym lvl: #define IRQ_PROTECT(prv, lvl) \ (prv = get_basepri(), \ set_basepri((lvl) << (8 - PRE_PRIO_BITS))) Makro przywracające poprzedni stan blokowania przerwań: #define IRQ_UNPROTECT(prv) \ set_basepri(prv)
43 Wersja makr dla GCC #if defined GNUC #define IRQ_DECL_PROTECT(prv) \ uint32_t prv #define IRQ_PROTECT(prv, lvl) ({ \ uint32_t tmp; \ asm volatile ( \ "mrs %0, BASEPRI\n\t" \ "movs %1, %2\n\t" \ "msr BASEPRI, %1" : \ "=r" (prv), "=r" (tmp) : \ "i" ((lvl) << (8 - PRE_PRIO_BITS)) \ ); \ }) #define IRQ_UNPROTECT(prv) ({ \ asm volatile ("msr BASEPRI, %0" : : "r" (prv)); \ }) #endif
44 Inna wersja makr dla GCC #if defined GNUC #define IRQ_DECL_PROTECT(prv) \ uint32_t prv #define IRQ_PROTECT(prv, lvl) ({ \ uint32_t tmp; \ tmp = (lvl) << (8 - PRE_PRIO_BITS); \ asm volatile ("mrs %0, BASEPRI" : "=r" (prv)); \ asm volatile ("msr BASEPRI, %0" : : "r" (tmp)); \ }) #define IRQ_UNPROTECT(prv) ({ \ asm volatile ("msr BASEPRI, %0" : : "r" (prv)); \ }) #endif
45 O czym jeszcze można opowiedzieć? Tryby uśpienia Wsparcie dla DSP Przykłady użycia peryferii...
Architektura ARM. Materiały do wykładu. Marcin Peczarski. 19 maja 2015. Instytut Informatyki Uniwersytet Warszawski
7 1 2 Materiały do wykładu Architektura ARM Marcin Peczarski Instytut Informatyki Uniwersytet Warszawski 19 maja 2015 7 1 2 1 ARM = Advanced RISC Machines Międzynarodowa firma, mająca główną siedzibę w
Bardziej szczegółowoProgramowanie mikrokontrolerów 2.0
Programowanie mikrokontrolerów 2.0 Przerwania i wyjątki Marcin Engel Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 18 października 2016 5.2 Wyjątki Wyjątek zdarzenie, którego obsługa
Bardziej szczegółowo(Rysunek z książki T.Starecki. Mikokontrolery jednoukładowe rodziny 51. NOZOMI W-wa 1996)
Przerwanie o wyższym priorytecie przerywa obsługę przerwania o niższym priorytecie, po czym następuje powrót do przerwanej obsługi przerwania o niższym priorytecie. (Rysunek z książki T.Starecki. Mikokontrolery
Bardziej szczegółowoProgramowanie mikrokontrolerów 2.0
Programowanie mikrokontrolerów 2.0 DMA, przerwania Marcin Engel Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 22 października 2018 DMA Akronim Direct Memory Access Przesyłanie danych
Bardziej szczegółowoProgramowanie mikrokontrolerów 2.0
Programowanie mikrokontrolerów 2.0 Wstęp Marcin Engel Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 4 października 2016 Co to jest mikrokontroler? Układ scalony integrujący następujące
Bardziej szczegółowoProgramowanie mikrokontrolerów 2.0
1.1 Programowanie mikrokontrolerów 2.0 Wstęp Marcin Engel Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 16 kwietnia 2015 Co to jest mikrokontroler? Układ scalony integrujący następujące
Bardziej szczegółowoSzkolenia specjalistyczne
Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com
Bardziej szczegółowoJak przenieść kod z ARM7 do Cortex-M3?
Jak przenieść NOTATNIK kod z ARM7 KONSTRUKTORA do Cortex-M3? Jak przenieść kod z ARM7 do Cortex-M3? Rdzeń Cortex-M3 cechuje się licznymi zaletami, w porównaniu do ARM7TDMI. Pozwala na szybsze wykonywanie
Bardziej szczegółowoPMiK Programowanie Mikrokontrolera 8051
PMiK Programowanie Mikrokontrolera 8051 Wykład 3 Mikrokontroler 8051 PMiK Programowanie mikrokontrolera 8051 - wykład S. Szostak (2006) Zmienna typu bit #define YES 1 // definicja stałych #define NO 0
Bardziej szczegółowoKompilator języka C na procesor 8051 RC51 implementacja
Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub
Bardziej szczegółowoMETODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Bardziej szczegółowoProgramowanie mikrokontrolerów 2.0
Programowanie mikrokontrolerów 2.0 Tryby uśpienia Marcin Engel Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 19 grudnia 2016 Zarządzanie energią Często musimy zadbać o zminimalizowanie
Bardziej szczegółowo/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>
Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch
Bardziej szczegółowoWykład 9. Obsługa przerwań
Wykład 9 Kontroler przerwań Kontroler NVIC udostępnia globalne maskowanie przerwań, ustawianie priorytetów i funkcji obsługi. Procesor LM3S6965 umożliwia obsługę 38 przerwań. Każde przerwanie może być
Bardziej szczegółowoTechnika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2
Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci,
Bardziej szczegółowoWykład. Materiały bazują częściowo na slajdach Marata Dukhana
Wykład Materiały bazują częściowo na slajdach Marata Dukhana Języki programowania Kompilowane np. C, C++, Pascal Interpretowane np. JavaScript, PHP, Python, VBA Pośrednie np. Java, C# Znane kompilatory
Bardziej szczegółowoTypy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1
Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy
Bardziej szczegółowoInstytut Teleinformatyki
Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikrokontrolery i Mikroprocesory Zapoznanie się ze środowiskiem CUBE, obsługa portów I/O laboratorium: 02 autor:
Bardziej szczegółowoProgramowanie w asemblerze ARM wprowadzenie
Programowanie w asemblerze ARM wprowadzenie 17 stycznia 2017 Historia Firma ARM Ltd. powstała w 1990 roku jako Advanced RISC Machines Ltd., joint venture firm Acorn Computers, Apple Computer i VLSI Technology.
Bardziej szczegółowoPRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.
PRZERWANIA 1. Obsługa zdarzeń, odpytywanie i Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego. Istnieją dwie metody pozyskania informacji o zdarzeniach: 1. Cykliczne
Bardziej szczegółowoProgramowanie hybrydowe C (C++) - assembler. MS Visual Studio Inline Assembler
Programowanie hybrydowe C (C++) - assembler MS Visual Studio Inline Assembler Wprowadzenie Możliwość wprowadzania kodu asemblerowego bezpośrednio w kodzie źródłowym w języku C lub C++ Nie wymagany MASM
Bardziej szczegółowoWykład 2. Mikrokontrolery z rdzeniami ARM
Wykład 2 Źródło problemu 2 Wstęp Architektura ARM (Advanced RISC Machine, pierwotnie Acorn RISC Machine) jest 32-bitową architekturą (modelem programowym) procesorów typu RISC. Różne wersje procesorów
Bardziej szczegółowoProgramowanie mikroprocesorów jednoukładowych
Programowanie mikroprocesorów jednoukładowych Systemy operacyjne dla systemów wbudowanych Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 1 / 30 Plan I SLOS Inicjalizacja
Bardziej szczegółowoWstęp. do języka C na procesor 8051. (kompilator RC51)
Wstęp do języka C na procesor 8051 (kompilator RC51) Kompilator języka C Kompilator RC51 jest kompilatorem języka C w standardzie ANSI Ograniczeń w stosunku do ANSI jest niewiele głównie rzadkie operacje
Bardziej szczegółowo3. Sygnały zegarowe i ich konfiguracja, mechanizmy bezpieczeństwa... 47
Spis treści 3 1. Rdzeń Cortex-M3...9 1.1. Firma ARM i jej wyroby...10 1.2. Rodzina rdzeni Cortex...12 1.3. Ogólne spojrzenie na architekturę rdzenia Cortex-M3...13 1.4. Rejestry podstawowe...16 1.5. Przestrzeń
Bardziej szczegółowoInżynieria Wytwarzania Systemów Wbudowanych
GUT Intel 2015/16 1/30 Inżynieria Wytwarzania Systemów Wbudowanych Wykład 3 Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG October 18, 2018 Dobre praktyki GUT Intel 2015/16 2/30 Przenośność
Bardziej szczegółowoMIKROKONTROLERY I MIKROPROCESORY
PLAN... work in progress 1. Mikrokontrolery i mikroprocesory - architektura systemów mikroprocesorów ( 8051, AVR, ARM) - pamięci - rejestry - tryby adresowania - repertuar instrukcji - urządzenia we/wy
Bardziej szczegółowoTechnika mikroprocesorowa I Wykład 2
Technika mikroprocesorowa I Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci, -odczyt-zapis urządzenia we-wy,
Bardziej szczegółowoWykład 1
Wstęp do programowania 1 Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Wprowadzenie Cel wykładów z programowania proceduralnego Wykład jest poświęcony językowi C i jego
Bardziej szczegółowoMetody obsługi zdarzeń
SWB - Przerwania, polling, timery - wykład 10 asz 1 Metody obsługi zdarzeń Przerwanie (ang. Interrupt) - zmiana sterowania, niezależnie od aktualnie wykonywanego programu, spowodowana pojawieniem się sygnału
Bardziej szczegółowoXMEGA. Warsztaty CHIP Rok akademicki 2014/2015
XMEGA Warsztaty CHIP Rok akademicki 2014/2015 Plan warsztatów: Wprowadzenie do Atmel Studio (20/11/2014) Porty I/O (20/11/2014) Przerwania (27/11/2014) Wykorzystana literatura: [1] Dokumentacja ATMEL(www.atmel.com):
Bardziej szczegółowoPodstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski
Bardziej szczegółowoMikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe
Mikrokontroler ATmega32 System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe 1 Przerwanie Przerwanie jest inicjowane przez urządzenie zewnętrzne względem mikroprocesora, zgłaszające potrzebę
Bardziej szczegółowoPROGRAMOWANIE w C prolog
PROGRAMOWANIE w C prolog dr inż. Jarosław Stańczyk Uniwersytet Przyrodniczy we Wrocławiu Wydział Biologii i Hodowli Zwierząt Katedra Genetyki 1 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014
Bardziej szczegółowo4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24
Wymagania proceduralnych języków wysokiego poziomu ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe procesorów ASK MP.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad.
Bardziej szczegółowo1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Bardziej szczegółowoProgramowanie mikrokontrolerów AVR
Programowanie mikrokontrolerów AVR Czym jest mikrokontroler? Mikrokontroler jest małym komputerem podłączanym do układów elektronicznych. Pamięć RAM/ROM CPU wykonuje program Układy I/O Komunikacje ze światem
Bardziej szczegółowoPodstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści
Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści 1. Konfiguracja pinów2 2. ISP..2 3. I/O Ports..3 4. External Interrupts..4 5. Analog Comparator5 6. Analog-to-Digital Converter.6 7.
Bardziej szczegółowoWątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego
Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować
Bardziej szczegółowoZygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Współpraca z układami peryferyjnymi i urządzeniami zewnętrznymi Testowanie programowe (odpytywanie, przeglądanie) System przerwań Testowanie programowe
Bardziej szczegółowoProgramowanie mikrokontrolerów 2.0
Programowanie mikrokontrolerów 2.0 Układy peryferyjne, wyjścia i wejścia binarne Marcin Engel Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 31 marca 2015 Co możemy podłączyć do mikrokontrolera?
Bardziej szczegółowoWykład 2. Mikrokontrolery z rdzeniami ARM
Źródło problemu 2 Wstęp Architektura ARM (Advanced RISC Machine, pierwotnie Acorn RISC Machine) jest 32-bitową architekturą (modelem programowym) procesorów typu RISC. Różne wersje procesorów ARM są szeroko
Bardziej szczegółowoPROGRAMOWALNE SYSTEMY MECHATRONIKI
PROGRAMOWALNE SYSTEMY MECHATRONIKI Laboratorium nr 5 Podstawy programowania mikrokontrolerów. Przerwania. 1. System przerwań informacje ogólne Programy sterujące mikrokontrolerów rzadko mają postać listy
Bardziej szczegółowoMikrokontroler ATmega32. Język symboliczny
Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami
Bardziej szczegółowoWykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor
Bardziej szczegółowoInstytut Teleinformatyki
Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Systemy Czasu Rzeczywistego Programowanie wyświetlacza graficznego LCD laboratorium: 01 autor: mgr inż. Paweł Pławiak
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania
Bardziej szczegółowoŚrodowisko Keil. Spis treści. Krzysztof Świentek. Systemy wbudowane. 1 Trochę teorii. 2 Keil
Środowisko Krzysztof Świentek Systemy wbudowane Spis treści 1 2 Źródła 1 http://infocenter.arm.com 2 http://www.keil.com/arm/mdk.asp 3 http://pl.wikipedia.org Spis treści 1 2 Co to jest toolchain? Zbiór
Bardziej szczegółowoProgramowanie mikrokontrolerów 2.0
4.1 Programowanie mikrokontrolerów 2.0 Taktowanie Marcin Engel Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 22 listopada 2016 4.2 Drzewo taktowania w STM32F411 Źródło: RM0383 Reference
Bardziej szczegółowoArchitektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania
Architektura Systemów Komputerowych Jednostka ALU Przestrzeń adresowa Tryby adresowania 1 Jednostka arytmetyczno- logiczna ALU ALU ang: Arythmetic Logic Unit Argument A Argument B A B Ci Bit przeniesienia
Bardziej szczegółowoPrzerwania, polling, timery - wykład 9
SWB - Przerwania, polling, timery - wykład 9 asz 1 Przerwania, polling, timery - wykład 9 Adam Szmigielski aszmigie@pjwstk.edu.pl SWB - Przerwania, polling, timery - wykład 9 asz 2 Metody obsługi zdarzeń
Bardziej szczegółowoOpóźnienia w STM32 (2)
Precyzyjne odmierzanie czasu w połączeniu z trybami oszczędzania energii Kurs grafika pochodzi z http://7art-screensavers.com Opóźnienia w STM32 (2) Precyzyjne odmierzanie czasu w połączeniu z trybami
Bardziej szczegółowoPrzerwania w systemie mikroprocesorowym. Obsługa urządzeo wejścia/wyjścia
Przerwania w systemie mikroprocesorowym 1 Obsługa urządzeo wejścia/wyjścia W każdym systemie mikroprocesorowym oprócz pamięci programu i pamięci danych znajduje się szereg układów lub urządzeo wejścia/wyjścia,
Bardziej szczegółowoJęzyk C - podstawowe informacje
Język C - podstawowe informacje Michał Rad AGH Laboratorium Maszyn Elektrycznych 2014-12-05 Outline Program w języku C Funkcje Składnia Instrukcje sterujace Na koniec... Po kolei napisać program (zwykły
Bardziej szczegółowoTechnika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08
Mikrokontrolery 8-bitowe Mikrokontrolery 8-bitowe stanowią wciąż najliczniejszą grupę mikrokontrolerów. Istniejące w chwili obecnej na rynku rodziny mikrokontrolerów opracowane zostały w latach 80-tych.
Bardziej szczegółowoCo to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).
Zarządzanie pamięcią Pamięć: stos i sterta Statyczny i dynamiczny przydział pamięci Funkcje ANSI C do zarządzania pamięcią Przykłady: Dynamiczna tablica jednowymiarowa Dynamiczna tablica dwuwymiarowa 154
Bardziej szczegółowoĆwiczenie nr 6. Programowanie mieszane
Ćwiczenie nr 6 Programowanie mieszane 6.1 Wstęp Współczesne języki programowania posiadają bardzo rozbudowane elementy językowe, co pozwala w większości przypadków na zdefiniowanie całego kodu programu
Bardziej szczegółowoArchitektura mikroprocesorów TEO 2009/2010
Architektura mikroprocesorów TEO 2009/2010 Plan wykładów Wykład 1: - Wstęp. Klasyfikacje mikroprocesorów Wykład 2: - Mikrokontrolery 8-bit: AVR, PIC Wykład 3: - Mikrokontrolery 8-bit: 8051, ST7 Wykład
Bardziej szczegółowoProgramowanie mikrokontrolerów 2.0
3.1 Programowanie mikrokontrolerów 2.0 Uniwersalny interfejs szeregowy, standardowe tekstowe wejście i wyjście Marcin Engel Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 11 października
Bardziej szczegółowowykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,
, Programowanie, uzupełnienie notatek: dr Jerzy Białkowski , 1 2 3 4 , Wczytywanie liczb , Wczytywanie liczb 1 #include 2 #include < s t d l i b. h> 3 4 int main ( ) { 5 int rozmiar, numer
Bardziej szczegółowoPołączenie DS18B20 z STM32. Projekt dla środowiska CooCox
Połączenie DS18B20 z STM32. Projekt dla środowiska CooCox Artykuł stanowi uzupełnienie kursu STM-y nie tylko dla początkujących. Pokazane zostaną przykłady procedur pozwalających kontrolerowi STM32 obsłużyć
Bardziej szczegółowoWykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe
Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)
Bardziej szczegółowoUkład wykonawczy, instrukcje i adresowanie. Dariusz Chaberski
Układ wykonawczy, instrukcje i adresowanie Dariusz Chaberski System mikroprocesorowy mikroprocesor C A D A D pamięć programu C BIOS dekoder adresów A C 1 C 2 C 3 A D pamięć danych C pamięć operacyjna karta
Bardziej szczegółowoZadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów
Operacje na stosie Stos jest obszarem pamięci o dostępie LIFO (Last Input First Output). Adresowany jest niejawnie przez rejestr segmentowy SS oraz wskaźnik wierzchołka stosu SP. Używany jest do przechowywania
Bardziej szczegółowoWstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)
Języki i Paradygmaty Programowania Laboratorium 1 Obiekty i klasy C++ Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać) UWAGA! Umiejętność tworzenia
Bardziej szczegółowoProgramowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 8: Procedury Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Linkowanie z bibliotekami zewnętrznymi Operacje na stosie
Bardziej szczegółowoProgramowanie mikrokontrolerów AVR z rodziny ATmega.
Programowanie mikrokontrolerów AVR z rodziny ATmega. Materiały pomocnicze Jakub Malewicz jakub.malewicz@pwr.wroc.pl Wszelkie prawa zastrzeżone. Kopiowanie w całości lub w częściach bez zgody i wiedzy autora
Bardziej szczegółowoSpis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne
Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...
Bardziej szczegółowoWprowadzenie do podstaw programowania AVR (na przykładzie mikrokontrolera ATmega 16 / 32)
Wprowadzenie do podstaw programowania AVR (na przykładzie mikrokontrolera ATmega 16 / 32) wersja 0.4 (20 kwietnia 2015) Filip A. Sala W niniejszym, bardzo krótkim opracowaniu, postaram się przedstawić
Bardziej szczegółowoTemat 7. Programowanie mikrokontrolerów z rodziny PIC16 w języku C przy użyciu HI-TECH C for PIC10/12/16
Temat 7. Programowanie mikrokontrolerów z rodziny PIC16 w języku C przy użyciu HI-TECH C for PIC10/12/16 Spis treści do tematu 7 7.1. Używanie kompilatora 7.2. Rozszerzenia języka ANSI C 7.3. Optymalizacja
Bardziej szczegółowoInstytut Teleinformatyki
Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikrokontrolery i Mikroprocesory DMA (Direct Memory Access) laboratorium: 05 autor: mgr inż. Katarzyna Smelcerz
Bardziej szczegółowoPoradnik programowania procesorów AVR na przykładzie ATMEGA8
Poradnik programowania procesorów AVR na przykładzie ATMEGA8 Wersja 1.0 Tomasz Pachołek 2017-13-03 Opracowanie zawiera opis podstawowych procedur, funkcji, operatorów w języku C dla mikrokontrolerów AVR
Bardziej szczegółowoProjektowanie klas c.d. Projektowanie klas przykład
Projektowanie klas c.d. ogólne wskazówki dotyczące projektowania klas: o wyodrębnienie klasy odpowiedź na potrzeby życia (obsługa rozwiązania konkretnego problemu) o zwykle nie uda się utworzyć idealnej
Bardziej szczegółowoProcesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]
Procesor ma architekturę akumulatorową. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset or Rx, Ry, A add Rx load A, [Rz] push Rx sub Rx, #3, A load Rx, [A] Procesor ma architekturę rejestrową
Bardziej szczegółowoPRZERWANIA. P1 - Procedura obslugi przerwania. Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1
PRZERWANIA 1. Obsługa zdarzeń poprzez Obsługa polega na przerwaniu aktualnie wykonywanego procesu i wykonaniu procedury przypisanej danemu zdarzeniu gdy takie zdarzenie zajdzie. Procedura nazywa się procedurą
Bardziej szczegółowo1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33
Spis treści 3 1. Wprowadzenie...11 1.1. Wstęp...12 1.2. Mikrokontrolery rodziny ARM...13 1.3. Architektura rdzenia ARM Cortex-M3...15 1.3.1. Najważniejsze cechy architektury Cortex-M3... 15 1.3.2. Rejestry
Bardziej szczegółowoJęzyk C zajęcia nr 11. Funkcje
Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji
Bardziej szczegółowoJęzyki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -
Bardziej szczegółowoFunkcja (podprogram) void
Funkcje Co to jest funkcja? Budowa funkcji Deklaracja, definicja i wywołanie funkcji Przykłady funkcji definiowanych przez programistę Przekazywanie argumentów do funkcji Tablica jako argument funkcji
Bardziej szczegółowoJęzyk programowania: Lista instrukcji (IL Instruction List)
Język programowania: Lista instrukcji (IL Instruction List) Wykład w ramach przedmiotu: Sterowniki programowalne Opracował dr inż. Jarosław Tarnawski 08.12.2009 Norma IEC 1131 Języki tekstowe Języki graficzne
Bardziej szczegółowoArchitektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC
Architektura Systemów Komputerowych Rozwój architektury komputerów klasy PC 1 1978: Intel 8086 29tys. tranzystorów, 16-bitowy, współpracował z koprocesorem 8087, posiadał 16-bitową szynę danych (lub ośmiobitową
Bardziej szczegółowoInstytut Teleinformatyki
Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikrokontrolery i Mikroprocesory Zapoznanie się ze środowiskiem IAR Embedded Workbench; kompilacja, debuggowanie,
Bardziej szczegółowoPROGRAMOWANIE NISKOPOZIOMOWE. Adresowanie pośrednie rejestrowe. Stos PN.04. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012
PROGRAMOWANIE NISKOPOZIOMOWE PN.04 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 3 Ćwiczenia laboratoryjne c Dr inż. Ignacy Pardyka (Inf.UJK) PN.04 Rok akad.
Bardziej szczegółowoPROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: QNX Neutrino Interrupts Mariusz Rudnicki 2016 Wstęp W QNX Neutrino wszystkie przerwania sprzętowe przechwytywane są przez jądro systemu. Obsługę
Bardziej szczegółowoInstrukcja do ćwiczeń
Instrukcja do ćwiczeń SYSTEMY WBUDOWANE Lab. 3 Przetwornik ADC + potencjometr 1. Należy wejść na stronę Olimexu w celu znalezienia zestawu uruchomieniowego SAM7-EX256 (https://www.olimex.com/products/arm/atmel/sam7-ex256/).
Bardziej szczegółowo1.2. Architektura rdzenia ARM Cortex-M3...16
Od Autora... 10 1. Wprowadzenie... 11 1.1. Wstęp...12 1.1.1. Mikrokontrolery rodziny ARM... 14 1.2. Architektura rdzenia ARM Cortex-M3...16 1.2.1. Najważniejsze cechy architektury Cortex-M3... 16 1.2.2.
Bardziej szczegółowoPodstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści
Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści 1. Konfiguracja pinów...2 2. ISP...2 3. I/O Ports...3 4. External Interrupts...4 5. Analog Comparator...5 6. Analog-to-Digital Converter...6
Bardziej szczegółowoCo nie powinno być umieszczane w plikach nagłówkowych:
Zawartość plików nagłówkowych (*.h) : #include #define ESC 27 dyrektywy dołączenia definicje stałych #define MAX(x,y) ((x)>(y)?(x):(y)) definicje makr int menu(char* tab[], int ilosc); struct
Bardziej szczegółowoWstęp...9. 1. Architektura... 13
Spis treści 3 Wstęp...9 1. Architektura... 13 1.1. Schemat blokowy...14 1.2. Pamięć programu...15 1.3. Cykl maszynowy...16 1.4. Licznik rozkazów...17 1.5. Stos...18 1.6. Modyfikowanie i odtwarzanie zawartości
Bardziej szczegółowoSystemy operacyjne system przerwań
system przerwań przerwanie: procesor zawiesza wykonanie bieżącego zadania i przechodzi do obsługi przerwania przerwania: maskowalne i niemaskowalne wektor przerwań adres (tablica adresów) kodu obsługi
Bardziej szczegółowoPrezentacja systemu RTLinux
Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach
Bardziej szczegółowoWstęp do programowania
wykład 10 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Przesyłanie argumentów - cd Przesyłanie argumentów do funkcji - tablice wielowymiarowe Przekazywanie tablic wielowymiarowych
Bardziej szczegółowoUkład sterowania, magistrale i organizacja pamięci. Dariusz Chaberski
Układ sterowania, magistrale i organizacja pamięci Dariusz Chaberski Jednostka centralna szyna sygnałow sterowania sygnały sterujące układ sterowania sygnały stanu wewnętrzna szyna danych układ wykonawczy
Bardziej szczegółowoWykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430
Wykład 4 Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430 Mikrokontrolery PIC Mikrokontrolery PIC24 Mikrokontrolery PIC24 Rodzina 16-bitowych kontrolerów RISC Podział na dwie podrodziny: PIC24F
Bardziej szczegółowo2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Bardziej szczegółowoProcesory firmy ARM i MIPS
Procesory firmy ARM i MIPS 1 Architektura procesorów ARM Architektura ARM (Advanced RISC Machine, pierwotnie Acorn RISC Machine) jest 32-bitową architekturą (modelem programowym) procesorów typu RISC.
Bardziej szczegółowoCzęść I - Sterownik przerwań 8259A i zegar/licznik 8253
Programowanie na poziome sprzętu opracowanie pytań Część I - Sterownik przerwań 8259A i zegar/licznik 8253 Autor opracowania: Marcin Skiba cines91@gmail.com 1. Jakie są dwie podstawowe metody obsługi urządzeń
Bardziej szczegółowoMARM. Laboratorium 1 system zegarów, porty wejścia/wyjścia. M. Suchenek
MARM M. Suchenek Laboratorium 1 system zegarów, porty wejścia/wyjścia Celem laboratorium jest zapoznanie się ze środowiskiem uruchomieniowym Keil µvision, w tym konfiguracja środowiska, systemu zegarów,
Bardziej szczegółowoPodstawy programowania komputerów
Podstawy programowania komputerów Wykład 14: Programowanie współbieżne w C Definicja programowania współbieżnego Programowanie współbieżne jest tworzeniem programów, których wykonanie powoduje uruchomienie
Bardziej szczegółowoProgramowanie mikrokontrolerów 2.0
Programowanie mikrokontrolerów 2.0 Zegar czasu rzeczywistego Marcin Engel Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 5 maja 2015 Zegar czasu rzeczywistego Niezależny układ RTC (ang.
Bardziej szczegółowo