Programowanie mikrokontrolerów 2.0

Podobne dokumenty
Programowanie mikrokontrolerów 2.0

Architektura ARM. Materiały do wykładu. Marcin Peczarski. 19 maja Instytut Informatyki Uniwersytet Warszawski

Programowanie mikrokontrolerów 2.0

Wykład 6. Mikrokontrolery z rdzeniem ARM

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Wykład 2. Mikrokontrolery z rdzeniami ARM

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

MIKROKONTROLERY I MIKROPROCESORY

Systemy na Chipie. Robert Czerwiński

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33


Szkolenia specjalistyczne

11.Mikrokomputeryjednoukładowe

Procesory Blackfin. Część 1

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

ZL30ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

ZL28ARM. Zestaw uruchomieniowy dla mikrokontrolerów AT91SAM7XC

Wykład 7. Architektura mikroprocesorów powtórka

Wykład 2. Mikrokontrolery z rdzeniami ARM

Kurs programowania mikrokontrolerów ARM z rodziny Cortex-M3

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

ZL29ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Systemy wbudowane. Paweł Pełczyński

ZL27ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

WPROWADZENIE Mikrosterownik mikrokontrolery

Systemy wbudowane Mikrokontrolery

Mikrokontroler Wykład 5

1.2. Architektura rdzenia ARM Cortex-M3...16

ADuCino 360. Zestaw uruchomieniowy dla mikrokontrolerów ADuCM360/361

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

Wstęp Architektura... 13

ZL25ARM. Płyta bazowa dla modułów diparm z mikrokontrolerami STR912. [rdzeń ARM966E-S]

LITEcomp. Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19

Maszyny liczace - rys historyczny

Charakterystyka mikrokontrolerów

Moduł prototypowy X3-DIL64 z procesorem ATxmega128A3U-AU

ICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4

Architektura mikroprocesorów TEO 2009/2010

KA-NUCLEO-F411CE. Płytka rozwojowa z mikrokontrolerem STM32F411CE

System czasu rzeczywistego

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

MMstm32F103Vx. Instrukcja uŝytkownika REV 1.1. Many ideas one solution

dokument DOK wersja 1.0

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji.

3. Sygnały zegarowe i ich konfiguracja, mechanizmy bezpieczeństwa... 47

2. Architektura mikrokontrolerów PIC16F8x... 13

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Układy zegarowe w systemie mikroprocesorowym

System on Chip na miarę S P R Z Ę T

Procesory firmy ARM i MIPS

ZL2ARM easyarm zestaw uruchomieniowy dla mikrokontrolerów LPC2104/5/6 (rdzeń ARM7TDMI-S)

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

USB interface in 8-bit microcontrollers PIC18F family manufactured by Microchip.

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

MMstm32F103R. Instrukcja uŝytkownika REV 1.1. Many ideas one solution

Aparatura Elektroniczna (EAE) Stopień studiów i forma: I stopień, stacjonarna Rodzaj przedmiotu: obowiązkowy - 2

Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych

Programowanie mikrokontrolerów AVR

STM32L0: Cortex-M0+ w rodzinie STM32

Tab. 1. Zestawienie najważniejszych parametrów wybranych mikrokontrolerów z rodziny LPC2100, które można zastosować w zestawie ZL3ARM.

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

ISBN Copyright by Wydawnictwo BTC Warszawa Redaktor techniczny: Delfina Korabiewska Redaktor merytoryczny: mgr Anna Kubacka

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe

Moduł prototypowy.. Leon Instruments. wersja 1.0

Wykład Mikroprocesory i kontrolery

ZL9AVR. Płyta bazowa dla modułów ZL7AVR (ATmega128) i ZL1ETH (RTL8019)

Instrukcja do laboratorium Systemy wbudowane ARM 9 TDMI

1 Procesory sygnałowe DSC (Digital Signal Controllers)

NXP ma nowe ARM-y. BlueStreak: co i jak

1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

WYDZIAŁ ELEKTRYCZNY KATEDRA TELEKOMUNIKACJI I APARATURY ELEKTRONICZNEJ. Instrukcja do zajęć laboratoryjnych. Numer ćwiczenia: 0

ZL2ARM easyarm zestaw uruchomieniowy dla mikrokontrolerów LPC2104/5/6 (rdzeń ARM7TDMI-S)

Wykład 3. Przegląd mikrokontrolerów 8-bit: STM8

TECHNIKA MIKROPROCESOROWA II

Laboratorium Procesorów Sygnałowych

Wykład 5. Architektura ARM

