Brad For Dem Bedded

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Saturday, 29 January 2011

My Embedded Cross Linux From Scratch Git Repo

Posted on 08:22 by Unknown
I was maintaining a Git repository that mirrored the embedded CLFS book's master and my own changes on github but I've now got my own repo on the actual CLFS server.  If you'd like to follow it, feel free.

Clone the book from my repo:
$ git clone git://git.cross-lfs.org/abradford/clfs-embedded.git

Build instructions to make the book into HTML and other formats are included.  For the impatient, create the HTML version:
$ make BASEDIR=[where you want them to go]

Check out the main CLFS page and participate on the mailing lists if you have issues.

EDIT: If you'd like to simply browse my repo via a webbrowser, check out:
 http://git.cross-lfs.org/?p=abradford/clfs-embedded.git
Read More
Posted in clfs, git | No comments

Confusion When Cross Compiling GCC: --without-headers and --with-newlib

Posted on 06:41 by Unknown
When building a GCC cross compiler, you're going to run into GCC's configure options named --without-headers and --with-newlib.  If the configure script help isn't very helpful, check out this GCC help mailing list thread and read the online help for the configure script.
Read More
Posted in clfs, embedded, gcc, open source | No comments

Sunday, 23 January 2011

BeagleBoard-xM Datasheets

Posted on 08:13 by Unknown
I've compiled a list of all the major BeagleBoard-xM parts and links to the part product pages (and to the part datasheets) in a Google spreadsheet.

You can find the schematic, BOM, system reference manual, and layout files on beagleboard.org/hardware/design.
Read More
Posted in beagleboard | No comments

Next Steps - January 2011

Posted on 07:28 by Unknown
Some things I'd like to do next:

  1. Compile a spreadsheet of all the major parts on the BeagleBoard-xM with links to the part product page and datasheet.
  2. Understand why the $BUILD variable gets set to the -mabi= option in CLFS embedded section 6.3 and what the impact of this is.  Should it get set when building GCC rather than for each package?  See trac ticket 620.
  3. Set up a git repo locally and follow the CLFS embedded book within the repo to enable me to better react to and understand changes.  In this way, if some part of the book changes, I can go back to a tag just before the change and then be able to tell what the change has done.  I'll also be able to get a better idea of what files get put in what places as parts of the CLFS embedded book don't have good info on this.
Read More
Posted in beagleboard, clfs, next steps | No comments

Friday, 21 January 2011

Micron Is Annoying

Posted on 16:11 by Unknown
I'm attempting to compile all of the datasheets for the parts used on the BeagleBoard-xM, but Micron is being unhelpful.  Every part used on the BeagleBoard-xM has a publicly available datasheet except the package-on-package Micron memory.

The Micron part number is MT46H128M32L2KQ-5 but Micron won't let me download the datasheet unless I create an account (so I did) and then explain my expected development time, expected product launch time, expected monthly quantities, and provide an explanation of my design (which I'm not designing since I'm just looking for info on a board I bought).  So I put some values in and now my "request has been forwarded to the appropriate product group."
WTF does that mean?

Micron, this is stupid!  It's a memory chip.  Just make the datasheet available to everyone.  There's no way any of your intellectual property will get leaked through a datasheet.  Just stop with this nonsense.
Read More
Posted in beagleboard | No comments

Low Cost ARM + FPGA Computer?

Posted on 05:09 by Unknown
What if there was a low cost, small, power efficient ARM processor based computer with a reasonable FPGA attached to it?  I'm thinking 600 MHz ARM Cortex with an Altera Cyclone4.  What if this board could be powered by Power over Ethernet (PoE)?  What if the ARM processor could reprogram the FPGA over JTAG?

As long as the interface between the ARM and FPGA was fast enough, the types of things this computer could do would be rather vast.  Some computations are much faster in "dedicated" silicon (an FPGA isn't really dedicated silicon, but for the money it's close enough) than in general purpose processors.  For example, crypto processing is dramatically faster in "dedicated" silicon than in a general purpose processor.

What if you could have 47 of these little ARM + FPGA computers plugged into a 48 port PoE switch? (Or 15 in a 16 port switch?)  The switch would power them and allow them to communicate.  A desktop PC could coordinate the operations of the boards and feed each one the data for computations.  It'd basically be a mini cluster of FPGAs that could scale and be affordable.  It'd also be easy to wire compared to normal computers as there's only one wire per ARM + FPGA computer (the Ethernet cord provides both communications and power).  And if you can't afford to buy a lot of nodes, you can just buy a few and expand when you can afford it.  And if newer versions come out, you can add them to your cluster.

There's lots of software out there to coordinate clusters of computers, this is nothing new.  But currently a lot of the crypto busting computing power that's available comes as PCI-e cards with very expensive FPGAs attached.  There's also the problem of scaling a PCI-e based solution, once you run out of PCI-e slots, you need another expensive computer, and you'll still need coordination software and expensive networking if you have more than one PC.

If the ARM + FPGA computer could cost around $100, come with great documentation and libre licenses for the software and FPGA code, plus offer professional support, I wonder if anyone would buy it...
Read More
Posted in crypto, embedded, fpga, open source | No comments

Monday, 17 January 2011

Shared and Static Libraries

Posted on 04:30 by Unknown
I've been reading An Introduction to GCC: For the GNU Compilers GCC and G++ (also available online for free, from the publisher).  I'm not that experienced with GCC and there's a lot of good information in this book.  It's a little out dated but I believe most still applies to today's versions of GCC.

One part of the book discusses libraries.  I've not really had any experience with libraries and they always seemed to mystify me.  I found this quote to really clear one part of that up:

