Systemy wbudowane W 90 minut od wynalazku Jack'a Kilby do ...

87
Systemy wbudowane W 90 minut od wynalazku Jack'a Kilby do 32 bitowego procesora aplikacyjnego. Jacek Kołodziej 1

Transcript of Systemy wbudowane W 90 minut od wynalazku Jack'a Kilby do ...

Systemy wbudowane

W 90 minut od wynalazku Jack'a Kilby do 32 bitowego

procesora aplikacyjnego.

Jacek Kołodziej

1

PLAN

Kim jesteśmy…

Systemy wbudowane = zintegrowane

Procesor aplikacyjny wczoraj i dziś

Asembler? Tak ! Ale czy zawsze?

Narzędzia dla systemów wbudowanych

QUO VADIS

Czym warto się zająć?

2

3

Program wykładu

Systemy wbudowane wprowadzenie

Programowanie systemów wbudowanych w języku C

Rodzina ARM

Budowa uC z rdzeniem ARM Cortex M3

Systemy wielozadaniowe

Systemy czasu rzeczywistego (FreeRTOS)

wątki, planista, zasoby

3

Od zabawy

przez urządzenia

powszechnego użytku

do

systemów podtrzymywania

i ratowania życia

Katedra Elektroniki

Katedra Elektroniki

• Pozwolą przetrwać w mocno zurbanizowanym świecie:

• inteligentne budynki, systemy bezpieczeństwa publicznego

• Pozwolą zapewnić bezpieczny sposób przechowywania i transmisji

danych

• karty inteligentne, klucze szyfrujące

• Wspomagają proces wytwórczy oraz logistykę

• sieci przemysłowe, układy identyfikacyjne

Katedra Elektroniki

• Obecnie ponad 98% wszystkich układów przetwarzających jest,

właściwie ukrytych lub „wbudowanych” we wszelkiego rodzaju

przedmioty, które nawet nie wyglądają jak komputery.

• Klasyczny komputer opuszcza biurko …

• Karty kredytowe, telefony komórkowe, samochody, samoloty.

urządzenia domowe i biurowe;

• Rok 2006 – 4 miliardy procesorów,

rok 2020 1,500 milardów procesorów

• 2.7 b€ na programy badawcze w tym obszarze do 2017

http://www.artemis-ia.eu

Kierunki rozwoju

Sprzęt procesory aplikacyjne

Wydajność

Zarządzanie energią

Komunikacja

Oprogramowanie:

Modelowanie

Niezawodność

8

Jak to jest zrobione …

Architektura ?

CPU ?

Procesory, mikroprocesory

SoC, procesory aplikacyjne

Interfejsy ?

Oprogramowanie ?

9

Od lampy ….

Lampy od 1935 do 1960 Prototyp tranzystora

1947 Bell Labs

Tranzystory

1950 - 1960

Układ scalony INTEL 4004

1971

2300 tranz. 4 bity

pow. 3×4 mm

10

….do 0,45mm

PENTIUM 4 2000r

55 mln. tranz. 3GHz

11

Wynaleziony niezależnie przez Jack Kilby

(Texas Instruments, nagroda Nobla z fizyki 2000)

i Robert Noyce (Fairchild Semiconductors)

Produkowane komercyjnie od 1960 roku

Robert Noyce

Jack Kilby

12

Pierwszy układ był wzmacniaczem pośredniej częstotliwości, potem powstał

przerzutnik (J.Kilby marzec 1956 - $450) i oscylator

Aplikacje militarne

w 1967 Jack Kilby (TI ) buduje kalkulator 1967

http://www.computerhistory.org/

http://www.ti.com/corp/docs/kilbyctr/downloadphotos.shtml

13

Field Effect MOS Transistors

Typowo L = 1 do 10 mm, W = 2 do 500 mm,

grubość warstwy tlenku od 0.02 do 0.1 mm.

14

Struktura CMOS

15

static CMOS inverter

V, I

t

Idd VINVOUT

CGSp

CGDp

CDBp

CGSn

CGDn

CDBn

input

output

Vdd

CLextCLint

Vss

VOUT

VIN

Zarządzanie energią

16

Układy CMOS – Straty mocy

Pdiss

Prąd quasi- zwarcia bramki

Pq-s_ave ~ (tr + tf )

+ Pq-s + Pstatic

