RIT_Workshop_D.ppt

advertisement
Rochester Institute of Technology
BeagleBoard Workshop
Gerald Coley
gerald@beagleboard.org
December 2nd , 2010
Agenda

The Embedded Processor Evolution

Introduction to the BeagleBoard
◦ Hands On #1 – Board Power-up, explore Desktop,

In Linux, everything is a file
◦ Hands On #2 – Toggle LEDs, read switches, read I2C, and USB

GUI building with Qt
◦ Hands On #3 – Toggle an LED from a GUI

Getting help from peer developers

Expanding the BeagleBoard

Questions
The Embedded Evolution

The embedded world is changing
◦ QUIZ What has a 7” LCD, Touchscreen, BT, WIFI, Power management, and
Sensors?

Classical embedded processors can’t handle these new
requirements

Applications demand more capabilities
◦
◦
◦
◦
◦
Connectivity
Application infrastructure and SW reuse
On-demand performance
Complex Power Management
Time to market

The new embedded world holds a wealth of opportunities

ARM® is leading the way in the Embedded Evolution
Find the
®
right ARM
Solution for you
Comprehensive developer ecosystem
32-bit ARM
Cortex™-M3
MCUs
®
TMS570
Stellaris
ARM
Cortex-R4™
ARM Cortex-M3
ARM
Cortex-A8 &
ARM9™ MPUs
Sitara™
ARM Cortex-A8
& ARM9
DSP
DSP+ARM
C6000™
Integra™
DaVinci™
Digital Media processors
Up to 250 DMIPS/
160 MHz
Up to
80 MHz
375MHz to
>1GHz
2 MB Flash,
160 KB RAM
Flash
8 KB to 256 KB
USB, ENET
MAC+PHY CAN,
ADC, PWM, SPI
Connectivity,Security,
Motion Control, HMI,
Industrial Automation
Cache,
RAM, ROM
300MHz to >1Ghz
+Accelerator
Cache
RAM, ROM
USB, CAN, SATA,
SPI, PCIe, EMAC
USB, ENET,
PCIe, SATA, SPI
Industrial automation,
POS & portable
data terminals
$1.00 to $8.00
$5.00 to $25.00
Floating/Fixed Point
Video, Audio, Voice,
Security, Conferencing
$5.00 to $200.00
FPU, ECC, Timer/PWM
Co-Proc, 12bit ADCs, CAN,
EMIF, LIN, SPI, Flexray
Transportation, Motor
Control, Certified for use in
safety critical (SIL3) systems
$7.00 to $18.00
Responsive design support
Development tools
Software support
32-bit ARM
MCU for
Safety-Critical
Applications
ARM® Cortex™-A8 : Block Level
Support for ARMv7
 Added new support for
Thumb-2, Thumb2EE(,Jazelle-RCT) and
NEON
Advanced Dynamic Branch
Prediction
 95% accurate across
industry benchmarks
Integrated L2 Cache
256KB (low latency/high
BW i/f w/L1)
 Optimizes access to
larger data sets and
minimizes bus traffic
Dual issue In-Order
Superscalar Pipeline
2.0 DMIPS/MHz
High speed Level 1 Caches
(16KB)
 Dual 32 entry memory
translation TLB
Integrated NEON coprocessor for media and
signal processing
 2 to 4x performance
improvement
 Integer and Floating Point
support
 VFPv3-IEEE754 compliant
(single and double
precision) floating point
support.
Community Development
> 3,200 participants and
growing
Personally
affordable
$125/$149
Active &
technical
community
Freedom to
innovate
®
Open access to hardware
documentation
Opportunity
to tinker and
learn
Wikis, blogs/RSS,
promotion of community
activity
Android, Ubuntu,
Angstrom, FFmpeg,
MeeGo, Symbian, …
Free
software
Why such an active community?
Affordable
Freedom to
tinker at all
levels
Lots of open
starting points
Large and
experienced
community
Open
ecosystem
provides real
options
 Low cost for the same core processing as used in

more expensive, yet popular, commercial products
Focus on open source, open hardware and DIY


>25,000 boards sold exclusively in small quantities
All design, test, web, etc. materials shared
 Teaching tool for high-level OS on embedded
 Ubuntu, Debian, Angstrom, Gentoo, WinCE, Symbian, QNX, and many others
 The BeagleBoard community shares
 Over 150 registered projects on BeagleBoard.org
 Part of the Google Summer of Code with 6 projects to improve Linux, XBMC, and



other open source
Average of around 5 articles or blog posts per day
Over 3,200 English-language mailing list subscribers with additional dedicated mailing
lists in Japanese and Portuguese and numerous project oriented mailing lists in dozens
of languages
Hundreds of followers on each of Facebook, Twitter, and LinkedIn
 Rich ecosystem using the design materials





