ECE 471 Embedded Systems Lecture 15

Similar documents
ECE 471 Embedded Systems Lecture 12

ECE 471 Embedded Systems Lecture 16

ECE 471 Embedded Systems Lecture 16

ECE 598 Advanced Operating Systems Lecture 2

64 bit Bare Metal Programming on RPI-3. Tristan Gingold

ECE 598 Advanced Operating Systems Lecture 4

ECE 471 Embedded Systems Lecture 2

ECE 598 Advanced Operating Systems Lecture 22

ECE 471 Embedded Systems Lecture 5

ECE 471 Embedded Systems Lecture 6

ECE 598 Advanced Operating Systems Lecture 14

ECE 598 Advanced Operating Systems Lecture 14

ECE 471 Embedded Systems Lecture 12

ECE 571 Advanced Microprocessor-Based Design Lecture 13

ECE 571 Advanced Microprocessor-Based Design Lecture 12

ECE 598 Advanced Operating Systems Lecture 10

ECE 471 Embedded Systems Lecture 12

ECE 471 Embedded Systems Lecture 2

ECE 598 Advanced Operating Systems Lecture 18

ECE 471 Embedded Systems Lecture 3

ECE 571 Advanced Microprocessor-Based Design Lecture 3

ECE 498 Linux Assembly Language Lecture 1

Chapter 2: Operating-System Structures

ECE 598 Advanced Operating Systems Lecture 14

ECE 598 Advanced Operating Systems Lecture 5

PL-I Assignment Broup B-Ass 5 BIOS & UEFI

ECE 471 Embedded Systems Lecture 2

ECE 471 Embedded Systems Lecture 4

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017

ECE 471 Embedded Systems Lecture 4

ECE 471 Embedded Systems Lecture 23

ECE 471 Embedded Systems Lecture 22

19: I/O. Mark Handley. Direct Memory Access (DMA)

Debian Linux Manual 32 Bit I386 Dvd Iso Image

PARALLELS SERVER 4.0 FOR MAC BARE METAL EDITION README

ECE 598 Advanced Operating Systems Lecture 11

ECE 598 Advanced Operating Systems Lecture 10

Cute Tricks with Virtual Memory

How To Reinstall Grub In Windows 7 Without Losing Data And Programs

Virtualization. ...or how adding another layer of abstraction is changing the world. CIS 399: Unix Skills University of Pennsylvania.

Four Components of a Computer System

ECE 574 Cluster Computing Lecture 4

CS 220: Introduction to Parallel Computing. Beginning C. Lecture 2

HOW TO INTEGRATE NFC FRONTENDS IN LINUX

INFORMATION COMUNICATION TECHNOLOGY SKS Lecture Two

ECE 571 Advanced Microprocessor-Based Design Lecture 2

ECE 574 Cluster Computing Lecture 15

ECE 598 Advanced Operating Systems Lecture 12

VxWorks Real-Time Kernel Connectivity Andrew Piñeiro CNT 4104 Janusz Zalewski FGCU December 9, 2011

BIOS. Chapter The McGraw-Hill Companies, Inc. All rights reserved. Mike Meyers CompTIA A+ Guide to Managing and Troubleshooting PCs

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Operating-System Structures

MemGuard on Raspberry Pi 3

CS 326: Operating Systems. Lecture 1

ECE 471 Embedded Systems Lecture 22

CS 153 Design of Operating Systems

EM210 Burn Linux Image Manual. Catalogue

CSC Operating Systems Spring Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. January 17 th, 2007.

Announcements. Operating System Structure. Roadmap. Operating System Structure. Multitasking Example. Tevfik Ko!ar

Operating Systems ECE344

RaRa Academy: Raspberry Pi. Karl Heinz Kremer - K5KHK

ECE 571 Advanced Microprocessor-Based Design Lecture 4

diskimage-builder: Building Linux Images for Cloud / Virtualization / Container

Topics. Operating System I. What is an Operating System? Let s Get Started! What is an Operating System? OS History.

ECE 574 Cluster Computing Lecture 8

Hard Disk Organization. Vocabulary

ECE 471 Embedded Systems Lecture 20

Background: Operating Systems

IA32 OS START-UP UEFI FIRMWARE. CS124 Operating Systems Fall , Lecture 6

ECE 571 Advanced Microprocessor-Based Design Lecture 24

Booting Linux Fast & Fancy. Embedded Linux Conference Europe Cambridge, Robert Schwebel

HOW TO INTEGRATE NFC CONTROLLERS IN LINUX

Yocto Project and OpenEmbedded training 3-day session

ECE 471 Embedded Systems Lecture 8

Introduction to OS. Introduction MOS Mahmoud El-Gayyar. Mahmoud El-Gayyar / Introduction to OS 1

Introduction to the Raspberry Pi AND LINUX FOR DUMMIES

Comparison on BIOS between UEFI and Legacy

ECE 574 Cluster Computing Lecture 18

Porting Linux to a new SoC

ECE 574 Cluster Computing Lecture 1

Topics. Operating System. What is an Operating System? Let s Get Started! What is an Operating System? Where in the Book are we?

ECE 598 Advanced Operating Systems Lecture 18

Lab2 - Bootloader. Conventions. Department of Computer Science and Information Engineering National Taiwan University

ECE 598 Advanced Operating Systems Lecture 7

This is the official software release containing the list of software components listed in the section 3 of the release note.

ECE 598 Advanced Operating Systems Lecture 23