prąd upływuPrzeładowanie pojemności

bramkowych:

• wewnętrznej CLint

• zewnętrznych CLext

Pd_ave = (CLint + CLext ) f VDD2

f – częstotliwość pracy

VDD – napięcie zasilania

= Pdynamic

17

Metody zarządzania energią

Adaptacyjne sterowanie zegarem

Adaptacyjne sterowanie zasilaniem bloków funkcjonalnych

Efektywne zarządzanie wymaga algorytmów sterowania na

poziomie oprogramowania

18

1972 - W laboratoriach PARC powstaje obiektowy języka

programowania Smalltalk, stworzony przez Alana Kaya.

1972 - Powstaje procesor Intel 8008 (200 kHz), pierwszy 8 bitowiec

Procesory

1919

Proces CMOS

Otrzymywanie monokryształu krzemuSilicon Wafer

http://en.wikipedia.org/wiki/File:ICC_2008_Poland_Silicon_Wafer_1_edit.png

20

Procesor wielordzeniowy

21

22

Jak to jest zrobione …

Wydajność to nie tylko

szybkość taktowania

ważna jest także

architektura.

23

Maszyny liczące - John von Neumann

24

Arytmetyka

Architektura von Neumann

Treść programu PAMIEĆ

Moduł kontrolny

Układy We/Wy

24

Architektura Harwardzka – DSP 56300

25

• "Wzorcowa" realizacja maszyny

von Neumanna ze wspólną hierarchią

pamięci instrukcji i danych

• Wspólna hierarchia wyklucza równoczesne

pobieranie instrukcji i operacje na danych

– tzw. von Neumann bottleneck

• Nieograniczone możliwości modyfikacji programu

– obiekt zapisany przez procesor danych do hierarchii pamięci jako dana

może być następnie pobrany przez procesor instrukcji jako instrukcja

– możliwość programowania - potrzebna w komputerach uniwersalnych

– program może sam siebie modyfikować (automodyfikacja)

• nie zawsze jest to pożądana cecha

Architektura Princeton

M

PP DP

na postawie : http://wazniak.mimuw.edu.pl26

• Realizacja maszyny von Neumanna

z oddzielnymi górnymi warstwami

hierarchii pamięci i wspólnymi warstwami

dolnymi

– Przynajmniej jeden poziom kieszeni

jest oddzielny dla procesorów instrukcji i danych

• Większość odwołań do hierarchii pamięci jest realizowanych w

górnych warstwach

– szybkie działanie dzięki równoległości dostępów jak w architekturze

Harvard

• Wspólne dolne warstwy hierarchii umożliwiają zapis programu

– programowalność- niezbędna w komputerach uniwersalnych

Architektura Harward – Princeton

PM DM

M

PP DP

na postawie : http://wazniak.mimuw.edu.pl27

• Intel® QuickPath Technology - Providing point-to-point high-speed

links to distributed shared memory (Intel® 45nm microarchitectures -

codenamed Nehalem and Tukwila)

Przykład Core i7

28

• Klaster komputerowy (ang. cluster) - grupa połączonych jednostek komputerowych, które współpracują ze sobą w celu udostępnienia zintegrowanego środowiska pracy.

• Komputery wchodzące w skład klastra (będące członkami klastra) nazywane są węzłami (ang. node).

• Podział klastrów:

– Klastry wydajnościowe: pracujące jako komputer równoległy. Celem ich budowy jest powiększenie mocy obliczeniowej. Wiele obecnych superkomputerów działa na tej zasadzie.

– Klastry niezawodnościowe: pracujące jako zespół komputerów dublujących nawzajem swoje funkcje. W razie awarii jednego z węzłów, następuje automatyczne przejęcie jego funkcji przez inne węzły.

Klastry komputerów

2929

• Grid (ang. grid) to system przetwarzania danych

– integruje i zarządza zasobami będącymi pod kontrolą różnych domen (od instytucji po system operacyjny)

– połączony siecią komputerową, używa standardowych, otwartych protokołów i interfejsów ogólnego przeznaczenia (odkrywania i dostępu do zasobów, autoryzacji, uwierzytelniania) oraz dostarcza usług odpowiedniej jakości (QoS, oferuje usługi wyższego poziomu).

– twórca Ian Foster, profesor na Uniwersytecie w Chicago, naukowiec pracujący w ANL (ang. Argonne National Laboratory),

