Architektura systemów wbudowanych



Similar documents
Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

Workshop Intel Galileo Board

SBC8600B Single Board Computer

Embedded Software Development: Spottbillige Hardware + OSS = Zum Spielen zu Schade!

4/2/2014 Linux Dev-Boards. Linux Dev Boards. Tagung Forth Gesellschaft e.v. Maerz file:///home/cas/talk/linux-boards/html/linux-boards.

Chapter 2 Features of Embedded System

SBC6245 Single Board Computer

Yun Shield User Manual VERSION: 1.0. Yun Shield User Manual 1 / 22.

Lab Experiment 1: The LPC 2148 Education Board

Android, Bluetooth and MIAC

Java Embedded Applications

STLinux Software development environment

ARM Cortex -A8 SBC with MIPI CSI Camera and Spartan -6 FPGA SBC1654

Friendly ARM MINI2440 & Dalvik Virtual Machine with Android

STM32 F-2 series High-performance Cortex-M3 MCUs

SBC8100 Single Board Computer

Computer and Set of Robots

Freescale Semiconductor, I

Board also Supports MicroBridge

7a. System-on-chip design and prototyping platforms

Fastboot Techniques for x86 Architectures. Marcus Bortel Field Application Engineer QNX Software Systems

Von der Hardware zur Software in FPGAs mit Embedded Prozessoren. Alexander Hahn Senior Field Application Engineer Lattice Semiconductor

Operating Systems 4 th Class

Chapter 1 Lesson 3 Hardware Elements in the Embedded Systems Chapter-1L03: "Embedded Systems - ", Raj Kamal, Publs.: McGraw-Hill Education

Embedded Systems on ARM Cortex-M3 (4weeks/45hrs)

CGI-based applications for distributed embedded systems for monitoring temperature and humidity

SABRE Lite Development Kit

INDUSTRIAL CONTROL TECHNOLOGY. A Handbook for Engineers and Researchers. Peng Zhang. Beijing Normal University, People's Republic of China

Chapter 1 Hardware and Software Introductions of pcduino

Intro to Intel Galileo - IoT Apps GERARDO CARMONA

Android Controlled Based Interface

A+ Guide to Managing and Maintaining Your PC, 7e. Chapter 1 Introducing Hardware

Embedded Display Module EDM6070

RTOS based Home Automation System using Android

MediaTek LinkIt Smart 7688 FAQ

Simplifying Embedded Hardware and Software Development with Targeted Reference Designs

Example Connection between USB Host and Android

Tutorial for MPLAB Starter Kit for PIC18F

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Understand and Build Android Programming Environment. Presented by: Che-Wei Chang

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

Computer Automation Techniques. Arthur Carroll

Data Transfer between Two USB Flash SCSI Disks using a Touch Screen

SKP16C62P Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc.

Network connectivity controllers

Embedded Development Tools

FLYPORT Wi-Fi G

The Motherboard Chapter #5

85MIV2 / 85MIV2-L -- Components Locations

System Design Issues in Embedded Processing

Standardization with ARM on COM Qseven. Zeljko Loncaric, Marketing engineer congatec

System Software Integration: An Expansive View. Overview

Virtual KNX/EIB devices in IP networks

Lecture 2: Computer Hardware and Ports.

An Implementation Of Multiprocessor Linux

Embedded Component Based Programming with DAVE 3

Computer Performance. Topic 3. Contents. Prerequisite knowledge Before studying this topic you should be able to:

Cypress Semiconductor: Arduino Friendly PSoC Shield

All Programmable Logic. Hans-Joachim Gelke Institute of Embedded Systems. Zürcher Fachhochschule

Questions from The New SensorTag - IoT Made Easy Webinar

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

Microcontrollers in Practice

Discovering Computers Living in a Digital World

Qt on Raspberry Pi. Jeff Tranter Integrated Computer Solutions (ICS) Qt Developer Days

