ECE 471 – Embedded Systems Lecture 8

ECE 471 – Embedded Systems Lecture 8

ECE 471 { Embedded Systems Lecture 8 Vince Weaver http://www.eece.maine.edu/∼vweaver [email protected] 26 September 2013 Announcements • HW#2 is delayed • Read chapter 11 in textbook 1 Brief Overview of the Gumstix Overo Board TODO: Put a diagram here More details after boards are distributed. 2 Coding Directly for the Hardware One way of developing embedded systems is coding to the raw hardware, as you did with the STM Discovery Boards in ECE271. • Compile code • Prepare for upload (hexbin?) • Upload into FLASH • Boots to offset 3 • Setup, flat memory (usually), stack at top, code near bottom, IRQ vectors • Handle Interrupts • Must do I/O directly (no drivers) Although if lucky, can find existing code. 4 Instead, one can use an Operating System 5 Why Use an Operating System? • Provides Layers of Abstraction { Abstract hardware: hide hardware differences. same hardware interface for classes of hardware (things like video cameras, disks, keyboards, etc) despite differing implementation details { Abstract software: with VM get linear address space, same system calls on all systems { Abstraction comes at a cost. Higher overhead, unknown timing 6 • Multi-tasking / Multi-user • Security, permissions (Linus dial out onto /dev/hda) • Common code in kernel and libraries, no need to re- invent 7 What's included with an OS • kernel / drivers { Linux definition • also system libraries { Solaris definition • low-level utils / software / GUI { Windows definition Web Browser included? • Linux usually makes distinction between the OS Kernel and distribution. OSX/Windows usually doesn't. 8 Operating Systems Types • Monolithic kernel { everything in one big address space. Something goes wrong, lose it all. Faster • Microkernel { separate parts that communicate by message passing. can restart independently. Slower. • Microkernels were supposed to take over the world. Didn't happen. (GNU Hurd?) • Famous Torvalds (Linux) vs Tannenbaum (Minix) flamewar 9 Common Desktop/Server Operating Systems • Windows • OSX • Linux • FreeBSD / NetBSD / OpenBSD • UNIX (Irix/Solaris/AIX/etc.) 10 • BeOS/Haiku 11 Embedded Operating Systems • Microsoft WinCE, Windows Mobile • Linux / Android • VXworks { realtime OS, used on many space probes • Apple iOS • QNX { realtime microkernel UNIX-like OS, owned by Blackberry now 12 • Cisco iOS 13 Embedded Linux Distributions • linaro { consortium that work on ARM software • openwrt { small distro initially designed for wireless routers • yocto { Linux Foundation sponsored embedded distro • maemo { embedded distro originally by Nokia (obsolete) • MeeGo { continuation of maemo, also obsolete 14 • Tizen { Follow up on MeeGo, by Samsung and Intel • Angstrom¨ { Merger of various projects • And many others. It's very easy to put together a Linux distribution 15 Linux/UNIX History • UNIX invented early 70s at Bell Labs • Widely distributed by academics • Berkeley makes their own BSD version • By the 90s many companies selling UNIX workstations. Expensive. • Linus Torvalds in 1991 wanted own UNIX-like OS. Minix (which he used for development) limited to academic use 16 and non-free. The various BSDs caught up in lawsuit with AT&T. So he wrote his own. 17 Licensing and its Effects • Linux under GPLv2. • The Free Software Foundation has moved most of its software (including gcc compiler) to the less popular GPLv3 which most companies don't like. • Companies often prefer BSD type license which has fewer restrictions; companies can use code and release binaries without having to release the source (a GPL requirement). 18 • Apple and Google both trying to replace as much code as possible with BSD versions. • Linux popular in embedded space because it is cheap/free and source code is available. 19.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    20 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us