• Grid jest rozwinięciem idei klastra poza tradycyjne granice domeny.

Grid

3030

31

32

• Instrukcje procesorów CISC mają różne

długości

• Podczas wykonania instrukcji jednostka

interfejsu szyny może być bezczynna

przez kilka faz

– mogłaby ona pobrać kilka kolejnych słów.

o ile byłoby gdzie je przechować

• Rozwiązanie-zastąpienie pojedynczego rejestru

prefetch buforem FIFO-tzw. kolejką instrukcji

(instruction queue)

– jeśli w kolejce jest wolne miejsce, jednostka interfejsu szyny pobiera

do niej kolejne słowo w każdym cyklu bezczynności i inkrementuje PC

• Po wykonaniu skoku należy unieważnić zawartość kolejki i

skopiować nextPC do PC

• Kolejki instrukcji stosowano m in w procesorach MC68010, Intel

8086. 80286, i386

Kolejka rozkazów (instrukcji)

33

• IF (instruction fetch)- pobranie instrukcji

• RD (read) - dekodowanie i odczyt argumentów z rejestrów

• ALU (arithmetic-logic unit) - obliczenie wyniku w jednostce

arytmetyczno - logicznej

• MEM (memory) - wymiana danych z pamięcią

• WB (write back) - zwrotny zapis wyniku do rejestrów

Struktura potoku

34

Procesor superskalarny

na postawie : http://wazniak.mimuw.edu.pl35

Struktura komputera PC - 2006

na postawie : http://wazniak.mimuw.edu.pl36

Jak to jest zrobione …

Dla systemów

wbudowanych wszystkie

niezbędne elementy

powinny być wykonane

w jednym układzie

scalonym !

37

Kontrolery jednoukładowe

CPU

Oprogramowanie

Peryferia

Wspólna platforma

(SoC, uC)

38

Czym jest kontroler jednoukładowy

MCS51

39

Schemat blokowy

40

AVR zasoby

41

AVR zasoby

42

Rdzeń ATM 920T

43

Cechy

Around 1.2V internal, 1.8V/2.5V/3.3V memory, 3.3V external I/O microprocessor with 16KB I-Cache/16KB DCache/

MMU

External memory controller (SDRAM Control and Chip Select logic)

LCD controller (up to 4K color STN and 256K color TFT) with LCD-dedicated DMA

4-ch DMA controllers with external request pins

3-ch UARTs (IrDA1.0, 64-Byte Tx FIFO, and 64-Byte Rx FIFO)

2-ch SPls

IIC bus interface (multi-master support)

IIS Audio CODEC interface

AC’97 CODEC interface

SD Host interface version 1.0 & MMC Protocol version 2.11 compatible

2-ch USB Host controller / 1-ch USB Device controller (ver 1.1)

4-ch PWM timers / 1-ch Internal timer / Watch Dog Timer

8-ch 10-bit ADC and Touch screen interface

RTC with calendar function

Camera interface (Max. 4096 x 4096 pixels input support. 2048 x 2048 pixel input support for scaling)

130 General Purpose I/O ports / 24-ch external interrupt source

Power control: Normal, Slow, Idle and Sleep mode

On-chip clock generator with PLL

44

ARM9 Architecture

Integrated system for hand-held devices and general embeddedapplications.

16/32-Bit RISC architecture and powerful instruction set with ARM920T CPU core.

Enhanced ARM architecture MMU to support

WinCE, EPOC 32 and Linux.

Instruction cache, data cache, write buffer and

Physical address TAG RAM to reduce the effect of main memory bandwidth and latency on performance.

ARM920T CPU core supports the ARM debug architecture.

Internal Advanced Microcontroller Bus Architecture (AMBA) (AMBA2.0, AHB/APB).

45

Rd

zeń

ATM

92

0T

46

Interrupt Controller

60 Interrupt sources

(One Watch dog timer, 5 timers, 9 UARTs, 24 external interrupts, 4

DMA, 2 RTC, 2 ADC, 1 IIC, 2 SPI, 1 SDI, 2 USB, 1 LCD, 1 Battery

Fault, 1 NAND and 2 Camera), 1 AC97

Level/Edge mode on external interrupt source

Programmable polarity of edge and level

Supports Fast Interrupt request (FIQ) for very urgent interrupt

