<?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/"
	>

<channel>
	<title>Embedded Bits</title>
	<atom:link href="http://www.embedded-bits.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.embedded-bits.co.uk</link>
	<description>Understanding the embedded world bit by bit</description>
	<lastBuildDate>Tue, 16 Aug 2011 21:42:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Understanding &#8220;vmalloc region overlap&#8221;</title>
		<link>http://www.embedded-bits.co.uk/2011/vmalloc-region-overlap/</link>
		<comments>http://www.embedded-bits.co.uk/2011/vmalloc-region-overlap/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 21:42:28 +0000</pubDate>
		<dc:creator>Andrew Murray</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Memory]]></category>
		<category><![CDATA[config_highmem]]></category>
		<category><![CDATA[fixaddr]]></category>
		<category><![CDATA[high memory]]></category>
		<category><![CDATA[highmem]]></category>
		<category><![CDATA[Ignoring RAM at]]></category>
		<category><![CDATA[ioremap]]></category>
		<category><![CDATA[iotable_init]]></category>
		<category><![CDATA[IO_ADDRESS]]></category>
		<category><![CDATA[kernel memory layout]]></category>
		<category><![CDATA[kernel memory split]]></category>
		<category><![CDATA[low memory]]></category>
		<category><![CDATA[lowmem]]></category>
		<category><![CDATA[reclaim lost RAM]]></category>
		<category><![CDATA[static dynamic mappings]]></category>
		<category><![CDATA[Truncating RAM at]]></category>
		<category><![CDATA[virtual kernel memory layout]]></category>
		<category><![CDATA[vmalloc]]></category>
		<category><![CDATA[vmalloc region overlap]]></category>
		<category><![CDATA[VMALLOC_END]]></category>
		<category><![CDATA[vmalloc_start]]></category>

		<guid isPermaLink="false">http://www.embedded-bits.co.uk/?p=972</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.embedded-bits.co.uk/2011/vmalloc-region-overlap/"></g:plusone></div>
I recently came across the following disconcerting message in my kernel&#8217;s boot output: Truncating RAM at 40000000-5fffffff to -57ffffff (vmalloc region overlap). ... Kernel command line: console=ttySC0,115200 mem=512M ... Memory: 384MB = 384MB total Which is the kernel&#8217;s way of saying &#8220;I understand there may be some RAM here &#8211; but I&#8217;m not going to [...]]]></description>
		<wfw:commentRss>http://www.embedded-bits.co.uk/2011/vmalloc-region-overlap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A nasty string initialization bug in C</title>
		<link>http://www.embedded-bits.co.uk/2011/string-bug-in-c/</link>
		<comments>http://www.embedded-bits.co.uk/2011/string-bug-in-c/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 20:14:21 +0000</pubDate>
		<dc:creator>Francesco Balducci</dc:creator>
				<category><![CDATA[C]]></category>
		<category><![CDATA[Guest Posts]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[buffer overflow]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[null terminated]]></category>
		<category><![CDATA[overflow]]></category>
		<category><![CDATA[splint]]></category>
		<category><![CDATA[static analysis]]></category>
		<category><![CDATA[strings]]></category>

		<guid isPermaLink="false">http://www.embedded-bits.co.uk/?p=936</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.embedded-bits.co.uk/2011/string-bug-in-c/"></g:plusone></div>