SML3 październik

ZL5ARM. Zestaw uruchomieniowy dla mikrokontrolerów LPC2119/2129 (rdzeń ARM7TMDI-S) Kompatybilność z zestawem MCB2100 firmy Keil

WYDZIAŁ ELEKTRYCZNY KATEDRA TELEKOMUNIKACJI I APARATURY ELEKTRONICZNEJ. Instrukcja do zajęć laboratoryjnych. Numer ćwiczenia: 5

str75xfr MMstR75x Instrukcja uŝytkownika REV 1.1 Many ideas one solution

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH. PROCESORY OSADZONE kod kursu: ETD 7211 SEMESTR ZIMOWY 2017

Instytut Teleinformatyki

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

AsLinkEx instrukcja obsługi

Porty GPIO w mikrokontrolerach STM32F3

Technika Mikroprocesorowa

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

NOTATNIK KONSTRUKTORA Płytka prototypowa z mikrokontrolerem STM32 L4

UNO R3 Starter Kit do nauki programowania mikroprocesorów AVR

Elementy składowe systemu komputerowego

BF30 OCDLINK/USBASP ARM-JTAG/AVR-ISP Programmer-debugger Instrukcja obsługi

Jednym z najlepszych sposobów poznawania nowego typu mikrokontrolera

Podstawy Techniki Mikroprocesorowej

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

Transkrypt:

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 elementy (zależnie od modelu): jednostka obliczeniowa (8-, 16-, 32-bitowa) pamięć danych (SRAM, EEPROM, FRAM) pamięć programu (Flash, ROM, EEPROM) układy taktujące (generator kwarcowy, generator RC, pętla synchronizacji fazy lub częstotliwości PLL, FLL) kontroler przerwań kontroler DMA liczniki przetworniki analogowo-cyfrowe przetworniki cyfrowo-analogowe interfejsy szeregowe (UART, USART, LIN, IrDA, SPI, I 2 C, I 2 S, CAN, SDIO, 1-Wire, USB, Ethernet,... ) interfejsy równoległe (LCD, kamera, SRAM, DRAM, Flash)...

Co to jest mikrokontroler?... interfejs do debugowania (JTAG, SWD) układ nadzorujący, strażnik (ang. watchdog) układ zarządzania poborem prądu zegar czasu rzeczywistego RTC (ang. Real Time Clock) generator liczb losowych akcelerator kryptograficzny (AES, SHA,... )... mikrokontroler = komputer w jednym układzie scalonym

Popularne mikrokontrolery 8051 firmy Intel i jego liczne klony PIC firmy Microchip Technology 68HC firmy Motorola (obecnie Freescale) Z8 firmy Zilog AVR firmy Atmel MSP430 firmy Texas Instruments ARM, produkowane przez wiele firm, np.: Atmel Freescale NXP Samsung STMicroelectronics Texas Instruments...

ARM = Advanced RISC Machines Międzynarodowa firma, mająca główną siedzibę w Cambridge w Wielkiej Brytanii Projektuje i sprzedaje licencje na rdzenie ARM Nie produkuje krzemu Większość urządzeń mobilnych, w tym głównie telefonów komórkowych, i systemów wbudowanych zawiera rdzenie ARM

Rozwój 32-bitowej architektury ARM Źródło: http://www.arm.com 1.6

64-bitowa architektura ARM Źródło: http://www.arm.com 1.7

ARM Cortex-A i Cortex-R Rdzenie Cortex-A przeznaczone są do stosowania w urządzeniach wymagających dużych mocy obliczeniowych i umiarkowanego zużycia energii smartfony tablety Rdzenie Cortex-R przeznaczone są do stosowania w systemach czasu rzeczywistego (ang. real time), gdzie wymagana jest szybka reakcja na zdarzenia, wysoka niezawodność, spora moc obliczeniowa motoryzacja lotnictwo energetyka

ARM Cortex-M Cortex-M7 przeznaczony do systemów wbudowanych wymagających bardzo dużej wydajności Cortex-M4 przeznaczony do systemów wbudowanych wymagających dużej wydajności FPU SP i DSP tylko w rdzeniach M4 i M7 Cortex M3 przeznaczony do szerokiego stosowania w systemach wbudowanych Cortex-M1 przeznaczony do implementacji w FPGA (ang. Field Programmable Gate Array) ASIC (ang. Application Specific Integrated Circuit) ASSP (ang. Application Specific Standard Product) Cortex-M0+ przeznaczony do urządzeń o małym zużyciu energii ograniczony zestaw instrukcji uproszczona architektura alternatywa dla architektur 8- i 16-bitowych Cortex-M0 to poprzednia (mniej udana) wersja Cortex-M0+