request

47

IIS, USB, AC97

• IIS-Bus Interface– 1-ch IIS-bus for audio

interface with DMA-basedoperation

– Serial, 8-/16-bit per channel data transfers

– 128 Bytes (64-Byte + 64-Byte) FIFO for Tx/Rx

– Supports IIS format and MSB-justified data format

• AC97 Audio-CODECInterface– Support 16-bit samples

– 1-ch stereo PCM inputs/ 1-ch stereo PCM outputs 1-ch MIC input

• USB Host– 2-port USB Host

– Complies with OHCI Rev. 1.0

– Compatible with USB Specification version 1.1

• USB Device– 1-port USB Device

– 5 Endpoints for USB Device

– Compatible with USB Specification version 1.1

48

SD, SPI, Camera

• SD Host Interface

– Normal, Interrupt and DMA data

transfer mode (byte, halfword, word

transfer) DMA burst4 access support

(only word transfer)

– Compatible with SD Memory Card

Protocol version 1.0

– Compatible with SDIO Card Protocol

version 1.0

– 64 Bytes FIFO for Tx/Rx

– Compatible with Multimedia Card

Protocol version 2.11

• SPI Interface

– Compatible with 2-ch Serial

Peripheral Interface - Protocol

version 2.11

– 2x8 bits Shift register for Tx/Rx

– DMA-based or interrupt-based

operation

• Camera Interface

• · ITU-R BT 601/656 8-bit mode support

• · DZI (Digital Zoom In) capability

• · Programmable polarity of video sync signals

• · Max. 4096 x 4096 pixels input support (2048 x

• 2048 pixel input support for scaling)

• · Image mirror and rotation (X-axis mirror, Y-axis

• mirror, and 180° rotation)

• · Camera output format (RGB 16/24-bit and YCbCr

• 4:2:0/4:2:2 format)

• Operating Voltage Range

• · Core: 1.20V for 300MHz

• 1.30V for 400MHz

• Memory: 1.8V/ 2.5V/3.0V/3.3V

• · I/O: 3.3V

• Operating Frequency

• · Fclk Up to 400MHz

• · Hclk Up to 136MHz

• · Pclk Up to 68MHz

• Package

• · 289-FBGA

49

NVIDIA® Tegra™ 2 MOBILE PROCESSOR

Wielordzeniowy system-on-a-chip (SoC)

low power GeForce™ GPU core

50

NVIDIA® Tegra™ 2 MOBILE PROCESSOR

Sprzętowa akceleracja obliczeń

NVIDIA Corporation

51

OMAP35x

52

53

• klasyczne przetwarzanie bazuje na koncepcji skalarnej

– jeden procesor, wykonujący zadania

– pozostałe bloki funkcjonalne „próżnują”, czekając na zakończenie pracy procesora

– przyspieszenie - procesor z wieloma blokami fyncjonalnymi(przetwarzanie superskalarne)

• komputery wektorowe, wieloprocesorowe

– posiadają wiele procesorów (od 64 do 8192).

– problem: synchronizacja pracy procesorów.

– Prawo Almdahla (1967): korzyści jakie daje zwiększenie liczby procesorów są ograniczone przez wąskie gardła.

Kierunki rozwoju metod przetwarzania

5454

• Wydajne, efektywne architektury, czyli nowe koncepcje budowy procesora :

– koncepcja CISC i RISC (1971) (Reduced Instructions Set Computing)

– 10% instrukcji – 90% operacji (zasada Pareto 20/80).

Kierunki rozwoju metod przetwarzania

20% produktów firmy daje jej 80% zysków

20% klientów przynosi nam 80% wartości sprzedaży

20% kryminalistów popełnia 80% przestępstw

20% kierowców powoduje 80% wypadków

20% słownictwa wystarczy by móc czytać 80% tekstów w języku

20% powierzchni dywanu przypada na 80% zużycia

20% ubrań nosimy przez 80% czasu

20% naszej pracy daje 80% efektów

20% obecności na wykładach daje 80% zaliczenie

Zasada 80/20 głosi, że 80% wyników wypływa tylko z 20% przyczyn,

inaczej mówiąc skromniejszymi środkami i mniejszym wysiłkiem

można osiągnąć większe efekty.

Schemat leżący u podstaw tej zasady został odkryty w roku 1897