"External libraries are usually provided in two forms: static libraries and shared libraries. Static libraries are the ‘.a’ files seen earlier. When a program is linked against a static library, the machine code from the object files for any external functions used by the program is copied from the library into the final executable.

Shared libraries are handled with a more advanced form of linking, which makes the executable file smaller. They use the extension ‘.so’, which stands for shared object."

It's simple, straight forward, and now that I understand, I feel silly for previously not understanding libraries.  And besides that, the discussion about LD_LIBRARY_PATH (loader library path) and LIBRARY_PATH (linker library path) is very helpful.  Section 3.1.2 starts a very good explanation.
Read More
Posted in embedded, gcc | No comments

Wednesday, 12 January 2011

It's Alive! (The BeagleBoard-xM That Is)

Posted on 15:57 by Unknown
My BeagleBoard-xM lives!

Granted, using the provided Angstrom distribution, but that's a good first step (and it verifies my hardware is working properly).

I've made a public gist for those interested in the output over the serial port (the DB9 style one) during boot.  If you've got a BeagleBoard-xM and are using the supplied SD card image, on first boot, just know it takes forever and a day to read the ramdisk.

Oh, and in case anyone wants to order a power supply, real serial cable, plastic standoffs, and plastic screws (to get it off the table), here's the DigiKey part numbers you'll need:
Power supply (5V @ 2.6A): T988-P5P-ND
3m male to female DB9 serial cable (straight through): AE9871-ND
M3, 15mm long, hex, threaded plastic standoffs (need 4): 25512K-ND
M3, 6mm long, flat head driver, plastic screws (need 4): 29341K-ND

In all, the accessories should run about $23 (USD) plus shipping and tax.  You don't need the USB OTG cable (besides, it can't supply enough juice to use the BeagleBoard-xM USB ports as a host).

Now to build my own version of Linux for it!

EDIT: Also of interest, a gist of the /etc/fstab as found inside the Angstrom distribution that comes with the BeagleBoard-xM.
Read More
Posted in beagleboard, clfs, embedded | No comments

Tuesday, 4 January 2011

The Tale Of Two ARMs: A Christmas Story

Posted on 15:13 by Unknown
I got two ARM devices for Christmas!  (OK, well, I have to share one of them with my wife...)

My brother is awesome and got me and my wife an iPad.  It's something I probably wouldn't buy for myself but since having it I think it's awesome.  The reading electronic books part so far is my favorite although general web surfing, YouTubing, and Angry Birds aren't far behind.  I'm currently reading Producing Open Source Software, am planning to read An Introduction to GCC, and then I'll be on to Building Embedded Linux Systems.

My wife got me a Beagle Board xM!  Something I've been wanting to get for a few months now.  I'm very interested to see what the Beagle Board can do and how good the information is regarding how to do things with it.  From what I've seen so far, there's a real lack of high quality and well written instruction on how to get Linux up and running beyond a simple precompiled distribution install.  No one seems to have a walk through of building cross compilers, building the Linux kernel, and creating a file system.  Maybe I'm not yet looking in the right parts of the Internet to find these things, but I think this could be a really cool thing to write about, in the way the Cross Linux From Scratch project does, but with the Beagle Board in mind so that it can be tailored to the hardware and be more of a hands on project that people can approach.  (One of CLFS's shortfalls is that the embedded book is too general, there are so many varieties of each type of processor that it's hard to provide info for everyone who will read it.)

What's really funny about these two gifts is how different they are yet how much inside is the same.  It all comes down to the software and packaging.  Obviously the Beagle Board doesn't care much about either since it's really just a low priced development kit, but both run a 1GHz ARM core processor, have graphics accelerators, network connectivity, flash storage, and some form of USB.

I had an awesome Christmas.  Now I need a serial cable and a 5V power brick!  Digikey, here I come!
Read More
Posted in beagleboard, clfs, embedded | No comments
Newer Posts Older Posts Home
Subscribe to: Posts (Atom)

Popular Posts

Categories

  • beagleboard
  • blog
  • book review
  • business
  • c
  • chairs
  • clfs
  • community
  • computers
  • crypto
  • db
  • debian
  • disapointment
  • embedded
  • energy
  • fedora
  • flash
  • fpga
  • gcc
  • git
  • google
  • health
  • hp
  • internet
  • iOS
  • learning
  • license
  • linux
  • market
  • microsoft
  • movie review
  • my book
  • next steps
  • open source
  • pandaboard
  • rails
  • software
  • SOPA
  • tuxedo
  • web 2.0
  • webOS
  • windows
  • work

Blog Archive

  • ►  2012 (10)
    • ►  January (10)
  • ▼  2011 (70)
    • ►  December (10)
    • ►  November (9)
    • ►  October (7)
    • ►  September (8)
    • ►  August (1)
    • ►  July (3)
    • ►  June (3)
    • ►  May (3)
    • ►  April (8)
    • ►  March (4)
    • ►  February (5)
    • ▼  January (9)
      • My Embedded Cross Linux From Scratch Git Repo
      • Confusion When Cross Compiling GCC: --without-head...
      • BeagleBoard-xM Datasheets
      • Next Steps - January 2011
      • Micron Is Annoying
      • Low Cost ARM + FPGA Computer?
      • Shared and Static Libraries
      • It's Alive! (The BeagleBoard-xM That Is)
      • The Tale Of Two ARMs: A Christmas Story
  • ►  2010 (16)
    • ►  December (6)
    • ►  November (9)
    • ►  October (1)
Powered by Blogger.

About Me

Unknown
View my complete profile