ARM SecureCore SC300 rdzeń Cortex-M3 SC100 rdzeń ARM7TDMI SC000 rdzeń Cortex-M0 Główny obszar zastosowań to karty czipowe SIM płatnicze do dekoderów TV identyfikacyjne

Rodzina mikrokontrolerów STM32 Źródło: http://www.st.com/stm32 1.11

Jak zacząć zabawę? Trzeba kupić: mikrokontroler troszkę innych elementów elektronicznych (rezonator kwarcowy, diody świecące, rezystory, kondensatory, mikroprzełączniki, złącza,... ) programator laminat, wytrawiacz, lutownicę i inne narzędzia Ponadto należy: przygotować komputer z oprogramowaniem nauczyć się projektować obwody drukowane Ale obiecaliśmy, że nie będziemy lutować...

Nucleo I I I I Szybkie tworzenie układów testowych Programowanie i debugowanie przez USB Dostępne różne ekspandery Dodatkowe układy podłączane za pomocą kabelków 1.13

Nucleo-F411RE Mikrokontroler STM32 32-bitowy mikrokontroler STMicroelectronics F4 Cortex-M4 o maks. częst. takt. 84 180 MHz 11 oznaczenie modelu, wbudowane peryferie R rozmiar obudowy: 64 wyprowadzenia E rozmiar pamięci Flash: 512 KiB T typ obudowy: LQFP 6 zakres temperatur pracy: 40... 85 C STM32F411RET6 maks. częst. takt. 100 MHz, 128 KiB SRAM

Interfejsy do programowania i debugowania w układzie JTAG (ang. Joint Test Action Group) wyprowadzenia JTMS (PA13), JTCK (PA14), JTDI (PA15), JTDO (PB3), NJTRST (PB4) SWD (ang. Serial Wire Debug) wyprowadzenia SWDIO (PA13), SWCLK (PA14) Przykładowe adaptery JTAG/SWD USB ARM-USB-TINY-H J-Link ST-LINK/V2-1 Adapter korzysta też z wyprowadzenia NRST, zerującego mikrokontroler

Środowisko programistyczne GCC: polecenie arm-eabi-gcc Binutils: przydatne programy arm-eabi-ar, arm-eabi-as, arm-eabi-ld, arm-eabi-objcopy, arm-eabi-objdump,... GDB: debuger arm-eabi-gdb OpenOCD (ang. Open On Chip Debugger): polecenie openocd Newlib: standardowa biblioteka C dla systemów wbudowanych Program make Dostępne w labie po dodaniu do.bash_profile ścieżki poszukiwań plików PATH=$PATH:/opt/arm/bin export PATH Instrukcja i skrypt instalujący zestaw narzędzi dostępne w labie w katalogu /opt/arm/stm32/doc

Dokumentacja PM0214 Programming manual, STM32F3 and STM32F4 Series Cortex-M4 RM0383 Reference manual, STM32F411xC/E advanced ARM-based 32-bit MCUs STM32F411xC/E Data sheet STM32F411xC/E Errata sheet, device limitations UM1724 User manual, STM32 Nucleo boards W labie dostępna w katalogu /opt/arm/stm32/doc Aktualne wersje do ściągnięcia ze strony producenta http://www.st.com/stm32

Ogólne własności architektur ARMv6 do ARMv8 Rdzenie ARM mogą być cienkokońcówkowe lub grubokońcówkowe, w niektórych jest możliwość wyboru Cortex-M jest wyłącznie cienkokońcówkowy Jednolita przestrzeń adresowa architektura typu Princeton Osobne szyny do pamięci danych i programu organizacja typu Hardward Zestawy instrukcji maszynowych ISA (ang. Instruction Set Architecture): ARM, Thumb, Thumb-2 Cortex-M nie obsługuje zestawu ARM

Rejestry w Cortex-M4 32-bitowe: 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 S0 do S31 rejestry zmiennoprzecinkowe 64-bitowe: D0 do D15 rejestry zmiennoprzecinkowe, mapowane na pary rejestrów S0 do S31; tylko przesyłanie wartości rdzeń nie obsługuje arytmetyki podwójnej precyzji

Zestaw instrukcji maszynowych Wzorowany na RISC, aby łatwo potokować ldr r3, [r1, #36] adds r2, r3, #1 RISC-owe wołanie 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