Today I encountered a bug that was quite difficult to find regarding strings. In order for strings to work they must be null-terminated, and this implies that an array of characters can contain a string with a length equal to the array size minus one, because there must be space for the null character. I [...]]]></description>
		<wfw:commentRss>http://www.embedded-bits.co.uk/2011/string-bug-in-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>embedded-bits.co.uk embraces Twitter!</title>
		<link>http://www.embedded-bits.co.uk/2011/twitter/</link>
		<comments>http://www.embedded-bits.co.uk/2011/twitter/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 15:04:50 +0000</pubDate>
		<dc:creator>Andrew Murray</dc:creator>
				<category><![CDATA[Papers and Presentations]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[informative articles]]></category>
		<category><![CDATA[share]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.embedded-bits.co.uk/?p=903</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.embedded-bits.co.uk/2011/twitter/"></g:plusone></div>
Embedded-bits.co.uk has joined Twitter! I thought it would be a great way to get to know my readers and to share with you the blog posts I write. When it comes to developing for embedded devices &#8211; it can be quite difficult to find good documentation or informative articles on the things we really need [...]]]></description>
		<wfw:commentRss>http://www.embedded-bits.co.uk/2011/twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Turning on an ARM MMU and Living to tell the tale: The code</title>
		<link>http://www.embedded-bits.co.uk/2011/mmucode/</link>
		<comments>http://www.embedded-bits.co.uk/2011/mmucode/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 20:04:42 +0000</pubDate>
		<dc:creator>Andrew Murray</dc:creator>
				<category><![CDATA[BeagleBoard]]></category>
		<category><![CDATA[ARM MMU]]></category>
		<category><![CDATA[BeagleBoard XM]]></category>
		<category><![CDATA[code for mmu]]></category>
		<category><![CDATA[coprocessor]]></category>
		<category><![CDATA[DM3730]]></category>
		<category><![CDATA[identity mapping]]></category>
		<category><![CDATA[large pages]]></category>
		<category><![CDATA[mcr]]></category>
		<category><![CDATA[Memory Management Unit (MMU)]]></category>
		<category><![CDATA[MLO]]></category>
		<category><![CDATA[MMU]]></category>
		<category><![CDATA[mmu domains]]></category>
		<category><![CDATA[mrc]]></category>
		<category><![CDATA[page tables]]></category>
		<category><![CDATA[section base address]]></category>
		<category><![CDATA[sections]]></category>
		<category><![CDATA[tiny pages]]></category>
		<category><![CDATA[TLB]]></category>
		<category><![CDATA[translation table walk]]></category>
		<category><![CDATA[translation tables]]></category>
		<category><![CDATA[turn on mmu]]></category>
		<category><![CDATA[virtual address]]></category>

		<guid isPermaLink="false">http://www.embedded-bits.co.uk/?p=827</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.embedded-bits.co.uk/2011/mmucode/"></g:plusone></div>
In my last post we looked at the basic theory of an MMU and what it can do for us. In this post we are going to produce and understand the absolute minimum amount of code required (just 20 lines of assembler) to turn on an ARM MMU and come out the other side in [...]]]></description>
		<wfw:commentRss>http://www.embedded-bits.co.uk/2011/mmucode/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Turning on an ARM MMU and Living to tell the Tale: Some Theory</title>
		<link>http://www.embedded-bits.co.uk/2011/mmutheory/</link>
		<comments>http://www.embedded-bits.co.uk/2011/mmutheory/#comments</comments>
		<pubDate>Sun, 24 Jul 2011 11:54:51 +0000</pubDate>
		<dc:creator>Andrew Murray</dc:creator>
				<category><![CDATA[BeagleBoard]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ARM MMU]]></category>
		<category><![CDATA[arm resources]]></category>
		<category><![CDATA[BeagleBoard XM]]></category>
		<category><![CDATA[BeagleBoardXM]]></category>
		<category><![CDATA[code for mmu]]></category>
		<category><![CDATA[copy on write]]></category>
		<category><![CDATA[cow]]></category>
		<category><![CDATA[demand paging]]></category>
		<category><![CDATA[identity mapping]]></category>
		<category><![CDATA[MLO]]></category>
		<category><![CDATA[MMU]]></category>
		<category><![CDATA[scheduling]]></category>
		<category><![CDATA[turn on mmu]]></category>
		<category><![CDATA[Virtual Memory]]></category>
		<category><![CDATA[zero page]]></category>

		<guid isPermaLink="false">http://www.embedded-bits.co.uk/?p=705</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.embedded-bits.co.uk/2011/mmutheory/"></g:plusone></div>