"Last Mile" Barriers to Removing Legacy BIOS

Systems software. Definition. Categories of software. Examples Of Systems Software 11/23/2018

How To Reinstall Grub In Windows 7 Without Cd Dell

Manually Mount External Hard Drive Windows 7 Not Showing In My Computer

John Wawrzynek & Nick Weaver

ARM Powered SoCs OpenEmbedded: a framework for toolcha. generation and rootfs management

From High Level to Machine Code. Compilation Overview. Computer Programs

Format Hard Drive Using Windows 7 Recovery Disk

CS Operating Systems

Introduction To Computer Hardware. Hafijur Rahman

Operating Systems: The Genie in the Computer. Chapter 6: Operating Systems: The Genie in the Computer. What is an operating system?

ECE 471 Embedded Systems Lecture 9

Release Notes for (Supporting 3ware 9690SA and 9650SE controllers)

31268_WEB SYSTEMS LECTURE 1. Operating Systems Part 1

Transcription:

ECE 471 Embedded Systems Lecture 15 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 10 October 2018

Midterm is Friday. Announcements 1

Homework #4 Review Still grading the code part. Questions 5.a Why usleep? Less resources (not busy sleeping), cross-platform (not speed-of-machinedependent), compiler won t remove, other things can run, power saving. Be careful saying accuracy! usleep() guarantees a minimum time delay, but it is best effort how long the delay actually is. So if you really need *exact* time 2

delays you probably want some other interface. 5.b Layer of abstraction. In this case, not having to bitbang the interface or know low-level addresses, portability among machines. 5.c Limitations : higher overhead, not all features exposed, uncertain timing. superuser permissions? when no OS you run everything as super user, though this depends on HW and is complicated. OS can t write as fast? OS has direct access to the hardware. It can write full bare-metal speed, the 3

problem is you have to access through syscalls which can be slow. 5.d. Web browser part of OS? Microsoft law suit. Interesting comments on google/chrome 6.a Machines from dmesg: Pi3 (20) Pi3+ (8) pi2 (1) dmesg a good place to find error messages, etc. 6.b Kernel versions. Current Linus kernel (upstream) is 4.18/4.19-rc7 Uname syscall, what the parts mean Linux linpack-test 4.14.50-v7+ #1122 SMP Tue Jun 19 12:26:26 BST 2018 armv7l GNU/Linux\\ Linux orvavista 4.5.0-2-amd64 #1 SMP Debian 4.5.5-1 (2016-05-29) x86_64 GNU/Linux\\ 2018: 4.4.50 (1) 4.4.70 (1) 4.9.14 (1) 4.9.35 (3) 4

4.9.41 (1) 4.9.59(2) 4.9.80 (1) 4.14.34 (1) 4.14.50 (6) 4.14.52(2) 4.14.60 (1) 4.14.62 (1) 4.14.69 (4) 4.14.70 (2) 6.c. Disk space. Why -h? Human readable. what does that mean? Why is it not the default? At least Linux defaults to 1kB blocks (UNIX was 512) Lots of large disks. 5

Midterm Review Be sure you know the four characteristics of an embedded system, and can make an argument about whether a system is one or not. Inside of something (embedded) Fixed-purpose Resource constrained Real time constraints (if you use this, be sure you understand) Benefits/downsides of using an operating system on an 6

embedded device Cost, time to market, helper libraries, overhead, timing C code Have you look at some code and know what it is doing Mostly know what file I/O, loops, and string maninpulations work (things we ve done in the homeworks) Code Density Why is dense code good in embedded systems? What changes were needed to ARM32 to make it fit into 16-bit THUMB? 7

GPIO & i2c Know some of its limitations (speeds, length of wires, number of wires, etc) Don t need to know the raw protocol Know the Linux interface (open, ioctl, write) and be familiar with how those system calls work 8

Booting a System 9

Firmware What is firmware? 10

Device Firmware Devices are their own embedded systems these days. May even have full CPUs, etc. Need to run code. Firmware. In ROM? Or upgradable? Why might you want to upgrade? (bug fixes, economy, etc.) Talk about recent USB firmware malware 11

Firmware Provides booting, configuration/setup, sometimes provides rudimentary hardware access routines. Kernel developers like to complain about firmware authors. Often mysterious bugs, only tested under Windows, etc. BIOS legacy 16-bit interface on x86 machines UEFI Unified Extensible Firmware Interface ia64, x86, ARM. From Intel. Replaces BIOS OpenFirmware old macs, SPARC LinuxBIOS 12

Boot Methods Firmware can be quite complex. Floppy Hard-drive (PATA/SATA/SCSI/RAID) CD/DVD USB Network (PXE/tftp) 13

Flash, SD card Tape Networked tape Paper tape? Front-panel switches? 14

Bootloaders on ARM uboot Universal Bootloader, for ARM and under embedded systems So both BIOS and bootloader like minimal OSes 15

Raspberry Pi Booting Unusual Small amount of firmware on SoC ARM 1176 brought up inactive (in reset) Videocore loads first stage from ROM This reads bootcode.bin from fat partition on SD card into L2 cache. It s actually a RTOS (real time OS in own right ThreadX ) 16

This runs on videocard, enables SDRAM, then loads start.elf This initializes things, the loads and boots Linux kernel.img. (also reads some config files there first) 17

Bootloaders on ARM uboot Universal Bootloader, for ARM and under embedded systems So both BIOS and bootloader like minimal OSes 18