przez włoskiego ekonomistę Vilfreda Pareto.

5555

Z prawami fizyki trudno dyskutować:

– ograniczają możliwości miniaturyzacji układów scalonych

– są przyczyną barier technologicznych wytwarzania IC

– determinują trudne do rozwiązania problemy odprowadzania ciepła (np.: z procesorów trójwymiarowych, nanorurki)

Potrzeba całkowicie nowej architektury

– Kwantowe, biologiczne, optyczne

• Wzrost szybkości działania do poziomu jaki osiąga ludzki mózg TIPS – 1012 (bilion operacji na sekundę)

• Mózg ludzki działa z szybkością 10 teraflopów i większą (10 bilionów

operacji)

Komputery przyszłości

5656

Komunikacja

57

Nowa fala

“everybody-in-the-Internet-wave”

„everything-in-the-Internet-wave”

Bluetooth, PAN (Personal Area Network), M2M

58

Statystyki

Według Forrester Research w

ciągu kolejnych lat

95% urządzeń podłączonych do

sieci nie będzie komputerami PC.

59

Functional principle from Web server and

browser

Web Server for Embedded Systems Klaus-D. Walter60

• Apache, IIS, GWS

• boa – (www.boa.org)

• thttpd – (www.acme.com)

Web server running under Linux

The most important thing by an

embedded Web server is the actual

resource requirements.

61

• The practicable binary files for these servers are always smaller than

80 Kbytes and can be integrated in the most embedded systems without

problems.

• For the dynamic generation of HTML pages both servers only offer CGI

(Common Gateway Interface) as enlargement (serverside-includes (SSI)

are not available)

• The maximal possible number of simultaneous requests = 1

– Server like boa and thttpd work only with one single process. If two users need to

get access onto a embedded Web server simultaneously, one of both have to

wait a few fractions of a second.

• There are not many simultaneous requests expected.

boa, thttpd

62

• CPU 32-bit ARM Core

• RAM 4 MB built in Flash 2 MB built in

• Ethernet Interface 10/100 Mbps, auto MDI/MDIX

• Serial Interface : TTL TxD, RxD, RTS, CTS, DTR, DSR, DCD, RST (reset circuit), GND

• GPIO: 4 programmable I/O pins

• Network Protocols : ICMP, ARP, IP, TCP, UDP, DHCP, HTTP, SNMP V1, SMTP, TFTP, Auto

IP, Telnet,

• Operation Modes Real COM, TCP Server, TCP Client, UDP, Ethernet Modem, RFC2217,

• Configuration Options Web Console, Serial Console (Serial Command Mode), Telnet Console,

Windows Utility

• Fixed TTY Drives SCO Unix, SCO OpenServer, UnixWare 7, SVR 4.2, QNX 4.25, QNX 6,

Solaris 10, FreeBSD, AIX 5.x

• Linux Real TTY DriversLinux kernel 2.4.x, 2.6.x

• Windows Real COM DriversWindows 95/98/ME/NT/2000, Windows XP/2003/Vista/2008/7

x86/x64, Embedded CE 5.0/6.0, XP Embedded

MiiNePort E2 10/100 Mbps embedded serial device server

http://www.moxa.com63

Minimoduł MMstm32F107

Sterownik warstwy fizycznej Ethernetu DP83848

10/100 Mb/s

Auto-MDIX (automatic medium-dependent interface crossover)

IEEE 802.3u Auto-Negotiation and Parallel Detection

Niski pobór mocy, typowo < 270mW

Tryby obniżonego poboru mocy

Parametry znacznie lepsze od specyfikacji IEEE, dzięki czemu możliwa jest praca

bez błędów transmisji do odległości 150m

http://www.propox.com/products/t_264.html?lang=pl

64

Minimoduł MMstm32F107

http://www.propox.com/products/t_264.html?lang=pl65

Katedra Elektroniki

Języki programowania: asembler, C, C++,

Systemy operacyjne: RTOS, Windows CE, Linux

66

67

68

Podnoszenie niezawodności

W systemach, gdzie wymagana jest wysoka niezawodność, stosuje

się redundancję większości (nierzadko wszystkich) bloków

funkcjonalnych

Bloki takie pracują w pełnie niezależnie, mogą być oddzielnie

zasilane oraz pracować według innych algorytmów

