한국   대만   중국   일본 
Easy-to-Use ARM System on a Board | Dr Dobb's
The Wayback Machine - https://web.archive.org/web/20120613235047/http://www.drdobbs.com:80/blogs/tools/232901444

Mike Riley

Dr. Dobb's Bloggers

Easy-to-Use ARM System on a Board

May 04, 2012

If you haven't heard of the open platform-friendly, inexpensive Linux-powered computing platform known as Raspberry Pi by now, you will be for years to come. Just as the Altair hailed the era of the personal computer, the Raspberry Pi is ushering in a new era of powerful, stunningly low-cost PCs on a board not much larger than an Arduino Uno. Think of a traditional PC motherboard with integrated graphics, network, and keyboard/mouse (USB) IO shrunken down to the size and slightly higher cost of an Arduino, and you'll get the idea of what the Raspberry Pi is all about.

Driven by an ARM11 processor, the Raspberry Pi has 256 megabytes of on-board RAM and a hardware-accelerated OpenVG GPU capable of pushing 24 gigaflops of 1080p 30 frame per second goodness. One of the many demos that shipped with the unit I received was an HD video file of the well-known Blender-generated Big Buck Bunny computer animated short. The full-screen video playback of the cartoon was breathtaking. Every detail of every object in every scene was vibrant, sharply focused, and not a hint of aliasing, lag, frame tearing, or artifacts. Each time I showed this portion of the Raspberry Pi demo to family, friends, and tech associates, they couldn't believe such amazing performance was coming from a hardware board that cost less than most.

The Raspberry Pi's only significant omission when compared to a traditional PC motherboard is a real time clock (RTC) or for that matter, a BIOS. But in today's networked world, pulling accurate time off a time server is easy enough to do. Plus, the addition of a clock crystal and a battery to drive it would have inched the cost higher and made the board's footprint unnecessarily larger.

Development Experience

Cold booting the Raspberry Pi using the ARM version of the Debian "squeeze" distribution was fairly peppy. Launching GUI applications does take noticeably longer than a traditional PC, but not unbearably so. Desktop apps are also slower on movement redraw, akin to running the latest release of Ubuntu on a first-generation Pentium PC. Fortunately, if you prefer interacting with the terminal, programs like vi and even the Python interpreter are satisfyingly quick. However, compiling apps with GCC takes quite a long time. One of the first environments I installed after getting oriented to the Raspberry Pi was the Ruby Version Manager (well, I had to "sudo apt-get install git" first), followed by Ruby v1.9.3 compiled from source, followed by the Rails v3.2.3 web framework. It took almost an hour to get to the point of typing "rails –v" to confirm that all went well. But once I had the Rails development environment running, I found the rails app construction experience to be just fine.

And because Python is already installed on the platform, running "sudo apt-get install python-pip" followed by "sudo pip django" installed the latest Django v1.4 web framework much faster than Ruby on Rails, taking under 2 minutes to launch the Python interpreter and type "import django; django.VERSION" to confirm that installation.

Naturally, the RAM constraints restrict Rails and Django apps deployed on the Raspberry Pi from becoming too resource intensive, but I found the hardware excellent for my prototyping and testing needs. Storage wasn't an issue either, thanks to the ability to connect external capacity via the USB port (or if you prefer, an NFS or Samba mount). If you're already comfortable working with Linux, you will have no trouble at all working with the Raspberry Pi.

Future Potential

Electronics enthusiast retailers like Adafruit Industries are already working on hardware extensions to the Raspberry Pi platform that will hook into the board's expansion pins akin to the way PCI boards expand a PC motherboard's capabilities. One of Adafruit's first products along this line is its Prototyping Pi Plate Kit that makes it much easier to wire up DIP chips, LEDs, and sensors to the Raspberry Pi board. As more people leverage these expansion kits, the similarly priced Arduino board and accompanying shields will likely be replaced by the Raspberry Pi ecosystem. I can tell you that after using the Raspberry Pi for over a week, I probably won't buy another Arduino board, unless Arduino raises the bar and produces a board even more powerful with more IO and functionality at an even lower price than the Raspberry Pi. I don't see that happening any time soon.

Recommendation

If you're still reading this review and haven't already ordered your own Raspberry Pi board from an electronics retailer like Element 14 , then I recommend you do so now. The delivery waiting list is growing by the day, and the Raspberry Pi community is growing exponentially as a result. The number of exciting uses we'll be seeing over the next few months will be stunning, going far beyond what other embedded electronics products have been able to previously deliver in a such a potent price/performance ratio. Even if your hardware budget is constrained, the Raspberry Pi is a must have for any computing enthusiast. It will blow you away.

Related Reading






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Best of the Web

What the New iPad and iOS 5.1 Mean for Developers

The new display is gorgeous. But local storage for HMTL5 is currently broken on the new iPad and performance of some apps is slower. Here's a deep dive into the issues, including benchmarks and analysis.

Quick Read

Triple Buffering as A Concurrency Mechanism

Triple Buffering is a way of passing data between a producer and a consumer running at different rates. It ensures that the consumer sees only complete data with minimal lag.

Quick Read

Embedding GDB Breakpoints in C Source Code

Have you ever wanted to embed GDB breakpoints in C source code? Something like this:
printf("Hello,\n");
EMBED_BREAKPOINT;
printf("world!\n");

Quick Read

Writing Kernel Exploits

Why attack the kernel? Because it has a huge attack surface with potential for very interesting bugs. This presentation (pdf) takes a code-level dive into recently reported Linux-kernel exploits.

Quick Read


More "Best of the Web" >>



Video

Enabling People and Organizations to Harness the Transformative Power of Technology