Pre-tested System-on-Chip Design. Accelerates PLD Development

Architectures and Platforms

Embedded Linux Platform Developer

Linux Driver Devices. Why, When, Which, How?

DESIGN AND IMPLEMENTATION OF ONLINE PATIENT MONITORING SYSTEM

Computer Systems Structure Input/Output

Arduino Due Back. Warning: Unlike other Arduino boards, the Arduino Due board runs at 3.3V. The maximum. Overview

Adding WiFi to Your Embedded System. WPG Americas & Gainspan Titus Wandinger (WPG) & Su Li (Gainspan) April 23, 2013

Embedded Software development Process and Tools:

Ways to Use USB in Embedded Systems

Fondamenti su strumenti di sviluppo per microcontrollori PIC

Mobile Operating Systems. Week I

Chapter 4 System Unit Components. Discovering Computers Your Interactive Guide to the Digital World

Going Linux on Massive Multicore

The new 32-bit MSP432 MCU platform from Texas

FarSync T2Ue. A 2 port PCI Express synchronous communications adapter

Porting ecos to the Analog Devices BLACKfin DSP

The following is a summary of the key features of the ARM Injector:

In-System Programmer USER MANUAL RN-ISP-UM RN-WIFLYCR-UM

DKWF121 WF121-A B/G/N MODULE EVALUATION BOARD

Republic Polytechnic School of Information and Communications Technology C226 Operating System Concepts. Module Curriculum

EMBEDDED SYSTEM BASICS AND APPLICATION

Yun Shield Quick Start Guide VERSION: 1.0 Version Description Date 1.0 Release 2014-Jul-08 Yun Shield Quick Start Guide 1 / 14

DesignWare IP for IoT SoC Designs

Specifications for the Gateway M1300 Tablet PC

Intel Application Software Development Tool Suite 2.2 for Intel Atom processor. In-Depth

Getting Started with Embedded System Development using MicroBlaze processor & Spartan-3A FPGAs. MicroBlaze

Operator Touch Panel PC OTP/57V esom2586 / x86

Chapter 13. PIC Family Microcontroller

Mobile Operating Systems Lesson 03 PalmOS Part 1

CPSC 226 Lab Nine Fall 2015

Logical Operations. Control Unit. Contents. Arithmetic Operations. Objectives. The Central Processing Unit: Arithmetic / Logic Unit.

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center

Chapter 6. Inside the System Unit. What You Will Learn... Computers Are Your Future. What You Will Learn... Describing Hardware Performance

Transcription:

Architektura systemów wbudowanych Prowadzący: dr hab. inż. Janusz Smulko, prof. PG; tel. 348 6095 jsmulko@eti.pg.gda.pl, pok. 445, konsultacje środa 11-13, (6h) mgr inż. Mariusz Rudnicki; tel.: 347 2639 mariusz.rudnicki@eti.pg.gda.pl, pok. 759 (19h) wykład: 25h, laboratorium: 30h Sposób zaliczenia: suma ocen za wykład kolokwium (*0,4) oraz laboratorium (*0,6) warunkiem zdania wykładu jest uzyskanie min. 50% punktów Architektura Systemów Wbudowanych 1

Architektura systemów wbudowanych Literatura: Materiały do wykładu http://rts.lab.asu.edu/web_esp_summer2014/esp_main_page.htm (przykładowy wykład) http://intel-software-academic-program.com/pages/courses#iot (materiały firmy Intel) Martinez, D. R., Bond, R. A., & Vai, M. M. (Eds.). (2008). High performance embedded computing handbook: A systems perspective. CRC Press. Ecker, W., Müller, W., & Dömer, R. (2009). Hardware-dependent Software (pp. 1-13). Springer Netherlands. Architektura Systemów Wbudowanych 2