Compatible or enhanced system-on-module/computer-on-module designs
 See http://beagleboard.org/resources
Innovative mobile computers (TouchBook)
Radios (BeagleBrick)
Modular rapid prototyping development systems (Bug2.0)
And many add-ons…
BeagleBoard C4…$125
OMAP3530 Processor
 720MHz Cortex-A8
 NEON+VFPv3
 16KB/16KB L1$
 256KB L2$
 430MHz C64x+ DSP
 32K/32K L1$
 48K L1D
 32K L2
 PowerVR SGX GPU
 64K on-chip RAM
POP Memory
 256MB LPDDR RAM
 256MB NAND flash
3.1”
Peripheral I/O
 DVI-D video out
 SD/MMC+
 S-Video out
 USB 2.0 HS OTG
 I2C, I2S, SPI,
MMC/SD
 JTAG
 Stereo in/out
 Alternate power
 RS-232 serial
USB Powered
 2W maximum consumption
 OMAP is small % of that
 Many adapter options
 Car, wall, battery, solar, …
And more…
Other Features
 4 LEDs
 USR0
 USR1
 PMU_STAT
 PWR
 2 buttons
 USER
 RESET
 4 boot sources
 SD/MMC
 NAND flash
 USB
 Serial
On-going collaboration at BeagleBoard.org
 Live chat via IRC for 24/7 community support
 Links to software projects to download
3.1”
Peripheral I/O
 DVI-D video out
 SD/MMC+
 S-Video out
 USB HS on-the-go
 I2C, I2S, SPI,
MMC/SD
 JTAG
 Stereo in/out
 Alternate power
 RS-232 serial
BeagleBoard–xM
xM means
Extra MHz
and
Extra MB
$149

2,000 Dhrystone MIPS performance
with ARM® Cortex™-A8

512MB POP memory enabling
◦ Native builds of Ubuntu and other distros
◦ More multitasking with complex apps like
Firefox or OpenOffice.org

Robust expansion with more direct
connectivity without external hubs; onboard Ethernet and five USB 2.0 ports

USB-powered board via low power
processor integration

Active and growing open source
community at beagleboard.org
10
BeagleBoard-xM details
Laptop-like performance
DM3730 processor
(AM37xcompatibile)
 1GHz superscaler
ARM® Cortex ™-A8
 More than 2,000
Dhrystone MIPS
 Up to 20 Million
polygons per sec
graphics
 512KB L2$
 HD video capable
C64x+™ DSP core
POP Memory
 512MB LPDDR RAM
3.25”
DM3730
 LCD Expansion
 I2C, I2S, SPI, MMC/SD
Expansion
 DVI-D
 Camera Header
 S-Video
 JTAG
 4-port USB 2.0 Hub**
 Stereo Out
 Stereo In
 10/100 Ethernet
 USB 2.0 HS OTG
 Alternate Power
 RS-232 Serial
 microSD Slot
Use your BeagleBoard like a desktop
SD
USB
Stereo in
Stereo out
DVI-D
Power
Take your BeagleBoard anywhere &
crank code on the go
Serial
Port
Power
over USB
Hands On #1 ….Boot your board
14
Hands On #1 …Connect the
Display
Display Connector
Connect cable to the Board
Confirm cable is connected to monitor
Be careful when connecting a TV.
Most of the time the default timing is
not compatible.
Hands On #1 …Connect the
Keyboard & Mouse
Keyboard
Mouse
Connect the Keyboard to one of the USB ports
Connect the Mouse to one of the USB ports
Hands On #1…Insert the SD
Card
Insert the SD card printing side up
Be careful not to exert
upward pressure on
the card when
inserting it.
Hands On #1…Optional
Stuff...Debug Port
Connect the serial cable here
-Requires a USB to Serial Cable or a straight cable
-Laptop or a PC
-Terminal SW set to 115K,8,n,1, no handshaking
Hands On #1…Connect the
Power
Connect 5V supply here
Be careful doing this and
make sure you have 5V
supply and the correct
polarity of power supply.
Hands On #1…Board Powers Up
1) Power LED comes on
2) User0/1 LEDs comes on
3) User0 LED blinks
4) User1 LED flashes
Hands On #1…Board Boots



Angstrom Screen
Mouse pointer
Login Screen
◦ Do nothing


White screen and Mouse pointer
Matrix Application Launcher
Hands On #1…TI Matrix GUI



Web browser with HTML code served up
from the board
Written in Qt
Includes ability to launch apps
click 3D Graphics
click Chameleon
close window
select Main
select Exit
Hands On #1…Angstrom Gnome
Desktop
Just one of the desktop options as part of the
Angstrom Distribution
 Menu bar at top gives list of installed programs
 Add other applications using ‘opkg’

select Applications
Scroll down the Menu
close window
Hands On #1…System Monitor
Monitors the system performance
 Displays CPU loading

select Applications
select System Tools
click System Monitor
click Resources Tab
close Window
Hands On #1…Frequency Scaling

Sets System Speed
click 1GHz Icon
click 600MHz
click 600 MHz Icon
click 1GHz
Hands On #1…Multimedia Player

GNOME Multimedia player

Comes standard in Desktop Image

Big Buck Bunny is an open source movie from the Peach
Open Movie Project.
double Click BigBuck Icon
close Window
Hands On #1…Linux Command Line
Allows direct access to the Linux Kernel
 Enter Linux Commands
 Can also use an external debug port over the serial
port

select Applications
select Accessories
select Terminal
type ls -al
In Linux, everything is a file
Learning about Linux through SYSFS
Thanks to Bill Gatliff
The file interface abstraction

What can we do with files?
◦ open, read, write, close, delete
◦ What is an ‘ioctl’?
 Gets you to the HW!

What is a virtual file system?
◦ Looks like a file, but executes code in the driver
◦ Not really storing anything to media
◦ A bit like a “ram disk”
What is SYSFS?
Virtual file system that exposes drivers
to userspace
 mount

◦ sysfs on /sys type sysfs (rw,realtime)




/sys/devices  driver hierarchy
/sys/bus  symbolic links to bus owners
/sys/class  common interfaces
/sys/block  block interface

Let’s go thru some examples…
Hands On #2…..Test USR0 and
USR1 LED
select Applications
select Terminal
type testled
Cycles through a short LED test
type cd /sys/class/leds; ls
type ls "beagleboard::usr0"
type cat "beagleboard::usr0/trigger“
USR0 LED will Turn on and off.
31
Hands On #2…Reading the User
Button
type cd /sys/class/gpio; ls
type echo “4“ > export; ls
type echo "in“ > gpio4/direction
type cat gpio4/value
type readgpio 4
press User Button
press <ctrl> C to stop
32
Hands On #2…Reading Events
When the mouse is moved, events are triggered
and sent via the USB port to the processor
type opkg install evtest
press <ctrl> C to stop
type evtest /dev/input/event3
move the Mouse
press <ctrl> C to stop
33
Hands On #2…Reading I2C Bus
Read the EEPROM inside the display
that provides information about that
display.
type cd /sys/bus; ls
type cd i2c/devices; ls
type echo "eeprom 0x50” > i2c-3/new device; ls
type i2cdump -y 0x3 0x50 b
type fbset
34
Hands On #2…Reading USB Ports
•Read what USB devices are
connected to the processor
type cd /sys/bus/usb/devices; ls
type cat usb1/speed
type cat usb?/manufacturer
type lsusb
close Terminal Window
35
GUI building with Qt
Qt C++ framework is just one option for creating
graphical applications, but it is fast, flexible, crossplatform and well-supported by an open source
community
Thanks to Gregg Lebovitz of ICS
Qt architecture
Qt Creator
http://qt.nokia.com

Integrated development environment
◦ Runs on Windows, Mac, or Linux
◦ Designer for your GUIs
◦ C++ editor and debugger

Build your GUI on your PC, then move it over to the
BeagleBoard to add I/O, etc.
◦ Angstrom Linux
distribution has
the compiler and
libraries ready
to build Qt apps
natively on your
BeagleBoard
Hands On #3…Qt Demos


Lots of different GUI tools
Many other programming tools,
like networking,
IPC, 3D, database,
…
open Terminal Program
type qtdemo
close Window
Hands On #3 – Button & LED GUI
close Terminal Program
open Labs from desktop
type cd lab2; ls –al
type gedit ./lab2.cpp &
close GEDIT
type qmake2 && make
type ./lab2
click Push me!
Watch the Flashing LED on the
board
close the application
Getting help from your peers
How to work in the Linux community
Baseline tools and software
http://beagleboard.org/resources

