1 Open-source programování Hardware a přenositelnost Open Source Programování Pavel Píša.

Slides:



Advertisements
Podobné prezentace
© 2000 VEMA počítače a projektování spol. s r. o..
Advertisements

Mobilně a (ne)bezpečně
Tato prezentace byla vytvořena
Vytvořil: Petrásek Jan
D03 - ORiNOCO RG-based Wireless LANs - Technology
Vestavný modul pro počítačové vidění využívající hradlové pole Diplomová práce, Bc. Jan Šváb ČVUT Praha, Fakulta Elektrotechnická.
Norma IEC Komunikační sítě a systémy v podřízených stanicích
Sběrnice.
Průmyslová komunikace
Operační systémy Windows, Linux a Mac OS X Přehled vývoje
Sběrnice I. Sběrnice v počítačích. Sběrnice I. Sběrnice v počítačích.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Operating Systems Networking for Home and Small Businesses – Chapter.
Operační systémy.
Operační systémy.
Automation and Drives A&D AS Tomáš Halva Strana 1 (C) Si emens AG, 2002, Automation & Drives EK SIMATIC S7-200 SIMATIC S7-200 Komunikační procesor pro.
Databázové systémy Architektury DBS.
Zdroj Parametry – napájení všech komponent PC
David Kratochvíl. * Linux – označení pro operační systém (OS) * 1,3 milionu mobilních zařízení s Androidem aktivováno každý den * Většina ze TV.
Operační systém (OS) ICT Informační a komunikační technologie.
Výpočetní modely - /zdroj Peterka/
Pavel Dvořák Gymnázium Velké Meziříčí Počítačová sestava – rozšiřující karty Registrační číslo projektu: CZ.1.07/1.5.00/ Datum vytvoření:1. 11.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
MATLAB R14 prostředí pro vědeckotechnické výpočty
PROJEKT : SCADA systémy na mobilních zařízeních AUTOŘI : Ing. Ondřej Krejcar Ing. Stanislav Slíva.
PCI Express Pavel Stianko. 2 Požadavky doby Vysoká přenosová rychlost Quality of service – data musí být v určitý čas přístupná pro zpracování Zvyšování.
8 ZÓN 16 KLÁVESNIC 32 TYPŮ ZÓN 6 VÝSTUPŮ 10 UŽIVATELSKÝCH KÓDŮ 100 UDÁLOSTÍ V HISTORII DETEKTORY KLÁVESNICE G8.
Sběrnice II. Sběrnice v automatizační a měřicí technice.
Seznam.cz, a.s. I Radlická 2 I Praha 5 I Tel.: I Fax: FastRPC meziserverová.
Výpočetní technika kód předmětu: VT Ing. Miroslav Vachůn, Ph.D.
LonWorks  Otevřené distribuované systémy  Ucelená technologie  Komplexnost  Libovolná topologie  Nízká cena.
ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ KATEDRA TEORETICKÉ ELEKTROTECHKY Oddělení informatiky Java Micro Edition pro mobilní zařízení.
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost Číslo projektu: CZ.1.07/1.5.00/ Číslo materiálu: VY_32_INOVACE_PSK-3-12.
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Hardware osobních počítačů
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
OPERAČNÍ SYSTÉMY.
Typy systémů CAT / CAME (Computer Aided Technology / Measurement) vybrané typické úlohy pro počítačové měření a řízení: Process Control - aktivní zpětnovazební.
14. června 2004Michal Ševčenko Architektura softwarového systému DYNAST Michal Ševčenko VIC ČVUT.
Katedra počítačů ČVUT FEL
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Procesory pro kapesní počítače Sem. práce 31SCS Tomáš Hanikýř
Web services. Co jsou webservices Součinná spolupráce počítačů v síti Technologie pro vzdálené volání procedur (RPC) Nezávislá na platformě Data v XML.
Informační systémy v personálním řízení RNDr. Jan Žufan, Ph.D., MBA
Struktura operačních systémů
Operační systémy. Tomáš Vaníček Katedra inženýrské informatiky FSv, ČVUT Thákurova 7, Praha Dejvice, B407
Prezentace diplomové práce
Digitální výukový materiál zpracovaný v rámci projektu „EU peníze školám“ Projekt:CZ.1.07/1.5.00/ „SŠHL Frýdlant.moderní školy“ Škola:Střední škola.
1. 2 Zabezpečená mobilní komunikace 3 Private Circle chrání Vaši komunikaci před odposlechem či narušením. Jedná se o komplexní řešení pro zabezpečení.
OP VK VYT 2.3 Základní deska PC
Základy operačních systémů
1 FPA-1200 ST/PRM2-EU | 13/11/2008 | © Robert Bosch GmbH All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution,
Rozdělení počítačů (2). Projekt: CZ.1.07/1.5.00/ OAJL - inovace výuky Příjemce: Obchodní akademie, odborná škola a praktická škola pro tělesně.
Mainframe a Linux Dan Horák Software Engineer, Red Hat.
Web server SEA a monitorování dat pomocí tabletu nebo „chytrého“ telefonu Jan Voříšek.
Operační systémy Grafický subsystém © Milan Keršláger Obsah:
AS/400 (IBM iSeries) Úvod. Co vlastně je AS/400 (IBM i)? Aplikační systém 400 (AS/400) byl navržen jako počítač obecně použitelný v obchodním prostředí.
Reprezentace dat v počítači. základní pojmy  BIT označení b nejmenší jednotka informace v paměti počítače název vznikl z angl. BINARY DIGIT (dvojkové.
PC základní jednotka.
Vypracoval / Roman Málek
Programování mikropočítačů Platforma Arduino
Operační Systém Operační systém je v informatice základní programové vybavení počítače (tj. software), které je zavedeno do paměti počítače při jeho.
Číslo projektu OP VK Název projektu Moderní škola Název školy
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o, Orlová Lutyně
DIGITÁLNÍ UČEBNÍ MATERIÁL
Sběrnice v automatizační a měřicí technice
Simple IoT platform.
Informační a komunikační technika
DirectX Jan Kotrouš PGC3.
Přednášky z Distribuovaných systémů
Transkript prezentace:

1 Open-source programování Hardware a přenositelnost Open Source Programování Pavel Píša Michal Sojka František Vacek DCE FEL ČVUT © Copyright , Pavel Píša, Michal Sojka, František Vacek, Free-Electrons.com, GNU.org, kernel.org, Wikipedia.org, distrowatch.com Creative Commons BY-SA 3.0 license Latest update:

2 Open-source programování High resolution touch screen 2.84” (43mm x 58mm) 480x640 pixels 128MB SDRAM memory 256 MB integrated flash memory (expandable with microSD or microSDHC card) microSD slot supporting up to 16GB SDHC (Secure Digital High Capacity) cards (Supported microSD cards) Internal GPS module Bluetooth b/g WiFi 400Mhz ARM processor 2 3D accelerometers Neo FreeRunner – Openmoko 2 LEDs illuminating the two buttons on the rim of the case (one bicolor [blue|orange] behind the power button, 1 unicolor [red] behind the aux button) Tri-band GSM and GPRS USB Host function with 500mA power, allowing you to power USB devices for short periods (will drain the FreeRunner battery faster)

3 Open-source programování Neo Freerunner - GTA02 Plně otevřený HW Creative Commons Attribution Share- Alike Data včetně návrhu mechaniky Množství distribucí nad Qt (X11 nebo FB), Gtk, EFL (Enlightenment Foundation Libraries)

4 Open-source programování Neo Openmoko Architecture

5 Open-source programování OpenPhoenux - GTA MHz TI OMAP3 (ARM Cortex A8) 3D Graphics Accelerator and DSP 512 MB RAM, 512 MB Flash, Micro-SD up to 32 GB HSPA UMTS with up to 400h standby time GPS, Navigation Sensors, WLAN, Bluetooth, OTG2.0 Konference OpenMobility 2012 Openmoko is dead. Long live Openphoenux! Debian/LXDE (development system) QtMoko SHR Replicant (fully free Android) Softwarové vybavení – distribuce

6 Open-source programování The Open Graphics Project -OGD1 První návrh je prototypová deska pro PCI sběrnici. Podporuje dva DVI porty a TV výstup Algoritmy pro zobrazování a akceleraci grafiky jsou realizované pomoci FPGA Pro start OS i podpora VGA kompatibilního režimu - dosaženo již bootování běžné Gentoo distribuce Vlastní návrh HW - GPL licence Device Drivers (MIT/X11 licence) RTL FPGA návrh – Verilog – dvojí licence GPL a proprietární RTL pro PCI bridge ASIC bude uvolněno pod GPL po zaplacení ceny návrhu chipu Stránky projektu: Projekt vznikl především jako reakce na problémy s uzavřeností ovladačů a specifikací běžných akcelerovaných grafických karet. Může však být zajímavý i pro projekty akcelerovaného zpracování různých jiných dat.

7 Open-source programování Další zajímavé HW projekty RepRap Project (3D printer) RONJA (Reasonable Optical Near Joint Access) Milkymist (LatticeMico32 in a Xilinx Spartan-6 FPGA) Open Source Ecology – Global Village Construction Set

8 Open-source programování Freescale MPC 5200 Využívá několik projektů na Katedře řídicí techniky (DCE FEL) Eurobot Flamingos DCE team (Linux + CAN + vlastní sysless HW) RAMA UAV Control System Homepage – letový SW pro helikoptéru (Linux + CAN + vlastní sysless HW) PowerPC 400 MHz MPC603e FPU, MMU, 16K I/16K D Caches, 10/100 Ethernet MAC, ATA/IDE, USB 1.1 Host, 6x UART, SPI, 2x I2C, 3x I2S, 2x CAN, GPIO Timers, 1.5V core, 3.3V external 128 MB DDR RAM 64 MB NOR Flash Operační systémy Linux 2.6.x RTEMS (GPL + linking exception) VxWorks (uzavřený)

9 Open-source programování Hardware in the Loop Simulation of FBW System BOA 5200 – základ MPC 5200 Matlab Simulink Real Time Workshop pro modelování zátěže a řízení Cílová platforma Linux + CANfestival + HW FreeScale DSP 56k

10 Open-source programování Avionika pro UL letadla OCERA components LinCAN – CAN driver Software Environment Linux , SVGAlib, OpenAL, Tiff, ALSA Temperature s. Barometric s. Air speed sensor PC104 (Linux) Motorola HC12 CAN LCDisplay Sound system... Motorola HC12

11 Open-source programování Další projekty na DCE Bezpilotní vrtulník RAMA 3 palubní počítače Programováno v C OS Linux Kráčející robot SPEJBL 13 (!) palubních počítačů Programováno v C OS Linux Mobilní robot ReToBot 3 palubních počítače Programováno v C OS Linux

12 Open-source programování PiKRON - PiMX1 Board SW RTEMS, U-Boot, Linux, sysess Power supply +5 VDC from USB or +5VDC or VDC external Onboard 1.8 and 3.1 VCD switched regulators Dimensions 50 mm x 79 mm MCU ARM M9328 MX1 ARM920T 32 MB 100 MHz SDRAM (x16 only) 4 MB to 32 MB StrataFlash 3x UART (MX1) 3.1 Volts levels Direct LCD and Keyboard CMOS Video Input 2x 50-pin PRECI-DIP Ultraminiature

13 Open-source programování PiKRON PiMX1- aplikace AMV infúzní pumpa – RTEMS, uLUt, SuiTk Monitoring na PC – Qt + GNU/Linux (případně klient i pro Windows) Infrastruktura pro sběr dat – Wifi AP OpenWRT (MIPS Linux, uLUt)

14 Open-source programování Komunikační protokol uLan 1992 potřeba vybrat ve firmě PiKRON vhodný protokol pro komunikaci mezi MCU (v té době 8051/80552, nyní LPC2xxx, LPC17xx) pro sadu laboratorních přístrojů a zařízení V té době ETHERNET nepřichází pro malá zařízení v úvahu, dnes sice do úvahy přichází, nevýhoda - topologie již není sběrnice CAN pěkný, ale 8 B na zprávu je málo a není integrován všude Profibus – díky patentové politice Profibus International nebezpečná bomba, zdegradoval na řešení bez slovníků a objektové vrstvy, v zásadě master-slave Volba vlastního protokolu nad RS-485, řešení SW nad UART, 9-bit GPL driver Linux, Windows, sysless ARM LPC2xxx, LPC17xx GPL/LGPL/MPL řešení komunikace, objektových slovníků a správy pro zařízení

15 Open-source programování Real-Time aplikace a Linux Pro veškeré zde uvedené HW aplikace je kritická spolehlivost časování Nutné použít RT-Priority, RT Exekutivy (RTEMS) nebo plně preemptivní Linux Pozor: dnes i tak striktní požadavky na burze, i tam je zájem o RT jádro a odezvy v řádu milisekund Waiting task interrup t latency Interrupt handler Scheduler Running task Interrup t handler duratio n schedul er latency schedul er duration Proce ss contex t Interrup t context Makes the task runnable Free-Electrons Real-time in embedded Linux systems Michael Opdenacker, Thomas Petazzoni Real-Time Linux Wiki –

16 Open-source programování OpenCores.org Největší otevřená (LGPL, 3-cl BSD) knihovna FPGA návrhů Založeno Damjan Lampret Procesorů (8/53): OpenRISC, klony Zilog Z80, openMSP430, Plasma (MIPS), PIC16F84, 8051, 8080, Zet 16-bit x86, PIC16F84, ZCPU, TG68 m68k Řadiče/periferie: USB 2.0 controller Tri Ethernet 10/100/1000 Mbit Kryptografie DES, AES & RSA HyperTransport Tunnel

17 Open-source programování Portace kódu a křížový překlad Cross-compiling toolchains Thomas Petazzoni, Michael Opdenacker, Free Electrons x86 ARM x86 Compilation machine Execution machine Source code Native toolchain Cross-compiling toolchain x86 binary ARM binary

18 Open-source programování Nativní a křížové vývojové řetězce build host target Native build used to build the normal gcc of a workstation build host target Cross build used to build a toolchain that runs on your workstation but generates binaries for the target build host target Cross-native build used to build a toolchain that runs on your target and generates binaries for the target build host target Canadian build used to build on architecture A a toolchain that runs on architecture B and generates binaries for architecture C The most common solution in embedded

19 Open-source programování Konfigurace a kompilace GCC../../../gcc-4.3/configure -v --enable-languages=c,c++ \ --prefix=/usr \ --with-system-zlib --without-included-gettext --disable-nls \ --enable-clocale=gnu \ --enable-threads=posix --enable-tls --enable-secureplt \ --enable-shared \ --enable-objc-gc \ --with-float=soft --enable-cxx-flags=-msoft-float \ --enable-targets=arm-linux-gnu \ --enable-target-optspace \ --enable-symvers=gnu \ --with-arch=armv4t \ --enable-checking=release \ --build=x86_64-linux-gnu \ --host=x86_64-linux-gnu \ --target=arm-linux-gnueabi \ --enable-version-specific-runtime-libs \ --with-headers=/usr/arm-linux-gnueabi/sys-include Jak skompilovat Binutils, GCC, GLIB-C viz

20 Open-source programování Kompilace samostatných GNU balíků Při přípravě balíku aclocal: configure.ac aclocal.m4 autoheader: configure.ac config.h.in autoconf: configure.ac configure automake: Makefile.am Makefile.in Konfigurace před kompilací na cílovém nebo build systému./configure –host=arm-linux-gnueabi --enable-feature -- with-package-x=/opt/x Makefile.in Makefile, config.h.in config.h configure je možné ovlivňit i CFLAGS=x, LDFLAGS=x v prostředí Kompilace make all Instalace make DESTDIR=/packaging/root install

21 Open-source programování Přenositelnost kódu Je nutné psát čistě a používat jen to, co je jazykem deklarováno Používat pokud to je možné standardizovaná API (např. POSIX, The Open Group Base Specifications, IEEE Std ) Nepředpokládat pořadí byte/charů ve slově (little/big-endian) endian.h: __BYTE_ORDER, __LITTLE_ENDIAN, __BIG_ENDIAN byteswap.h: bswap_16, bswap_32 Nepředpokládat počet bitů v adresační jednotce (CHAR_BIT) (např DSP, kde char/int/long/float/double = 32-bit) stdint.h: int32_t, uint32_t, obecně intN_t, uintN_t, (u)int_leastN_t, (u)int_fastN_t, (u)intmax_t, size_t, ssize_t Nikdy nepřetypovat ukazatel na int a zpět, dokonce ani na long (především, kvůli Win32_64), intptr_t, uintptr_t sizeof (struct s), offsetof(struct s, d) Nezarovnané přístupy nemusí být architekturou podporované, v každém případě snižují výkonnost Atomické operace atomic_t a další jsou-li k dispozici

22 Open-source programování Síťové formáty/serializace Vnější síťové formáty vždy striktně oddělovat od vnitřních Zarovnání struktur se může lišit Při přenosu binárních dat používat alespoň uint32_t htonl(uint32_t hostlong); uint16_t htons(uint16_t hostshort); uint32_t ntohl(uint32_t netlong); uint16_t ntohs(uint16_t netshort); lépe IDL (Interface description language)/External Data Representation (XDR) Sun's ONC RPC The Open Group's Distributed Computing Environment IBM's System Object Model Object Management Group's CORBA nebo textové formáty XML, XMLRPC, SOAP, HTML, JSON atd. Pozor: zjednoduší řešení ale parsování je pomalé (FastRPC)

23 Open-source programování XDR - External Data Representation Od roku 1995 IETF standard Zajišťuje kódování/zabalení dat/hodnot způsobem, který je nezávislý na architektuře použitého počítačového systému Zakódovaná data mohou být přenášena heterogenním prostředí Encoding - kódování lokální reprezentace do přenosového XDR reprezentace Decoding – převod XDR reprezentace do lokálního formátu použitému v systému příjemce Kódování čísel, délek atd. je binární a položky jsou zarovnané na 4 byte, datové typy: boolean, int (32 bit), unsigned int (32 bit), hyper (64 bit), unsigned hyper (64 bit), IEEE float, IEEE double, quadruple (new in RFC1832), enumeration, structure, string, fixed length array, variable length array, union, fixed length opaque data, variable length opaque data, void - zero byte quantity, optional (some type + present flag)

24 Open-source programování Remote Procedure Calls (RPC) Základní mechanizmus pro budování klient- server řešení Na straně klienta volání náhradní funkce rpcprog_clnt.c – klient stub Ta zabalí data do XDR a pošle přes přenosový kanál (TCP/IP) Na straně serveru data přijata vygenerovaným kódem serveru rpcprog_svc.c -- server stub Po dekódování do lokální podoby volaná uživatelská funkce serveru Její návratová data zakódovaná do XDR, předaná klientovi Generovaná funkce v rpcprog_clnt.c dekóduje data a předá je volajícímu programu Pomocné společné funkce v rpcprog_xdr.c a rpcprog.h Vzdálené volání – popis API funkcí daný IDL Machine A (client) Machine B (server) client program callrpc() function execute request request completes return reply client program continues service executes call service

25 Open-source programování CORBA - Common Object Request Broker Architecture SW vrstva/standard umožňuje budovat objektově orientované aplikace, jejichž komponenty mohou být implementované v různých jazycích a běhových prostředích a mohou běžet na různých počítačích normalizace volání metod a referencí na objekty tak, aby byla síťově transparentní

26 Open-source programování Odkazy Free Electrons LinuxDevices.com Neo FreeRunner – Openmoko Rockbox RTIME DCE HW Wiki Vlastní HW vytvořený studenty a členy skupiny, popis přípravy a používání programovacích nástrojů pro různé platformy a odkazy na repositoryhttp://rtime.felk.cvut.cz/hw/ Odkazy na námi řešené projekty zabývajícími se sběrnicí CAN Otevřený projekt a návrh protokolu pro laboratorní přístroje, domácí a zemědělskou automatizaci nad linkovou vrstvou RS Zatím kvůli hrozbám a dezinformacím z Profibus International blokované GPL implementace protokolu Profibus Projekt letového SW pro vrtulník