element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Single-Board Computers
  • Products
  • Dev Tools
  • Single-Board Computers
  • More
  • Cancel
Single-Board Computers
Forum Arduino: now a Single Board Computer!
  • Blog
  • Forum
  • Documents
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Single-Board Computers to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 69 replies
  • Subscribers 62 subscribers
  • Views 5710 views
  • Users 0 members are here
  • intel
  • rome
  • makerfaire
  • arduino_tre
  • arm_cortex_a8
  • cortex_a8
  • beaglebone_black
  • sbc
  • embedded
  • tre
  • bbb
  • maker_faire_rome
  • BeagleBone
  • sitara
  • texas_instruments
  • bb_black
  • am335x
  • maker_faire
  • beagle_bone_black
  • arm
  • arduino
  • italy
  • ti
Related

Arduino: now a Single Board Computer!

fustini
fustini over 11 years ago

So I often get annoyed when folks refer to the AVR-based Arduino boards (or even the ARM microcontroller DUE) as a Single Board Computer.  The Yun blurred the lines a bit... but the news today from Maker Faire Rome has the Arduino brand fully in the SBC world now:

 

Arduino Announces new Boards and Collaboration with Intel and T.I.

http://makezine.com/2013/10/03/arduino-announces-two-new-linux-boards/

image

 

coder27 posted about the Intel-based Arduino board, and there is also an upcoming Arduino model based on the TI Sitara (same as in the BeagleBone Black - an ARM Cortex A8).

 

I just read an interview on Make with jkridner about the new Arduino TRE:

 

Talking to Jason Kridner About the new Arduino Tre

http://makezine.com/2013/10/03/talking-to-jason-kridner-about-the-new-arduino-tre/

"The focus is on simplicity. It isn’t just a BeagleBone split in the middle [...] If you know Linux, you’ll be able to come in that way. If you know Arduino, you’ll be able to use the AVR as the system master."

image

 

I'm not sure exactly what this all means, but it is exciting to have more SBC options and the Arduino brand will be an interesting influence on the SBC market.  I do know that I didn't need any coffee to feel wide awake this morning image

 

What is the feeling of our SBC discussion group here?

 

cheers,

drew

  • Sign in to reply
  • Cancel