Hardware verification procedure (http://beagleboard.org/support)
◦ GPL x-load, u-boot, Linux kernel, and demo distro for validation
◦ Code images, procedure, and sources are provided to verify the board
functionality

GPL ARM GNU compiler collection (GCC)
◦ Code Sourcery version 2009q1 is the latest supported by TI
 Runs on Linux/Windows and generates ARMv7/Thumb2
◦ Angstrom version is utilized in ESC training and demo image on xM

Access to C6000 with compilers and open source software
◦ Free TI C6000 compiler for non-commercial use
 x86-Linux hosted (ARM hosted version in evaluation)
◦ GPL GCC compiler in progress (http://linux-c6x.org)
◦ C6Run (DSPEasy) project to simplify development model
◦ BSD/GPL DSP/Link interface software

Free 3D graphics libraries (OpenGLES 2.0)

Free production audio/video codecs for the DSP
How to ask for help
http://catb.org/~esr/faqs/smart-questions.html






Know the on-line resources
Know the on-line community
Know the manual
Listen to the answers
Pay for performance
Share the answers you find
43
Order of resources
1.
Search beagleboard.org, eLinux.org, the mailing list archive, and
IRC logs
2.
Read and search BBSRM_latest.pdf
3.
Check the http://beagleboard.org/faq link
4.
Search the web
5.
Try something

Gives you some perspective on what to ask
Ask on IRC and be patient/polite
6.

Doesn’t disrupt everyone
Mailing list
7.

Individual developers will go away if load isn’t shared
44
The community perspective

Earn respect by saying what you’ve done and how you’ve
tried to find an answer
◦ Where did you search?
◦ What did you try on the board?

You aren’t entitled to an answer
◦ Show that you are willing to work for it and the
community will feel you are a part of it
◦ Impatience implies that your time is more valuable than
others in the community
45
Chat, mail, forums, blogs, and wikis!

All exist because they all solve different problems

Chat allows you to know someone’s listening
http://beagleboard.org/chat or #beagle on irc.freenode.net
◦ Great for beginner questions and rapid coordination

Mail allows you to reach almost anyone
http://groups.google.com/group/beagleboard
◦ Brings larger group into the conversation
◦ Provides you with a personal log in your inbox

Forums helps get the threads organized
https://community.ti.com/forums/32.aspx (minimal activity to avoid
disrupting community critical mass)

Blogs provide emphasis, filtering, and timeliness
http://beagleboard.org/news and http://beagleboard.blogspot.com

Wikis enable inputs to become documentation
http://eLinux.org/BeagleBoard and
http://code.google.com/p/beagleboard/wiki
Chat on IRC

http://webchat.freenode.net
◦
◦
◦
◦
◦

#beagle: discussion of the BeagleBoard
#gst-ti: discussion of GStreamer with TI DSP components
#ubuntu-arm: discussion of Ubuntu on ARM processors
#rowboat: discussion of Android on OMAP & Sitara devices
#linux-omap: discussion of OMAP Linux kernel
IRC clients
◦ http://beagleboard.org/chat
◦ http://pidgin.im
◦ http://www.mirc.com
/List_of_IRC_clients
◦ http://www.ircreviews.org/clients
◦
http://en.wikipedia.org/wiki
OSs and Distributions
Angstrom and Open Embedded
http://www.angstrom-distribution.org/demo/beagleboard

Angstrom is what you are running
Ubuntu
https://wiki.ubuntu.com/ARM/Beagle Most popular Linux distribution

Has support for the BeagleBoard (Netbook, server, and network installers)
Android
http://arowboat.org

At least half-a-dozen companies provide commercial support for Android on the
BeagleBoard;Rowboat is the one endorsed by TI
MeeGo
http://wiki.meego.com/ARM/Meego_on_Beagleboard_from_scratch

The combination of Moblin and Maemo
48
OSs and Distributions
Gentoo
https://www.slashorg.net/48-Gentoo-port-for-BeagleBoard.html

The Linux distribution the BeagleBoard.org web server runs

Builds ARM applications both natively and cross

QNX
http://www.qnx.com/products/reference-design/ti-reference-design.html

Not Linux, but Posix compliant and real-time

Symbian
http://developer.symbian.org/wiki/index.php/BeagleBoard_Quick_Start

Most popular smart phone operating system

Initial open source release was on the BeagleBoard
49
WinCE
http://beagleboard.org/esc

Advanced GUI and code tools

Lots of code libraries available

Low-cost entry through “Spark”
50
Expanding the BeagleBoard

Create your own expansion cards
◦ Rev C4 does not come with expansion
connectors (Can be added by user)
◦ -xM does come with connectors
◦ Mounting holes are the same
◦ Common connectors in the same place
Gerber and CAD files
available to assist in
making your own PCB
Expansion Cards & Accessories
ZIPPY
TRAINER
LCD DISPLAY
ZIPPY2
PLASTIC CASE
VGA ADAPTER
METAL CASE
Cables & Supplies
Available Resources

Beagle Hardware Documentation
◦ http://beagleboard.org/hardware/design

Processor Documentation
◦ http://focus.ti.com/docs/prod/folders/print/omap3530.html

Add-On Boards and Accessories
◦ http://www.beagleboardtoys.com/
◦ http://www.tincantools.com/home.php?cat=255
◦ https://specialcomp.com/beagleboard/index.htm
Thank you!
g-coley1@ti.com
gerald@beagleboard.org
http://beagleboard.org/discuss
==========================
 jdk@ti.com
 jkridner@beagleboard.org
 http://beagleboard.org/chat



◦ IRC nickname: jkridner
Download