W systemach takich występuje moduł arbitra (jednostki wybierającej

– voter unit), której zadanie jest ocena i wybór decyzji pracujących

współbieżnie modułów

70

370 million US$ - cena braku testowania oprogramowania

Jedną z najbardziej spektakularnych awarii

spowodowanych błędem w oprogramowaniu

była katastrofa rakiety Arian 5 – Flight 501,

4 czerwca 1996

Bezpośrednia przyczyna to błąd przepełniania,

wywołany brakiem obsługi wyjątku przy

skalowaniu liczb zmiennoprzecinkowych w

reprezentacji 64 bitowej na całkowitoliczbowe

w reprezentacji 16bitowej bez znaku.

71

System z potrójną redundancją

Sygnał

wejściowy

Sygnał

wejściowy

Sygnał

wejściowy

Sygnał

wyjściowy

Alarm

72

System N redundantny

Sygnał

wejściowy

Sygnał

wejściowy

Sygnał

wejściowy

Sygnał wyjściowy

Alarm

Sygnał

wejściowy

73

System z lekką redundacją

Podstawowe

sygnały

wejścioweSygnał wyjściowy

Ostrzeżenia

i zapowiedzi

Podzbiór

podstawowych

sygnałów

wejściowych

Śledzenie wyjścia Podzbiór

podstawowych

sygnałów

wyjściowych

Idea opiera się na dodatkowej analizie ważnych sygnałów wejściowych

74

Modelowanie i co dalej …

75

76

Problem Zagłodzenia Filozofów

77

78

79

Userspace

Linux kernel in the system

C library

Linux Kernel

Hardware

Library A User app A

User app B

Event notification,

information expositionCall to services

Event notificationManage

hardware

80

Linux kernel size (2)

arch

block

crypt o

Document at ion

dr ivers

fs

include

init

ipc

kernel

lib

mm

net

scr ipt s

security

sound

usr

0 50000 100000 150000

Size of Linux source directories (KB)

Linux 2.6.17Measured with:du -s --apparent-size

81

Portability and hardware support

Runs on most architectures.

Scalability

Can run on super computers as well as

on tiny devices

(4 MB of RAM is enough).

Compliance to standards and

interoperability.

Exhaustive networking support.

Linux kernel key features

Security

It can't hide its flaws. Its code is

reviewed by many experts.

Stability and reliability.

Modularity

Can include only what a system

needs even at run time.

Easy to program

You can learn from existing code.

Many useful resources on the

net.

82

Jak projektować systemy embedded

83

Jak projektować systemy embedded

• Poznanie sprzętu !!!

• Poznanie metodyk (dobrych praktyk)

• oprogramowanie !!!

• budowanie urządzeń w oparciu o systemy operacyjne (RTOS)

• Stosowanie metodyk zarządzania procesem projektowym

• specyfikacja wymagań,

• planowanie,

• projektowanie,

• testowanie,

• przygotowanie dokumentacji technicznej,

• wdrożenie.

84

Inżynieria systemów wbudowanych

Budowa sprzętu : kontrolery i ich peryferia

Lepiej projektować czy kodować ?

Czyli co elektronik o projektach i procesie wiedzieć powinien ?

Metodyki modelowania systemów - UML i nie tylko

System operacyjny Embedded Linux, platforma sprzętowa, budowa

systemu

Systemy plików : przegląd, standard EIDE, karty SD, biblioteki

M2M – interfejsy sieciowe, serwery usług internetowych

USABILITY – ergonomia interfejsu użytkownika, QT design

System operacyjny Windows CE, konfiguracja programowanie

Analiza ryzyka, SRS, przypadki użycia

85

Podsumowanie

Oblicze współczesnego świata kształtowane jest przez inteligentne

urządzenia, o których istnieniu nie myślimy, czasem nie jesteśmy

nawet tego świadomi

System wbudowany to jedność ducha i materii, czyli

oprogramowania oraz sprzętu

Wzrost oczekiwań w stosunku od tego typu systemów wymaga

opracowania nowych architektur mikrokontrolerów oraz metodyk ich

programowania (modelowanie, implementacja, testowanie)

86

Pytania

87

Dziękuję za uwagę

Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Katedra Elektroniki , AGH Kraków

http://ke.agh.edu.pl/~lab301

Katedra Elektroniki, Kraków 200788