In my last post I wrote some bare metal code which ran on a BeagleBoard xM as an MLO &#8211; I&#8217;d like to extend this by running this code with the MMU switched on. I want to write the absolute minimum amount of code required to turn on an ARM MMU and to come out [...]]]></description>
		<wfw:commentRss>http://www.embedded-bits.co.uk/2011/mmutheory/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Contributors Wanted!</title>
		<link>http://www.embedded-bits.co.uk/2011/contributorswante/</link>
		<comments>http://www.embedded-bits.co.uk/2011/contributorswante/#comments</comments>
		<pubDate>Sat, 23 Jul 2011 09:51:57 +0000</pubDate>
		<dc:creator>Andrew Murray</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[authors]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[contributors]]></category>
		<category><![CDATA[embedded-bits.co.uk]]></category>
		<category><![CDATA[systems integrator]]></category>
		<category><![CDATA[write]]></category>

		<guid isPermaLink="false">http://www.embedded-bits.co.uk/?p=720</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.embedded-bits.co.uk/2011/contributorswante/"></g:plusone></div>
To improve the broadness and frequency of articles on this site &#8211; I&#8217;m looking for contributors willing to write blog posts for embedded-bits.co.uk. I believe this will make the site a much more attractive place on the internet and a more useful resource for those in interested in our field. If you are a systems [...]]]></description>
		<wfw:commentRss>http://www.embedded-bits.co.uk/2011/contributorswante/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing an MLO for a BeagleBoard XM</title>
		<link>http://www.embedded-bits.co.uk/2011/writeanmlo/</link>
		<comments>http://www.embedded-bits.co.uk/2011/writeanmlo/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 17:53:10 +0000</pubDate>
		<dc:creator>Andrew Murray</dc:creator>
				<category><![CDATA[BeagleBoard]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[BeagleBoard XM]]></category>
		<category><![CDATA[BeagleBoardXM]]></category>
		<category><![CDATA[CCS]]></category>
		<category><![CDATA[dead loops]]></category>
		<category><![CDATA[MLO]]></category>
		<category><![CDATA[MMC]]></category>
		<category><![CDATA[signGP]]></category>
		<category><![CDATA[X Loader]]></category>
		<category><![CDATA[XLoader]]></category>

		<guid isPermaLink="false">http://www.embedded-bits.co.uk/?p=636</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.embedded-bits.co.uk/2011/writeanmlo/"></g:plusone></div>
Before I started playing with the BeagleBoard XM I&#8217;ve had never booted a board directly from an MMC card and I didn&#8217;t have a clue what an &#8216;MLO&#8217; file was. After some research on the internet it seemed apparent that it was used in place of the traditional first stage boot loader: XLoader. In fact [...]]]></description>
		<wfw:commentRss>http://www.embedded-bits.co.uk/2011/writeanmlo/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Software Environment for a BeagleBoard XM with JTAG</title>
		<link>http://www.embedded-bits.co.uk/2011/beagleboardxmjtagsoftware/</link>
		<comments>http://www.embedded-bits.co.uk/2011/beagleboardxmjtagsoftware/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 13:58:02 +0000</pubDate>
		<dc:creator>Andrew Murray</dc:creator>
				<category><![CDATA[BeagleBoard]]></category>
		<category><![CDATA[BeagleBoard XM]]></category>
		<category><![CDATA[BeagleBoardXM]]></category>
		<category><![CDATA[CCS]]></category>
		<category><![CDATA[Code Composer Studio]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[JTAG]]></category>
		<category><![CDATA[License File]]></category>
		<category><![CDATA[MLO]]></category>
		<category><![CDATA[Target Configuration File]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[XDS100v2]]></category>

		<guid isPermaLink="false">http://www.embedded-bits.co.uk/?p=599</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.embedded-bits.co.uk/2011/beagleboardxmjtagsoftware/"></g:plusone></div>