Architektura systemów wbudowanych Treść wykładu: Podstawowe pojęcia dotyczące budowy systemów wbudowanych Model systemu wbudowanego Techniki efektywnego wykorzystywania zasobów sprzętowych Metody optymalizacji kodu i techniki programowania, możliwości sprzętowe Zestawy uruchomieniowe (budowa) i programowanie elementów sprzętu Środowisko programistyczne, budowa interfejsu dla użytkownika Laboratorium: Zestawy Galileo, wraz z elementami ich rozszerzenia (czujniki, karty pamięci, karty WiFi, wyświetlacze, itp.) finansowane przez Intel, Gdańsk Architektura Systemów Wbudowanych 3

Introduction An Embedded System (ES) is a computer system with a dedicated function within a larger mechanical or electrical system, often with real-time computing constraints. John Catsoulis (May 2005). Embedded Systems, An Introduction Using the Renesas RX62N Microcontroller. Architektura Systemów Wbudowanych 4

Introduction Progress between 1950-2000: from 20 KOPS to 480 GFLOPS > Factor of 10 7 Growth Martinez, D. R., Bond, R. A., & Vai, M. M. (Eds.). (2008). High performance embedded computing handbook: A systems perspective. CRC Press. Architektura Systemów Wbudowanych 5

Introduction Digital signal systems: processors microcontrollers DSP (digital signal processors) ASIC (application-specific integrated circuit) FPGAs (field-programmable gate arrays) System on a Chip Son, C., Yun, J. H., Kang, H. G., & Han, T. (2006). Automatic Hardware/Software Interface Generation for Embedded System. JIPS, 2(3), 137-142. Architektura Systemów Wbudowanych 6

Introduction Internet of Things (IoT) The network of physical objects or "things" embedded with electronics, software, sensors and connectivity to enable data exchange between the identified devices. Sensors and other elements: Buzzer, Button, LED, Rotary Angle, Sound Sensor, Smart Relay, Temperature, Touch Sensor, Light Sensor, Mini Servo, LCD RGB Backlight Architektura Systemów Wbudowanych 7

Introduction Embedded system: A/D and D/A converters Sensors Actuators Signal processing unit A/D A/D Signal processing unit D/A Sensor OBJECT Actuator Architektura Systemów Wbudowanych 8

Introduction Embedded system: signal processing can requires fast preprocessing in additional unit, dedicated to that task A/D D/A Preprocessing unit Processing unit Architektura Systemów Wbudowanych 9

Introduction Embedded system requires: Hardware (dedicated sensors/actuators, CPU) Software (operating system, drivers, algorithms, etc.) Hardware can comprise of ready electronic boards with necessary sensors/actuators Software requires initialization procedure, tasks scheduling, multi-tasking for paralel events, has to solve constraints of CPU resources Software means: application operating system (prepared mainly in C language; small percentage in assembler) Architektura Systemów Wbudowanych 10

Introduction Gap between hardware design, system design and software design Influence of economy the way of selecting hardware Complexity Hardware System Software Hardware: 2x/18 months System: 1.6x/18 months Software: 2x/24 months Time Architektura Systemów Wbudowanych 11

ES software model Hardware-dependent software Application Software A Middleware/Adapter Layerr OS/RTOS Communication Protocol Stacks Device Drivers Boot Firmware Hardware Abstraction Layer I/O Peripherals Timer, Interrupt, Debug, Power, Clock CPU Memory System Bus Ecker, W., Müller, W., & Dömer, R. (2009). Hardware-dependent Software. Springer Netherlands. Architektura Systemów Wbudowanych 12

ES software model Application software: responsible for overall software functionality Middleware: provides application-specific services (e.g. database access) Operating System: manages and coordinates application software tasks for sharing of available software and hardware resources Communication Protocol Stacks: software modules on top of device drivers Device Drivers: software access to hardware resources by a few functions (open, initialize, access, close) Boot Firmware: performs initial boot proces Hardware Abstraction Layer: an abstract interface to access hardware resources (access, register, functional shielding) Architektura Systemów Wbudowanych 13