Top Replies

  • morgaine
    morgaine over 11 years ago +1
    I like the term "bare metal microcontroller" to denote the processors on Arduino AVR and ARM Cortex-M class boards. These contrast strongly with those boards which are based on "application processors…
  • johnbeetem
    johnbeetem over 11 years ago +1
    I have no problem with this use of Single-Board Computer. The earliest SBCs had very simple processors like Intel 8080 or MOS Technology 6502, which didn't have MMUs and didn't address much memory. When…
  • morgaine
    morgaine over 11 years ago +1
    Drew, leaving aside the puzzling situation with Galileo and how it's managing to run its peculiar version of Yocto, the Arduino TRE looks very good indeed! In fact, over the last year and a half, haven…
  • morgaine
    morgaine over 11 years ago

    I like the term "bare metal microcontroller" to denote the processors on Arduino AVR and ARM Cortex-M class boards.  These contrast strongly with those boards which are based on "application processors" that have an MMU and therefore run full operating systems (mostly Linux) and so their applications execute as user-mode processes in virtual memory --- definitely not "bare metal".

     

    It provides a clear distinction and so keeps discussions from attempting to compare apples with orangutans.

     

    PS. It's appalling to see makezine.com make this elementary error though. image

     

    PPS.  The source of the error seems to be Intel themselves!

     

    Intel writes (in the FAQ):

     

    Q: Can I run Linux on IntelRegistered Galileo?

     

    A: Yes. IntelRegistered Galileo runs Linux* out of the box. It comes in two flavors; the default is a small Linux. If you add an SD card to your kit, you can add a more fully-featured Linux. Refer to the IntelRegistered Galileo Getting Started Guide and IntelRegistered Quark SoC X1000 IoT Development Kit Software GSG.

     

    I'm still figuring out exactly what this means, but at best it's going to be something like the old uClinux, which was pretty horrible at best.  After all there is no MMU in Quark to support the normal Linux kernel --- see the Quark datasheet.  (uClinux is effectively EOL now owing to MMUs having become so ubiquitous.)

     

    PPPS.  The Galileo Getting Started Guide refers only to Linux support on the host side, not on the board.

     

    PPPPS. Oh dear.  If you zoom into the image showing what they load from uSD card, it boots into:

     

    Poky 9.0 (Yocto Project 1.4 Reference Distro) 1.4.1 clanton /dev/ttyS1

     

    I've got a very bad feeling about this.  I thought the days of MMU-less "Linux" derivatives were over.

     

    ===

     

    IMPORTANT ADDENDUM:  Quark does have an MMU, it's just not mentioned in the SoC Datasheet.  See this post.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 11 years ago

    I have no problem with this use of Single-Board Computer.  The earliest SBCs had very simple processors like Intel 8080 or MOS Technology 6502, which didn't have MMUs and didn't address much memory.  When I hear the phrase "Single-Board Computer", I still think of Multibus image

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to johnbeetem

    John Beetem wrote:

     

    When I hear the phrase "Single-Board Computer", I still think of Multibus image

     

    The rival VME Bus in my case --- I still have some self-made 68k-based VME boards in a box somewhere, and I wrote a program to lay out VME backplanes to link them up.  Motorola did everything much more elegantly than Intel in those days.

     

    But to avoid the confusion of meanings, I highly recommend "bare metal microcontroller" to refer to this type of board and processor.  It was unambiguous .... er, until now.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago

    Drew, leaving aside the puzzling situation with Galileo and how it's managing to run its peculiar version of Yocto, the Arduino TRE looks very good indeed!  In fact, over the last year and a half, haven't several of us called (repeatedly) for combining a Linux applications processor and an AVR microcontroller on the same board for the best of both worlds?  It makes so much sense on multiple fronts.  I'm delighted to see this in the Arduino TRE.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 11 years ago in reply to morgaine

    Morgaine Dinova wrote:

     

    But to avoid the confusion of meanings, I highly recommend "bare metal microcontroller" to refer to this type of board and processor.  It was unambiguous .... er, until now.

    Well, I use the term "bare-metal programming" to mean programming a processor at the machine/assembly language level (usually using C as a portable assembly language) with no device drivers restricting my access to the hardware.  So I can in principle do "bare-metal programming" on any processor -- with or without MMU -- whether or not it is capable of running a mainframe OS like GNU/Linux.  Now it's generally easier to do bare-metal programming on a small microcontroller since you don't need 50-100 pages of initialization code, but as long as the hardware is documented it's certainly possible to treat an ARM Cortex-A15 as a bare-metal processor.

     

    By the way, jamesh at RasPi doesn't like the term "bare-metal" since he thinks you're programming at the silicon level.  I didn't bother to explain to him that once the chip is in a package, you can only access it through the metal pins.  However, I do use the phrase as often as possible chez RasPi just to be cheeky.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 11 years ago

    I just noticed that the Galileo board says it was Designed in Ireland.  Then it definitely should have an Irish name like James Joyce or Finnegan.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to johnbeetem

    You're right in an absolute sense, since you can do "bare-metal programming" even on an applications processor by booting into your application directly instead of into an O/S kernel first.  You can also do the opposite, for example run uClinux on a microcontroller and program as if you weren't actually hitting the bare metal (you realize that you are though as soon as things go wrong).

     

    However, in a practical sense, the use of these two types of programming does actually correlate very strongly with the type of device being programmed.  In practice you never do bare metal programming on an applications processor (unless you're developing the kernel or a kernel driver) and likewise, you never do anything but bare-metal programming on a microcontroller without an MMU even when the illusion is sometimes offered.

     

    This distinction corresponds to the different levels of programming abstraction in the two cases.  On an applications processor running a system like Linux, the kernel creates an execution environment for user-mode processes that is a virtual abstraction which has very little to do with the details of the hardware, and this abstraction is enforced by the hardware MMU so it cannot be broken, bugs aside.  On a microcontroller lacking an MMU, there is no such virtual abstraction enforced by hardware, so even if software wizardry provides a superficially similar environment, when you're programming in C then a single errant pointer can penetrate the facade and ruin your whole day.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago

    If Galileo was supposed to be OSHW/SW, someone forgot to tell Intel's lawyers.  The Intel Software License Agreement which you would have to tick before downloading the Galileo software is nothing short of demonic, and totally unacceptable given the intended aims of Galileo.  It's also totally out of step with the Arduino ecosystem.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • fustini
    fustini over 11 years ago in reply to morgaine

    Woah, there's no MMU?!  I hadn't read much yet but was assuming it was similar to atom - some low power x86 chip.  I thought everything since 386 had protected mode - weird.  I guess I need to read some more of the flurry of coverage from today.  Good catch.... I will add to my personal defination that SBC must have MMU image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to fustini

    Woah, there's no MMU?!  I hadn't read much yet but was assuming it was similar to atom - some low power x86 chip.

    I assumed the same thing.  It's described as a Pentium, and Pentiums have MMUs.

    The IntelRegistered Quark Core Developer's Manual, section 3.3.1 "Address Spaces" says:

    https://communities.intel.com/servlet/JiveServlet/previewBody/21826-102-2-25118/Intel%20Quark%20Core_DevMan_001.pdf

     

    The IntelRegistered Quark SoC X1000 Core has three distinct address spaces: logical, linear, and

    physical. A logical address (also known as a virtual address) consists of a selector and

    an offset. A selector is the contents of a segment register. An offset is formed by

    summing all of the addressing components (BASE, INDEX, DISPLACEMENT) discussed

    in Section 3.5.3 into an effective address. Because each task on the IntelRegistered Quark SoC

    X1000 Core has a maximum of 16 K (214 - 1) selectors, and offsets can be 4 Gbytes

    (232 bits), this gives a total of 246 bits or 64 terabytes of logical address space per task.

    The programmer sees this virtual address space.

     

    The segmentation unit translates the logical address space into a 32-bit linear address

    space. If the paging unit is not enabled then the 32-bit linear address corresponds to

    the physical address. The paging unit translates the linear address space into the

    physical address space. The physical address is what appears on the address pins.

     

    This sounds like it is doing at least some sort of MMU function in translating virtual addresses

    to physical addresses.

     

    The FAQ, says under "What development operating systems are supported" at

    http://www.intel.com/support/galileo/faq.htm

    • Linux Ubuntu 12.04* (32-bit & 64-bit)
    • Mac OS X version 10.8.5* (also tested on Mac OS X 10.6.8, 10.7.5, and 10.9* developer preview)
    • Windows 7* (32-bit & 64-bit) and Windows 8*

    I had initially understood that to mean supported on the Galileo, although the 64-bit versions

    made no sense, and running Windows 7 in 256MB doesn't sound reasonable. 

    Now I'm reading that as those OSs are supported on host computers connected to Galileo,

    so it's not clear at all what OSs are supported on Galileo.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube