<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Pari&#039;s Tech Blog</title>
	<atom:link href="http://matrix108.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://matrix108.wordpress.com</link>
	<description>Satisfying the pangs of technology withdrawl...</description>
	<lastBuildDate>Tue, 01 Sep 2009 10:23:09 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='matrix108.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/b9a45615a540809f43c4027fb40c3406?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Pari&#039;s Tech Blog</title>
		<link>http://matrix108.wordpress.com</link>
	</image>
			<item>
		<title>Ubuntu 9.04 &#8211; NSLU2</title>
		<link>http://matrix108.wordpress.com/2009/07/15/ubuntu-9-04-nslu2/</link>
		<comments>http://matrix108.wordpress.com/2009/07/15/ubuntu-9-04-nslu2/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 16:30:52 +0000</pubDate>
		<dc:creator>Pari</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Slug]]></category>

		<guid isPermaLink="false">http://matrix108.wordpress.com/?p=411</guid>
		<description><![CDATA[The first release of Ubuntu for ARM architecture, Ubuntu 9.04 is working great on NSLU2. So far I&#8217;ve had running NFS, dhcp3, bluetooth (setup as a PAN AP), WiFi, CUPS, lirc (using the &#8220;linux input layer&#8221; drivers), wpa_supplicant, mjpg-streamer, mpd. Also successfully cross-compiled and loaded modules: autofs, gpsca, and rt73usb (for my WiFi dongle).
The installation [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=411&subd=matrix108&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The first release of Ubuntu for ARM architecture, Ubuntu 9.04 is working great on NSLU2. So far I&#8217;ve had running NFS, dhcp3, bluetooth (setup as a PAN AP), WiFi, CUPS, lirc (using the &#8220;linux input layer&#8221; drivers), wpa_supplicant, mjpg-streamer, mpd. Also successfully cross-compiled and loaded modules: autofs, gpsca, and rt73usb (for my WiFi dongle).</p>
<p>The installation took almost 6-8 hours on a 256kbps DSL connection, external USB flash. Most of it seems to be processing. In many instances during the installation it looked like it was frozen &#8212; progress bar stays at the same % mark for sometimes even an hour. Also towards the end when it says installation is completed, it gives an impression that it&#8217;s hung: there&#8217;s just a blue screen with a blinking prompt at the last line. It stays like that about 20min, and then returns back, prompting you for setting hardware clock. After that, it&#8217;s done, reboots.</p>
<p>First thing I did to avoid going through that agonizingly long process again, is backup the filesystem and the NSLU2 internal flash image.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/matrix108.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/matrix108.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/matrix108.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/matrix108.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/matrix108.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/matrix108.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/matrix108.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/matrix108.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/matrix108.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/matrix108.wordpress.com/411/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=411&subd=matrix108&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://matrix108.wordpress.com/2009/07/15/ubuntu-9-04-nslu2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650b160bc35cedeca3e920c69f814b61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pari</media:title>
		</media:content>
	</item>
		<item>
		<title>Sheeva Plug</title>
		<link>http://matrix108.wordpress.com/2009/05/24/sheevaplug/</link>
		<comments>http://matrix108.wordpress.com/2009/05/24/sheevaplug/#comments</comments>
		<pubDate>Sun, 24 May 2009 11:09:12 +0000</pubDate>
		<dc:creator>Pari</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Slug]]></category>

		<guid isPermaLink="false">http://matrix108.wordpress.com/?p=279</guid>
		<description><![CDATA[An ARM-based Linux server in a wall-wart &#8211; check this out! the Sheeva Plug, introduced by Marvell. It&#8217;s like a headless Intel P3 or AMD Athlon server in a wall-wart, but just drawing only 10 W of power and under $90. You get a system with a 1.2 GHz ARM926EJ-S compatible processor (Marvell&#8217;s MV88F6281 Sheeva [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=279&subd=matrix108&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>An ARM-based Linux server in a wall-wart &#8211; check this out! the <a href="http://www.plugcomputer.org">Sheeva Plug</a>, introduced by <img class="alignright size-thumbnail wp-image-303" title="SheevaPlug" src="http://matrix108.files.wordpress.com/2009/05/sheevaplug1.jpg?w=150&#038;h=150" alt="SheevaPlug" width="150" height="150" /><a href="http://www.marvell.com/featured/plugcomputing.jsp">Marvell</a>. It&#8217;s like a headless Intel P3 or AMD Athlon server in a wall-wart, but just drawing only 10 W of power and under $90. You get a system with a 1.2 GHz <span style="visibility:visible;"><span style="visibility:visible;">ARM926EJ-S compatible </span></span><span style="visibility:visible;"><span style="visibility:visible;">processor (Marvell&#8217;s </span></span>MV88F6281 Sheeva technology based processor, ARMv5), 512 MB SDRAM, 512 MB Flash, 1 USB 2.0, an SDIO slot, a 1Gig Ethernet, plus it has the <em>JTAG and console</em> available (via dedicated mini-USB port on the side; on the Slug you had to hardware hack and pull the wires out for these). In addition Marvell has made it totally open source (software, hardware, everything,&#8230;). Compare that with the <a href="../2007/08/07/my-slug/">Slug</a>&#8217;s: 266 MHz, 32 MB SDRAM, 8 MB Flash.</p>
<p>Marvell website already provides a flash image of Ubuntu 9.04 with detailed instructions <a href="http://www.marvell.com/files/products/embedded_processors/developer/kirkwood/SheevaPlug_DocumentationPackage.zip">here</a>.</p>
<p>Here&#8217;s some articles/links: <a href="http://news.cnet.com/8301-17938_105-10212169-1.html">Cnet</a>, <a href="http://www.slashgear.com/marvell-sheevaplug-99-linux-pc-hidden-in-a-wall-wart-2435556/">Slash Gear</a>, <a href="http://bits.blogs.nytimes.com/2009/05/21/plugging-in-to-the-uses-of-40-computers/?apage=3">NY Times</a>, <a href="http://www.scientificamerican.com/article.cfm?id=hackers-weigh-in-mini-server">Scientific American</a>, <a href="http://computingplugs.com/">Plug Computers</a>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/matrix108.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/matrix108.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/matrix108.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/matrix108.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/matrix108.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/matrix108.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/matrix108.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/matrix108.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/matrix108.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/matrix108.wordpress.com/279/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=279&subd=matrix108&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://matrix108.wordpress.com/2009/05/24/sheevaplug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650b160bc35cedeca3e920c69f814b61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pari</media:title>
		</media:content>

		<media:content url="http://matrix108.files.wordpress.com/2009/05/sheevaplug1.jpg?w=150" medium="image">
			<media:title type="html">SheevaPlug</media:title>
		</media:content>
	</item>
		<item>
		<title>Slug Upgrade &#8211; on Batteries</title>
		<link>http://matrix108.wordpress.com/2008/03/28/slug-upgrade/</link>
		<comments>http://matrix108.wordpress.com/2008/03/28/slug-upgrade/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 06:24:06 +0000</pubDate>
		<dc:creator>Pari</dc:creator>
				<category><![CDATA[Slug]]></category>

		<guid isPermaLink="false">http://matrix108.wordpress.com/?p=59</guid>
		<description><![CDATA[I&#8217;m in a place where we have random power cuts during this time of the year, so didn&#8217;t want to risk bricking my slug (NSLU2) during an upgrade and so decided to power it by batteries. My fear was that I might end up bricking the slug if there was a power cut right when [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=59&subd=matrix108&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m in a place where we have random power cuts during this time of the year, so didn&#8217;t want to risk bricking my slug (NSLU2) during an upgrade and so decided to power it by batteries. My fear was that I might end up bricking the slug if there was a power cut right when flashing it. Later I found out it was unfounded, as according to the upslug2 documentation there is really no way for you frag the RedBoot bootloader unless you intentionally do so, as by default, even if your flash image contains RedBoot and SysConfig sections, it does not overwrite the RedBoot and SysConfig areas (they remain untouched).</p>
<p>Anyway&#8230; here are some notes on  upgrading a slug while on battery power.</p>
<p>Decided to upgrade my Slug to Debian 5.0 (<a href="http://www.slug-firmware.net/d-dls.php">debian-5.0beta1.zip</a>). Followed the steps <a href="http://www.cyrius.com/debian/nslu2/install.html">here</a> (used the upslug2 method for flashing). It&#8217;s handy to have a serial console to see if it&#8217;s picking up the DHCP stuff properly. I hooked up the Slug directly to my laptop (running Ubuntu) via crossover cable.</p>
<p>Here are some stats. The Slug upgrade took 2 hrs 50min (on a 266MHz Slug, with a 200Kbps DSL connection, 57MB download). At around 2 hrs you&#8217;re prompted to create root and user accounts. About 15 minutes later you&#8217;re prompted for additional package selection (I unchecked all). In the next 30 minutes it prepares and flashes the kernel image to the Slugs flash memory. On a Slug (with a 2GB USB flash drive plugged into it), 4 freshly charged AA NiMH 2700mAH batteries (5.6v no load) lasted 3 hrs 10min before it dropped to a 4.3v (no load).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/matrix108.wordpress.com/59/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/matrix108.wordpress.com/59/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/matrix108.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/matrix108.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/matrix108.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/matrix108.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/matrix108.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/matrix108.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/matrix108.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/matrix108.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/matrix108.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/matrix108.wordpress.com/59/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=59&subd=matrix108&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://matrix108.wordpress.com/2008/03/28/slug-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650b160bc35cedeca3e920c69f814b61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pari</media:title>
		</media:content>
	</item>
		<item>
		<title>Freaky Assembly?</title>
		<link>http://matrix108.wordpress.com/2008/03/09/freaky-assembly/</link>
		<comments>http://matrix108.wordpress.com/2008/03/09/freaky-assembly/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 17:55:07 +0000</pubDate>
		<dc:creator>Pari</dc:creator>
				<category><![CDATA[ARM]]></category>
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://matrix108.wordpress.com/?p=72</guid>
		<description><![CDATA[After a looong time, I was debugging some embedded C code and thought I found something freaky:
C code
for (i = 0; i &#60; 1000000; i++);
ARM code disassembly (as generated by GNU ARM gcc)
0&#215;0000019c &#60;main+196&#62;: mov   r3, #0    ; 0&#215;0
0&#215;000001a0 &#60;main+200&#62;: str   r3, [r11, #-16]
0&#215;000001a4 &#60;main+204&#62;: b   [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=72&subd=matrix108&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>After a looong time, I was debugging some embedded C code and thought I found something freaky:</p>
<p><span style="text-decoration:underline;">C code</span></p>
<blockquote><p>for (i = 0; i &lt; 1000000; i++);</p></blockquote>
<p><span style="text-decoration:underline;">ARM code disassembly (as generated by GNU ARM gcc)</span></p>
<blockquote><p>0&#215;0000019c &lt;main+196&gt;: mov   r3, #0    ; 0&#215;0<br />
0&#215;000001a0 &lt;main+200&gt;: str   r3, [r11, #-16]<br />
0&#215;000001a4 &lt;main+204&gt;: b     0&#215;1b4 &lt;main+220&gt;<br />
0&#215;000001a8 &lt;main+208&gt;: ldr   r3, [r11, #-16]<br />
0&#215;000001ac &lt;main+212&gt;: add   r3, r3, #1    ; 0&#215;1<br />
0&#215;000001b0 &lt;main+216&gt;: str   r3, [r11, #-16]<br />
0&#215;000001b4 &lt;main+220&gt;: ldr   r2, [r11, #-16]<span style="color:#ff0000;"><br />
0&#215;000001b8 &lt;main+224&gt;: mov   r3, #999424    ; 0xf4000<br />
0&#215;000001bc &lt;main+228&gt;: add   r3, r3, #572    ; 0&#215;23c<br />
0&#215;000001c0 &lt;main+232&gt;: add   r3, r3, #3    ; 0&#215;3</span><br />
0&#215;000001c4 &lt;main+236&gt;: cmp   r2, r3<br />
0&#215;000001c8 &lt;main+240&gt;: bls   0&#215;1a8 &lt;main+208&gt;</p></blockquote>
<p>The three highlighted lines above in affect initialize r3 with 999999 (first initializes r3 with 999424, then adds 572 to it, then adds 3 to it).</p>
<p>What puzzled me was why couldn&#8217;t it do that directly (mov   r3, #999999)?</p>
<p>Then after some scratching my head, an almost faint memory of ARM assembly language dawned on me&#8230; ARM instructions are 32-bit, of which Operand 2 can be only 12-bits. In addition:</p>
<p>- Of these 12 bits, 8-bits are for data, and 4-bits are used for ROR.<br />
- The ROR bits are in turn multiplied by 2 before being applied on the 8-bits.</p>
<p>The combination of ROR and shifting by 2 greatly extends the range. The assembler automatically does it for you if it sees an operand greater than 8-bits.</p>
<p>This can be a great interview question :-).</p>
<p><span style="text-decoration:underline;">Do the math, verify&#8230;</span></p>
<p>999424 + 572 + 3 is the closest tuples you can get to add up to 999999 using the 12-bit ROR with x2 multiplier for the RoR.</p>
<p>Just for verification, here are the instructions from memory:</p>
<blockquote><p>1b8:  3D39A0E3      ; 0xE3A0393D<br />
1bc:  8F3F83E2      ; 0xE2833F8F<br />
1c0:  033083E2      ; 0xE2833003</p></blockquote>
<p>To get 999424 (0&#215;0F4000):<br />
0&#215;0000003D ROR 18 (<span style="color:#3333ff;"><span style="text-decoration:underline;">0&#215;9</span></span> x 2) = 0&#215;000F4000  (ROR 18 = LSL 6)<br />
As confirmed by the instruction: <span style="color:#cc0000;">E3A03 <span style="color:#3333ff;"><span style="text-decoration:underline;">9</span></span>3D</span></p>
<p>To get 572 (0&#215;023C):<br />
0&#215;0000008F ROR 30 (<span style="color:#3333ff;"><span style="text-decoration:underline;">0xF</span></span> x 2) = 0&#215;0000023C  (ROR 30 = LSL 2)<br />
As confirmed by the instruction: <span style="color:#cc0000;">E2833 <span style="color:#3333ff;"><span style="text-decoration:underline;">F</span></span>8F</span></p>
<p>To get 3 (0&#215;0003):<br />
0&#215;00000003 ROR 00 (<span style="color:#3333ff;"><span style="text-decoration:underline;">0&#215;0</span></span> x 2) = 0&#215;00000003  (ROR 00 = LSL 0)<br />
As confirmed by the instruction: <span style="color:#cc0000;">E2833 <span style="text-decoration:underline;"><span style="color:#3333ff;">0</span></span>03</span></p>
<p>Note: the LSL is just for convenience, it&#8217;s good only if data has all zeros padded on the left (at least enough to cover the LSL).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/matrix108.wordpress.com/72/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/matrix108.wordpress.com/72/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/matrix108.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/matrix108.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/matrix108.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/matrix108.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/matrix108.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/matrix108.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/matrix108.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/matrix108.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/matrix108.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/matrix108.wordpress.com/72/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=72&subd=matrix108&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://matrix108.wordpress.com/2008/03/09/freaky-assembly/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650b160bc35cedeca3e920c69f814b61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pari</media:title>
		</media:content>
	</item>
		<item>
		<title>Slug Flash</title>
		<link>http://matrix108.wordpress.com/2008/02/12/slug-flash/</link>
		<comments>http://matrix108.wordpress.com/2008/02/12/slug-flash/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 12:24:00 +0000</pubDate>
		<dc:creator>Pari</dc:creator>
				<category><![CDATA[Slug]]></category>

		<guid isPermaLink="false">http://matrix108.wordpress.com/2008/02/12/nslu2-memory-map/</guid>
		<description><![CDATA[Where is the bootloader, kernel and initial ramdisk? The boot sequence is documented here.
Some notes on the slug&#8217;s flash memory organization, taken from system logs:
From dmesg:
Searching for RedBoot partition table in IXP4XX-Flash.0 at offset 0&#215;7e0000
6 RedBoot partitions found on MTD device IXP4XX-Flash.0
Creating 6 MTD partitions on &#8220;IXP4XX-Flash.0&#8243;:
0&#215;00000000-0&#215;00040000 : &#8220;RedBoot&#8221;           # 256 KB
0&#215;00040000-0&#215;00060000 : &#8220;SysConf&#8221;          [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=48&subd=matrix108&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Where is the bootloader, kernel and initial ramdisk? The boot sequence is documented <a href="http://www.nslu2-linux.org/wiki/Info/RedBootSequence">here</a>.</p>
<p>Some notes on the slug&#8217;s flash memory organization, taken from system logs:</p>
<p>From dmesg:</p>
<blockquote><p>Searching for RedBoot partition table in IXP4XX-Flash.0 at offset 0&#215;7e0000<br />
6 RedBoot partitions found on MTD device IXP4XX-Flash.0<br />
Creating 6 MTD partitions on &#8220;IXP4XX-Flash.0&#8243;:<br />
0&#215;00000000-0&#215;00040000 : &#8220;RedBoot&#8221;           # 256 KB<br />
0&#215;00040000-0&#215;00060000 : &#8220;SysConf&#8221;            # 128 KB<br />
0&#215;00060000-0&#215;00080000 : &#8220;Loader&#8221;              # 128 KB<br />
0&#215;00080000-0&#215;001e0000 : &#8220;Kernel&#8221;               # 1.375 MB<br />
0&#215;001e0000-0&#215;007e0000 : &#8220;Ramdisk&#8221;            # 6 MB<br />
0&#215;007e0000-0&#215;00800000 : &#8220;FIS directory&#8221;     # 128 KB</p></blockquote>
<p>From /proc/mtd:</p>
<blockquote><p>dev:    size   erasesize  name<br />
mtd0: 00040000 00020000 &#8220;RedBoot&#8221;<br />
mtd1: 00020000 00020000 &#8220;SysConf&#8221;<br />
mtd2: 00020000 00020000 &#8220;Loader&#8221;<br />
mtd3: 00160000 00020000 &#8220;Kernel&#8221;<br />
mtd4: 00600000 00020000 &#8220;Ramdisk&#8221;<br />
mtd5: 00020000 00020000 &#8220;FIS directory&#8221;</p></blockquote>
<p>From /proc/partitions:</p>
<blockquote><p>31     0        256 mtdblock0<br />
31     1        128 mtdblock1<br />
31     2        128 mtdblock2<br />
31     3       1408 mtdblock3<br />
31     4       6144 mtdblock4<br />
31     5        128 mtdblock5</p></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/matrix108.wordpress.com/48/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/matrix108.wordpress.com/48/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/matrix108.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/matrix108.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/matrix108.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/matrix108.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/matrix108.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/matrix108.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/matrix108.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/matrix108.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/matrix108.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/matrix108.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=48&subd=matrix108&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://matrix108.wordpress.com/2008/02/12/slug-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650b160bc35cedeca3e920c69f814b61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pari</media:title>
		</media:content>
	</item>
		<item>
		<title>Balancing Robot</title>
		<link>http://matrix108.wordpress.com/2007/12/25/balancing-robot/</link>
		<comments>http://matrix108.wordpress.com/2007/12/25/balancing-robot/#comments</comments>
		<pubDate>Tue, 25 Dec 2007 10:46:00 +0000</pubDate>
		<dc:creator>Pari</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://matrix108.wordpress.com/2007/12/25/balancing-robot/</guid>
		<description><![CDATA[Botka, The Barely Standing Robot. This is one impressive balancing robot. Not even a bit of jitter. Midway through the video the thing takes on some solid whacks and still standing. For comparison: NXTway-G (the Lego Mindstorms NXT uses the Atmel AT91SAM7S ARM processor).
Botka probably uses some sophisticated PID control? fuzzy logic enhanced or a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=47&subd=matrix108&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://www.revver.com/video/443032/botka-the-barely-standing-robot/">Botka, The Barely Standing Robot</a>. This is one impressive balancing robot. Not even a bit of jitter. Midway through the video the thing takes on some solid whacks and still standing. For comparison: <a href="http://www.engadget.com/2007/03/13/lego-mindstorms-nxtway-g-much-cooler-than-segway/">NXTway-G</a> (the Lego Mindstorms NXT uses the Atmel AT91SAM7S ARM processor).</p>
<p>Botka probably uses some sophisticated <a href="http://en.wikipedia.org/wiki/PID_controller">PID</a> control? fuzzy logic enhanced or a <a href="http://en.wikipedia.org/wiki/Kalman_filter">Kalman Filter</a>? given it&#8217;s amazing response even in motion.</p>
<p>I remember doing Kalman Filters way back in my graduate courses, pretty hairy level of mathematics, but real cool nevertheless once you got a simulation working. Never thought I&#8217;d see the daylight of that again. It seems to be integral to many embedded industrial control systems.</p>
<p>Anything which requires very accurate real-time prediction and correction like  image stabilization, noise reduction, maglevs, satellite navigation, cruise control,&#8230;</p>
<p><a href="http://www.photopete.com/swarm/balbot.htm" class="moz-txt-link-freetext"></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/matrix108.wordpress.com/47/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/matrix108.wordpress.com/47/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/matrix108.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/matrix108.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/matrix108.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/matrix108.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/matrix108.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/matrix108.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/matrix108.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/matrix108.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/matrix108.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/matrix108.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=47&subd=matrix108&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://matrix108.wordpress.com/2007/12/25/balancing-robot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650b160bc35cedeca3e920c69f814b61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pari</media:title>
		</media:content>
	</item>
		<item>
		<title>ARM Toolchain &#8211; Crosstool</title>
		<link>http://matrix108.wordpress.com/2007/11/28/arm-toolchain/</link>
		<comments>http://matrix108.wordpress.com/2007/11/28/arm-toolchain/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 05:32:25 +0000</pubDate>
		<dc:creator>Pari</dc:creator>
				<category><![CDATA[ARM]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://matrix108.wordpress.com/?p=56</guid>
		<description><![CDATA[Was able to get an arm-elf toolchain built and working fine, but not so much luck in building an arm-elf-linux toolchain. It cross-compiled programs without errors, but the compiled executable crapped out at runtime. So googling for answers&#8230; I came across Dan Kegel&#8217;s crosstool &#8211; a really cool GNU toolchain builder. It downloads all the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=56&subd=matrix108&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Was able to get an <a href="http://matrix108.wordpress.com/2007/11/22/arm-toolchain-2/">arm-elf</a> toolchain built and working fine, but not so much luck in building an arm-elf-linux toolchain. It cross-compiled programs without errors, but the compiled executable crapped out at runtime. So googling for answers&#8230; I came across Dan Kegel&#8217;s <a href="http://kegel.com/crosstool/">crosstool</a> &#8211; a really cool GNU toolchain builder. It downloads all the correct gcc, glibc, binutils, etc. and builds your toolchain. I built two toolchains, arm-unknown-linux and arm-xscale-linux. The toolchain built with it works great.</p>
<p><strong>Note:</strong><br />
The Ubuntu shell is not bash by default! Instead it is linked to something called <em>dash</em>. Just make sure you relink /bin/sh to bash instead of dash. No idea when they did this, but I found that out after encountering this maddening error, pointing to some header files during the build:</p>
<blockquote><p><em>missing terminating &#8221; character.</em></p></blockquote>
<p><strong>Using it:</strong></p>
<p>Example (for kernel compilation makefile):</p>
<blockquote><p>export ARM_TOOLCHAIN=/opt2/crosstool/arm-unknown-linux-gnu/bin<br />
export PATH=$ARM_TOOLCHAIN:$PATH</p>
<p>make ARCH=arm CROSS_COMPILE=arm-unknown-linux-gnu-</p></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/matrix108.wordpress.com/56/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/matrix108.wordpress.com/56/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/matrix108.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/matrix108.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/matrix108.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/matrix108.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/matrix108.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/matrix108.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/matrix108.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/matrix108.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/matrix108.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/matrix108.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=56&subd=matrix108&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://matrix108.wordpress.com/2007/11/28/arm-toolchain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650b160bc35cedeca3e920c69f814b61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pari</media:title>
		</media:content>
	</item>
		<item>
		<title>ARM Toolchain</title>
		<link>http://matrix108.wordpress.com/2007/11/22/arm-toolchain-2/</link>
		<comments>http://matrix108.wordpress.com/2007/11/22/arm-toolchain-2/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 04:32:40 +0000</pubDate>
		<dc:creator>Pari</dc:creator>
				<category><![CDATA[ARM]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://matrix108.wordpress.com/?p=63</guid>
		<description><![CDATA[Updated (April 26, 2008)
Here&#8217;s how I built a 64-bit GNU ARM toolchain (cross-compiler x64 to ARM). So far this has been working well for me on an LPC2148 (ARM7TDMI-S), i.e. gcc and gdb via OpenOCD JTAG.
Notes:

Some builds (like binutils-2.18 and newlib-1.15) needed the setting MAKEINFO=/usr/bin/makeinfo to be passed to the make (binutils-2.17 and newlib-1.16 didn&#8217;t [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=63&subd=matrix108&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Updated (April 26, 2008)</p>
<p>Here&#8217;s how I built a 64-bit GNU ARM toolchain (cross-compiler x64 to ARM). So far this has been working well for me on an LPC2148 (ARM7TDMI-S), i.e. gcc and gdb via OpenOCD JTAG.</p>
<p><strong>Notes:</strong></p>
<ol>
<li>Some builds (like binutils-2.18 and newlib-1.15) needed the setting MAKEINFO=/usr/bin/makeinfo to be passed to the make (binutils-2.17 and newlib-1.16 didn&#8217;t need this).</li>
<li>Update: some systems (like Ubuntu 8.10) have strict checking turned on, where warnings are treated as errors. You may need to disable this the build of binutils and gdb using the &#8211;disable-werror configuration option.</li>
</ol>
<h4>Here are the steps:</h4>
<p><strong>environment (needed only for build):</strong></p>
<blockquote><p>export BINUTILS_VERSION=2.18<br />
export GCC_VERSION=4.2.3<br />
export NEWLIB_VERSION=1.16.0<br />
export GDB_VERSION=6.8<br />
.<br />
export DIST=/opt1/gnuarm.dist   	# tars will be downloaded here<br />
export WORKDIR=/opt4/gnuarm.tmp   	# tars will be unzipped and built here<br />
export GNUARM_HOME=/opt/gnuarm  	# Resulting binaries will be installed here<br />
.<br />
export SRC=$WORKDIR/src<br />
export BUILD=$WORKDIR/build<br />
export PREFIX=$GNUARM_HOME<br />
export TARGET=arm-elf<br />
.<br />
md -p $DIST<br />
md -p $SRC<br />
md -p $BUILD<br />
.<br />
sudo mkdir -p $PREFIX</p></blockquote>
<p><strong>download:</strong></p>
<blockquote><p>cd $DIST<br />
wget ftp://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VERSION}.tar.bz2<br />
wget ftp://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.bz2<br />
wget ftp://ftp.gnu.org/gnu/gdb/gdb-${GDB_VERSION}.tar.bz2<br />
wget ftp://sources.redhat.com/pub/newlib/newlib-${NEWLIB_VERSION}.tar.gz<br />
wget http://www.gnuarm.com/t-arm-elf</p></blockquote>
<p><strong>untar:</strong></p>
<blockquote><p>cd $SRC<br />
tar jxf $DIST/binutils-${BINUTILS_VERSION}.tar.bz2<br />
tar jxf $DIST/gcc-${GCC_VERSION}.tar.bz2<br />
tar jxf $DIST/gdb-${GDB_VERSION}.tar.bz2<br />
tar zxf $DIST/newlib-${NEWLIB_VERSION}.tar.gz<br />
cp $DIST/t-arm-elf gcc-${GCC_VERSION}/gcc/config/arm/t-arm-elf</p></blockquote>
<p><strong>binutils:</strong></p>
<blockquote><p>md $BUILD/binutils<br />
cd $BUILD/binutils<br />
$SRC/binutils-${BINUTILS_VERSION}/configure &#8211;target=$TARGET &#8211;prefix=$PREFIX &#8211;enable-interwork &#8211;enable-multilib<br />
make all install 2&gt;&amp;1 | tee make.out</p></blockquote>
<p><strong>gcc core:</strong></p>
<blockquote><p>md $BUILD/gcc<br />
cd $BUILD/gcc<br />
$SRC/gcc-${GCC_VERSION}/configure &#8211;target=$TARGET &#8211;prefix=$PREFIX<br />
&#8211;enable-interwork &#8211;enable-multilib &#8211;enable-languages=&#8221;c,c++&#8221; &#8211;with-newlib &#8211;with-headers=$SRC/newlib-${NEWLIB_VERSION}/newlib/libc/include</p></blockquote>
<blockquote><p>make all-gcc install-gcc 2&gt;&amp;1 | tee make.out</p></blockquote>
<p><strong>newlib:</strong></p>
<blockquote><p>md $BUILD/newlib<br />
cd $BUILD/newlib<br />
$SRC/newlib-${NEWLIB_VERSION}/configure &#8211;target=arm-elf &#8211;prefix=$PREFIX &#8211;enable-interwork &#8211;enable-multilib</p></blockquote>
<blockquote><p>make all install 2&gt;&amp;1 | tee make.out</p></blockquote>
<p><strong>gcc (phase two):</strong></p>
<blockquote><p>cd $BUILD/gcc<br />
make all install 2&gt;&amp;1 | tee make.out</p></blockquote>
<p><strong>gdb:</strong></p>
<blockquote><p>md $BUILD/gdb<br />
cd $BUILD/gdb<br />
$SRC/gdb-${GDB_VERSION}/configure &#8211;target=$TARGET &#8211;prefix=$PREFIX &#8211;enable-interwork &#8211;enable-multilib</p></blockquote>
<blockquote><p>make all install 2&gt;&amp;1 | tee make.out</p></blockquote>
<p><strong>post-setup:</strong></p>
<blockquote><p>echo &#8216;export GNUARM_HOME=/opt/gnuarm&#8217; &gt;&gt; ~/.profile<br />
echo &#8216;export PATH=$GNUARM_HOME/bin:$PATH&#8217; &gt;&gt; ~/.profile</p></blockquote>
<p>The scripts can be downloaded from <a href="http://kaveri.org/files/gnuarm-scripts.zip">here</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/matrix108.wordpress.com/63/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/matrix108.wordpress.com/63/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/matrix108.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/matrix108.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/matrix108.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/matrix108.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/matrix108.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/matrix108.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/matrix108.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/matrix108.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/matrix108.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/matrix108.wordpress.com/63/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=63&subd=matrix108&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://matrix108.wordpress.com/2007/11/22/arm-toolchain-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650b160bc35cedeca3e920c69f814b61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pari</media:title>
		</media:content>
	</item>
		<item>
		<title>ARM boards</title>
		<link>http://matrix108.wordpress.com/2007/09/08/arm-boards/</link>
		<comments>http://matrix108.wordpress.com/2007/09/08/arm-boards/#comments</comments>
		<pubDate>Sat, 08 Sep 2007 03:06:00 +0000</pubDate>
		<dc:creator>Pari</dc:creator>
				<category><![CDATA[ARM]]></category>

		<guid isPermaLink="false">http://matrix108.wordpress.com/2007/09/08/arm-boards/</guid>
		<description><![CDATA[Just got back from a trip to Chicago &#8211; Oak Park, a pretty nice area, a nicely renovated &#8220;gentrified&#8221; neighborhood, west of Chicago.
Researching a good ARM board to buy. Narrowed it down to these (all these boards have USB and SD card reader):
ARM7TDMI-S boards:

Olimex SAM7-P256 (SAM7-Pxxx Rev. E) &#8211; Atmel AT91SAM7S256, 256K Flash, 64K RAM, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=39&subd=matrix108&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Just got back from a trip to Chicago &#8211; Oak Park, a pretty nice area, a nicely renovated &#8220;gentrified&#8221; neighborhood, west of Chicago.</p>
<p>Researching a good ARM board to buy. Narrowed it down to these (all these boards have USB and SD card reader):</p>
<p>ARM7TDMI-S boards:</p>
<ul>
<li>Olimex <a href="http://www.olimex.com/dev/sam7-p256.html">SAM7-P256</a> (SAM7-Pxxx Rev. E) &#8211; Atmel AT91SAM7S256, 256K Flash, 64K RAM, 60MHz, 18MHz crystal. $87.</li>
<li>Olimex <a href="http://www.olimex.com/dev/lpc-p2148.html">LPC-P2148</a> &#8211; NXP LPC2148, 512K Flash, 32K+8K RAM, 60MHz, 12MHz crystal. $77.</li>
</ul>
<p>.<br />
ARM7TDMI-S boards w/Ethernet:</p>
<ul>
<li>Olimex <a href="http://www.olimex.com/dev/sam7-ea2.html">SAM7-LA2</a> &#8211; Atmel AT91SAM7A2, 1MB Flash, 4MB SRAM, 30MHz, 6MHz crystal. $140.</li>
<li>Olimex <a href="http://www.olimex.com/dev/sam7-ex256.html">SAM7-EX256</a> &#8211; Atmel AT91SAM7X256, 256K Flash, 64K RAM, 55MHz, 18MHz crystal. This board is loaded with stuff. $120.<a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8244"></a></li>
</ul>
<p>.<br />
ARM920T boards w/MMU (for running embedded Linux):</p>
<ul>
<li>Olimex <a href="http://www.olimex.com/dev/cs-e930x.html">CS-E9302</a> &#8211; Cirrus Logic EP9302, 16MB Flash, 32MB SDRAM, 200MHz. Cirrus Logic has a very good linux forum. $180.</li>
<li>Olimex <a href="http://www.olimex.com/dev/sam9-L9260.html">SAM9-L9260</a> &#8211; Atmel AT91SAM9260, 512MB NAND Flash, 64MB SDRAM, 180MHz, 18MHz crystal. $217.</li>
<li>&#8230; or just get a Slug &#8211; XScale <a href="http://www.intel.com/design/network/products/npfamily/ixp420.htm">IXP420</a> (ARMv5TE), 8MB Flash, 32MB SDRAM, 266MHz. $80.</li>
</ul>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/matrix108.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/matrix108.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/matrix108.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/matrix108.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/matrix108.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/matrix108.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/matrix108.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/matrix108.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/matrix108.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/matrix108.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/matrix108.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/matrix108.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=39&subd=matrix108&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://matrix108.wordpress.com/2007/09/08/arm-boards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650b160bc35cedeca3e920c69f814b61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pari</media:title>
		</media:content>
	</item>
		<item>
		<title>Arduino GPS</title>
		<link>http://matrix108.wordpress.com/2007/08/27/arduino-gps/</link>
		<comments>http://matrix108.wordpress.com/2007/08/27/arduino-gps/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 23:14:00 +0000</pubDate>
		<dc:creator>Pari</dc:creator>
				<category><![CDATA[AVR]]></category>

		<guid isPermaLink="false">http://matrix108.wordpress.com/2007/08/27/arduino-gps/</guid>
		<description><![CDATA[Just to get my hands dirty and wrap it up with the AVR&#8217;s, I created a GPS data logger &#8211; using an Arduino board, GPS receiver chip, 4&#215;20 LCD, and a uALFAT microSD board.
 
A good document on NMEA commands and data formats used by GPS chips is here. Regarding the GPS unit, it was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=36&subd=matrix108&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Just to get my hands dirty and wrap it up with the AVR&#8217;s, I created a GPS data logger &#8211; using an Arduino board, GPS receiver chip, 4&#215;20 LCD, and a <a href="http://www.ghielectronics.com/details.php?id=1&amp;sid=2">uALFAT</a> microSD board.<br />
<span style="float:left;margin:10px 10px 10px 0;"> <a href="http://www.flickr.com/photos/88585285@N00/2401001662/"><img src="http://farm3.static.flickr.com/2159/2401001662_50ec24a5d9.jpg" alt="" width="200" /></a><br />
</span>A good document on NMEA commands and data formats used by GPS chips is <a href="http://www.usglobalsat.com/downloads/NMEA_commands.pdf">here</a>. Regarding the GPS unit, it was <span class="info-tit">SiRF vs Trimble, and I went for SiRF, the SiRF III</span> (the <a href="http://www.globalsat.com.tw/eng/product_detail_00000055.htm">EM-406A</a><span class="info-tit"> by USGlobalSat)</span><span class="info-tit">. I picked it over the Trimble Lassen IQ and the Parallax. </span></p>
<p>Of course you can buy a GPS data logger board with LCD for about $200. But the whole point is that it&#8217;d be a learning exercise, an interesting one :-).</p>
<p>I decided to write it in raw C (UART driver, LCD driver, flash data logger,&#8230;) instead of Arduino&#8217;s Wiring language. This amounts to pretty much reading most of the 300 page data sheet for the MCU, giving you a thorough understanding of all aspects of the MCU &#8211; GPIO, clocks, counters, interrupts, UART, SPI, I2C,&#8230; all related considerations like registers, masks, timings, memory organization,&#8230;</p>
<p>(photo updated, 12/2007).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/matrix108.wordpress.com/36/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/matrix108.wordpress.com/36/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/matrix108.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/matrix108.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/matrix108.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/matrix108.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/matrix108.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/matrix108.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/matrix108.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/matrix108.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/matrix108.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/matrix108.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=matrix108.wordpress.com&blog=2165814&post=36&subd=matrix108&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://matrix108.wordpress.com/2007/08/27/arduino-gps/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650b160bc35cedeca3e920c69f814b61?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pari</media:title>
		</media:content>

		<media:content url="http://farm3.static.flickr.com/2159/2401001662_50ec24a5d9.jpg" medium="image" />
	</item>
	</channel>
</rss>