ES software model operating system Protection im space domain: sharing the same memory (a safety-critical application individual address spaces for processes are crucial) App 1 App 2 App 3 OS Partition 1 OS Partition 2 OS Partition 3 OS: scheduler, I/O ports Processor Platform Architektura Systemów Wbudowanych 14

ES software model operating system Protection in time domain: scheduler implements temporal partitioning in processes and sharing the procesor time Priority Frame1 Frame2 Frame3 Frame1 P1 P2 P3 P4 P1 P2 Time Architektura Systemów Wbudowanych 15

ES software model communication Communication can be performer at various layers New systems enable tasks/data transmissions at hardware level Application 1 Application 1 Middleware Middleware Operating System Operating System Computer and network hardware Computer and network hardware Architektura Systemów Wbudowanych 16

ES software model initialization procedures Initialization sequence: Intterupts disable, cache clearing Data copy from ROM into RAM memories Cache, interrupt vectors, system hardware initializations Zeroing memory Processor initialization Multitasking environment initialization, interrupt and root stacks creation Initialization of I/O ports, drivers, setup networks OS loading/booting RTOS and Multi-tasking: tasks divisions and scheduling, Interrupts services Architektura Systemów Wbudowanych 17

ES software structure Application in linear programming is a set of consecutive functions In real-time system we require the kernel to assure fast interrupt service routines Init_function() Kernel of the RTOS Function_1() Function_2() Main Function_3() Init_function() ISR_1() ISR_2() Return() IDLE LOOP Architektura Systemów Wbudowanych 18

ES software model initialization procedures RTOS and Multi-tasking: tasks divisions and scheduling, Interrupts services Task 1 RTOS context wait(wakeup_event) notify(wakeup_event) schedule() Tasks synchronization State model of tasks in RTOS Software task is defined by Task_start and Task_end events Architektura Systemów Wbudowanych 19

ES Memory space Physical memory Virtual memory (user and kernel space) App 1 App 2 App 3 User virtual address memory Kernel CPU Kernel virtual address memory Memory Management Unit Physical Memory Physical address memory KERNEL the modules of the OS that have been loaded into RAM and have allocated memory Architektura Systemów Wbudowanych 20

Kernel of Operating Systems and Device Drivers OS depends on the ES and can be established due to its functions, tasks and architecture Architektura Systemów Wbudowanych 21

Kernel of Operating Systems and Device Drivers Kernel comprises of the modules which have to be registered in the OS The modules in Linux OS have names, properties and methods Architektura Systemów Wbudowanych 22

Kernel of Operating Systems and Device Drivers Device Drivers assure interface to handle requests for the device operations Software interface to the device driver is implemented as kernel modules Software interface can configure device, perform I/O operations, perform interrupt requests Devices types: character device (terminal) stream of bites like a file (open, close, read, write) block (disk) transfer randomly data in blocks network; pseudodevice We call a device driver at initialization/configuration I/O operations, interrupts Architektura Systemów Wbudowanych 23

Kernel of Operating Systems and Device Drivers Basic Device Driver Structure: File description table drvnum - identifies the driver associated with the hardware device drvnum value 1 1 *dev 2 Pointer 1 Device list drvnum Create Remove Open Close Read Write Ioctl 0 ** ** 1 Driver table Differentiates multiple devices 2 Architektura Systemów Wbudowanych 24

ES software preparation The software files structure C code.c.asm.obj.obj.bin Compilator C Assembler Linker Loader C functions library Assembler library Linker script Debugger Executable.obj library Architektura Systemów Wbudowanych 25

ES compiler options Compiler can use various options when preparing the executable code: Level0 all variables are located into the registers Level1 removes local variables and unused expressions + L0 Level2 loops optimalization + L1 Level3 removes unused functions + L2 Programming and hardware limitations Detailed reports of hardware use Power management using sleep modes and clock rate Code length versus speed of the system performance Other programming methods Architektura Systemów Wbudowanych 26