In my last blog post I described my rationale for buying a BeagleBoard XM and a compatible JTAG emulator &#8211; the XDS100v2. This post follows on from that and describes the steps required for setting up TI&#8217;s Code Composer Studio such that you can use the XDS100v2 with the BeagleBoard XM to find out what [...]]]></description>
		<wfw:commentRss>http://www.embedded-bits.co.uk/2011/beagleboardxmjtagsoftware/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Hardware Environment for a BeagleBoard XM with JTAG</title>
		<link>http://www.embedded-bits.co.uk/2011/beagleboardxmjtaghardwar/</link>
		<comments>http://www.embedded-bits.co.uk/2011/beagleboardxmjtaghardwar/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 09:47:13 +0000</pubDate>
		<dc:creator>Andrew Murray</dc:creator>
				<category><![CDATA[BeagleBoard]]></category>
		<category><![CDATA[Hardware Projects]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[BeagleBoard XM]]></category>
		<category><![CDATA[BeagleBoardXM]]></category>
		<category><![CDATA[CCS]]></category>
		<category><![CDATA[Code Composer Studio]]></category>
		<category><![CDATA[Development Environment]]></category>
		<category><![CDATA[DM3730]]></category>
		<category><![CDATA[Farnell]]></category>
		<category><![CDATA[FlySwatter]]></category>
		<category><![CDATA[JTAG]]></category>
		<category><![CDATA[JTAG Pin out]]></category>
		<category><![CDATA[MLO]]></category>
		<category><![CDATA[OMAP3530]]></category>
		<category><![CDATA[OpenOCD]]></category>
		<category><![CDATA[qemu]]></category>
		<category><![CDATA[TI]]></category>
		<category><![CDATA[Tin Can Tools]]></category>
		<category><![CDATA[TinCanTools]]></category>
		<category><![CDATA[XDS100v2]]></category>

		<guid isPermaLink="false">http://www.embedded-bits.co.uk/?p=538</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.embedded-bits.co.uk/2011/beagleboardxmjtaghardwar/"></g:plusone></div>
I recently decided to embark on writing my own C++ real-time operating system for embedded systems &#8211; I&#8217;ve so far made some progress using software emulation with QEMU but I feel it&#8217;s time to move on to real hardware. I&#8217;ve chosen to use the very popular BeagleBoard XM &#8211; mostly because it represents incredible value [...]]]></description>
		<wfw:commentRss>http://www.embedded-bits.co.uk/2011/beagleboardxmjtaghardwar/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>The Right Approach to Minimal Boot Times [ELCE Video]</title>
		<link>http://www.embedded-bits.co.uk/2011/right-approach-to-minimal-boot-times/</link>
		<comments>http://www.embedded-bits.co.uk/2011/right-approach-to-minimal-boot-times/#comments</comments>
		<pubDate>Sun, 20 Mar 2011 09:52:49 +0000</pubDate>
		<dc:creator>Andrew Murray</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Papers and Presentations]]></category>
		<category><![CDATA[CELF]]></category>
		<category><![CDATA[elce]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[right approach to minimal boot times]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.embedded-bits.co.uk/?p=515</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.embedded-bits.co.uk/2011/right-approach-to-minimal-boot-times/"></g:plusone></div>
Last year at the ELCE 2010 conference in Cambridge I performed a talk about reducing boot times of embedded Linux devices. The video of this talk has now been posted on-line: ELCE 2010 &#8211; The Right Approach to Minimal Boot Times ELCE Video (Best viewed in Chrome) If you wish to see the accompanying slides [...]]]></description>
		<wfw:commentRss>http://www.embedded-bits.co.uk/2011/right-approach-to-minimal-boot-times/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://free-electrons.com/pub/video/2010/elce/elce2010-murray-boot-time.webm" length="494306183" type="video/webm" />
		</item>
	</channel>
</rss>