ES linker script MEMORY command describes the location and size of blocks of memory in the target SECTIONS command determines memory layout /**************************************************************************/ MEMORY { IPRAM : origin = 0x0, len = 0x1000 IDRAM : origin = 0x80000000, len = 0x10000 } SECTIONS {.vectors > IPRAM.text> IPRAM.bss > IDRAM.cinit> IDRAM } Architektura Systemów Wbudowanych 27

ES debugging and testing Real-time analysis and run control: GUI can control: source code, registers, function calls, variables, statistics, etc.; read/write memory and registers; execution control (single step, breakpoint, watchpoint, etc.) Target board can communicate with the PC by JTAG, USB, Ethernet etc. Emulator: necessary fo debugging Architektura Systemów Wbudowanych 28

ES software preparation The main rules for safety critical programming (Gerard J. Holzmann NASA/JPL Laboratory for Reliable Software Pasadena) Restrict to simple control flow constructs Give all loops a fixed upper-bound Do not use dynamic memory allocation after initialization Limit functions to no more than 60 lines of text Use minimally two assertions per function on average Declare data objects at the smallest possible level of scope Check the return value of non-void functions, and check the validity of function parameters Limit the use of the preprocessor to file inclusion and simple macros Limit the use of pointers. Use no more than two levels of dereferencing per expression Compile with all warnings enabled, and use one or more source code analyzers (e.g. available at http://spinroot.com/static/) Architektura Systemów Wbudowanych 29

ES software preparation general remarks Executing and preparing programs in operating system Process an instance of a computer program, comprises of a code and can be characterized by its current activity Process may be made of multiple threads of executions instructions managed independently by the scheduler (scheduler determines access to system resources) Otherheads for creating a thread are significantly less than for creating the proces Switching between the threads is much less absorbing for the OS than doing the same between the processes Multitasking one proces serves to multiple clients Multithreated programs have to be prepared more carefully (not all proces features are available) Debugging is more difficult Performance of a single procesor machine can be reduced due to multiple threads Architektura Systemów Wbudowanych 30

ES software preparation threads in Linux Thread states in Linux Thread start Ready Wait was satisfied Blocked Preempted Scheduled Running Wait to get resources Done/Cancelled Terminated Architektura Systemów Wbudowanych 31

ES software preparation Kernel processes in Linux A kernel proces can be preempted by another kernel proces Critical regions, for competitive resources use, can be protected by disabling interrupts or preemption Multiprocessor system require synchronization techniques for the data acessed by multiple CPUs Mutual exclusion (MUTEX): Protection against modifying the shared data by different threads using locking/unlocking mechanism of critical sections where the data could be shared Process A Kernel entried by the system call Process B Process B Process A User space Kernel space Process A preempted Process A continues Time Architektura Systemów Wbudowanych 32

ES software preparation Semaphores A dedicated variable used for controlling access to the resources by multiple processes It is used in parallel programming or in multi-user environment Gets values of 0, 1 (for binary semaphores of two options locked/unlocked) or higher for arbitrary resources counting (counting semaphores) Semaphores can be: Initialized Terminated Increased Decreased Another mechanism ensuring mutual exclusion: Busy-wait lock lock is released and the thread waits until the lock is available It is used when the mechanism is faster than putting the thread in a sleeping mode Architektura Systemów Wbudowanych 33

Unified Extensible Firmware Interface (UEFI) Interface between operating system and platform firmware Device drivers can be prepared independently from the OS UEFI should replace BIOS (Basic Input/Output System) Will suport remote diagnostics and repair Is independent from the CPU Supports huge HDD Operating System UEFI is answer to the limitations of the BIOS: 16- bits processors Limited HDD size Extensible Firmware Interface Firmware Hardware Architektura Systemów Wbudowanych 34

Hardware interfaces Multicore systems are designed by applying various interfaces/links: Host Port Interface Serial Port (very simple and often available in the ES) Link Port Clusters can be designed if the computational tasks can be divided into separate processes Ecker, W., Müller, W., & Dömer, R. (2009). Hardware-dependent Software (pp. 1-13). Springer Netherlands. Architektura Systemów Wbudowanych 35

Hardware interfaces Advanced computing can be performer by cloud computing centralized data storage and online access to computer services or resources There are pros and cons of that solution: Pros: Scale and cost Next generation architectures Choice and aglity Encapsulated change management Cons: Lock-in Security Lack of control Reliability Architektura Systemów Wbudowanych 36

Hardware interfaces Cloud computing The IoT Cloud Analytics site is provided as a service to the IoT development community The data can be send to the cloud within a few steps only: Get an account from the Intel IoT Analytics Site Get and install the IoT Gateway Agent (Admin: tests connectivity, activates a device, registers time series and sends observations all from the command line; Agent: runs a a services by sending simple messages) Register your Device(s) Download and install the IoT Arduino Library (each sensor has to be registered) Write your scripts and send the data to the cloud Architektura Systemów Wbudowanych 37

CPU Architecture CPU architecture depends on type of application: von Neuman architecture (CPU and memory with one bus) Harward architecture (CPU with two buses for data and program memory separately) Specialized chips can have combination of both types of the CPU working independently (e.g. for video coding: one for video processing and the second for controlling interfaces Necessary computations are performer by: ALU, MAC, SHIFTER units Registers/Memory ALU SHIFTER Accumulator Architektura Systemów Wbudowanych 38

CPU Architecture CPU architecture depends on type of application DSP optimized to perform A*B+C operations ALU, MAC, SHIFTER and internal bus Analog devices DSP: Architektura Systemów Wbudowanych 39

CPU Architecture CPU architecture for DSP algorithms with two independent streams of data performing A*B+C operations C6713 Texas Instruments Digital Signal Processor Mechanisms: pipelining parallelism VLIW Architektura Systemów Wbudowanych 40

CPU Architecture Intel Quark SoC ultra small chips for gadgets (wearable devices small size and low power consumption) Cheap with developed numerous interfaces; Applied in Galileo board The CPU instruction set is the same as a Pentium (P54C/i586) CPU Architektura Systemów Wbudowanych 41

CPU Architecture Intel Quark SoC ultra small chips for gadgets (wearable devices small size and low power consumption) 400 MHz maximum operating frequency Cache, internal memory (flash, SRAM), Low power options to run at half or at quarter of maximum CPU frequency 32-bit address bus, 32-bit data bus 16 Kbyte shared instruction and data L1 cache Interfaces: UART, USB Host Port, I2C, SPI Power management: S0 full power on S1, S2, S3, S4 sleeping states; parts of the chip are in a sleeping state to reduce power consumption S5 - system is switched off Operating system: Linux (e.g. Debian 7.0 Wheezy) one-fifth the size and one-tenth the power of low-end Atom chip Architektura Systemów Wbudowanych 42

CPU Architecture Intel Quark internal architecture includes: 32 bit RISC integer core; Single cycle execution; Instruction pipelining; Floating-point unit; Cache for data and instructions; Memory management unit Architektura Systemów Wbudowanych 43

CPU Architecture Atom Silvermont low-power Atom processors used in systems on a chip applied in Intel Edison board for tablets, smartphones and other wearable devices; launched by Intel in 2012 Aplied in the Intel Edison board: high performance with high power efficiency pipeline mechanisms multi-core suport (two cores, second-level cache) WiFi Architektura Systemów Wbudowanych 44

Development boards Various SDK systems have been proposed for different digital technologies The common elements are: I/O access Processor Extensions To another system Power supply Architektura Systemów Wbudowanych 45

Development boards Various SDK systems have been proposed for different digital technologies Arduino open-source computer software and hardware for sensing and controlling physical world; designed for Atmel AVR microcontrollers and microprocessors STM32F4 DISCOVERY 32-bits ARM Cortex -M4 procesor; much faster with additional elements (build-in sensors, touchscreen, camera, memory card) Architektura Systemów Wbudowanych 46

Development boards Various SDK systems have been proposed for different digital technologies Analog Devices Blackfin BF548 EZ-kit touchscreen, keyboard, HDD, additional interfaces for video and audio applications Architektura Systemów Wbudowanych 47

Development boards Galileo Intel Galileo board 400MHz 32-bit Intel Pentium instruction set architecture (ISA)-compatible processor o 16 KBytes on-die L1 cache 512 KBytes of on-die embedded SRAM Simple to program: Single thread, single core, constant speed ACPI compatible CPU sleep states supported An integrated Real Time Clock (RTC), with an optional 3V coin cell battery for operation between turn on cycles; 10/100 Ethernet connector Full PCI Express mini-card slot, with PCIe 2.0 compliant features Works with half mini-pcie cards with optional converter plate Provides USB 2.0 Host Port at mini-pcie connector USB 2.0 Host connector Support up to 128 USB end point devices USB Device connector, used for programming 10-pin Standard JTAG header for debugging Reboot button to reboot the processor Reset button to reset the sketch and any attached shields http://download.intel.com/support/galileo/sb/galileo_boarduserguide_330237_001.pdf Galileo generation 1 Architektura Systemów Wbudowanych 48

Development boards Galileo http://www.intel.com/content/www/us/en/embedded/products/galileo/galileo-overview.html Galileo generation 2 Architektura Systemów Wbudowanych 49

Development boards Galileo software Galileo board assembly and programming We have to install driver to connect the board with the PC as a terminal SD has to be programmed with the Yocto Linux Image (by using PC and a program to create Win 32 image send to the SD from the PC by terminal connection) We can prepare and run applications in the Galileo board using the environment: Arduino IDE Eclipse IDE (Java Runtime Engine has to be installed before it) Intel IoT Dev Kit IDE USB cable Architektura Systemów Wbudowanych 50

Development boards Intel Edison Intel Edison module Intel Edison kit for Arduino: UART (RX/TX), I2C and ICSP 6-pin header (SPI), 6 analog inputs, 20 digital input/output pins incl. 4 pins as PWM outputs,micro USB connector, SD card connector, DC power jack Architektura Systemów Wbudowanych Intel Edison Breakout Board Kit: power supply, battery recharger, USB OTG power switch, UART to USB bridge, USB OTG port, and I/O header 51

Development boards software Intel Edison: software stack http://www.intel.com/support/edison/sb/cs-035276.htm Architektura Systemów Wbudowanych 52

Development boards fast programming Additional tools help to accelerate fast programming and apps preparation Integrated Performances Primitives Signal processing Image processing Matrix operations Cryptograph Math Kernel Library Various Math functions (e.g. FFT) Cordova Building apps for BlackBerry, IOS, Android, Windows desktop Sensors Sensors fusion (various measurements at the same time improve applications and results) Architektura Systemów Wbudowanych 53

Development boards system preparation Intel Edison Yocto Project: Open source project aimed to limit time for making the build systems Compatible with various linux distributions (Ubuntu, Fedora, opensuse, CentOS, Debian); stable releases are issued within a few months Helps to develop industrial standards of reliable operating systems for ES Software comprises of separate layers (each layer can be prepared using various set of files) Developer-specific layer Commercial layer UI-specyfic layer Hardware-specific BSP Yocto-specific layer Metadata OpenEmbedded Core Metadata https://www.yoctoproject.org/ Documentation Architektura Systemów Wbudowanych 54

Development boards exemplary programs, materials and tutorials Intel materials: http://intel-software-academic-program.com/pages/courses#iot Intel Galileo projects: https://www.hackster.io/intel-galileo Competitor: Raspberry Pi (different prices but various elements like: cables, memory cards, ways of booting) Architektura Systemów Wbudowanych 55