<?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 Software &#187; Blog</title>
	<atom:link href="http://tech.opensystemsmedia.com/embedded-software/TECH/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://tech.opensystemsmedia.com/embedded-software</link>
	<description>Beyond simple input/output data transformation, embedded software is built into the electronics of devices we use every day - cars, phones, TVs, appliances, health monitoring equipment, etc. - to control these systems&#039; interactions with the physical world. Embedded software thus becomes more complex as applications become more sophisticated in systems such as planes, missiles, and process control systems. Developers must consider timeliness, concurrency, liveness, reactivity, and heterogeneity when programming abstractions. Types of embedded software include operating systems such as embedded Linux, Windows Embedded, and Real-Time Operating Systems (RTOSs), which are intended for real-time applications and designed to be very compact and efficient, forsaking many functions that non-embedded computer operating systems provide. Communication protocols designated for embedded systems can be closed or open source.</description>
	<lastBuildDate>Fri, 14 Jun 2013 19:30:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Genetic art</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2013/06/13/genetic-art/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2013/06/13/genetic-art/#comments</comments>
		<pubDate>Thu, 13 Jun 2013 08:52:14 +0000</pubDate>
		<dc:creator>Colin Walls</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[off-topic]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=79b316501ff2bc58b81158ba18acd273</guid>
		<description><![CDATA[Last week, I was writing about genetic fingerprinting. I hinted that there was another gene-related technology that had caught my attention. In the past week, I have read up some more on this topic and I am keen to share what I have found. The subject that fascinated me was the idea of using genetics [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, I was writing about <a href="http://blogs.mentor.com/colinwalls/blog/2013/06/06/my-genes/" >genetic fingerprinting</a>. I hinted that there was another gene-related technology that had caught my attention. In the past week, I have read up some more on this topic and I am keen to share what I have found.</p>
<p>The subject that fascinated me was the idea of using genetics to create art &#8230;<span id="more-4968"></span></p>
<p>I am very reluctant to say something is impossible, as that is just trying to predict the future, which in the world of technology is very foolish. Knowledgeable people have said some very stupid things:</p>
<blockquote><p>&#8220;A vehicle accelerated up to 60mph would kill all passengers aboard.&#8221;</p>
<p>&#8220;I cannot imagine that anyone would need more than 640K of memory in their PC.&#8221;</p>
<p>&#8220;The worldwide market for computers will never exceed about a dozen units.&#8221;</p>
</blockquote>
<p>OK, I have paraphrased and the speakers have usually qualified their statements later, but my point holds.</p>
<p>The story, that I heard, was that an artist had found a way to take some DNA &#8211; say a discarded hair &#8211; and extract the complete genetic code from it. Then they would use this information to make a mask &#8211; a sculpture, if you like &#8211; of the person&#8217;s face. There is more information and some images on her <a href="http://deweyhagborg.com/strangervisions/" >website</a>.</p>
<p>My first thought was that this was a remarkable use of technology and an amazing fusion with art. My second thought was that it must be hoax.</p>
<p>I just do not believe that we have a sufficiently well-developed knowledge of the human genome that such an analysis would [yet] be possible. I think it very likely that we will at least get close to this capability in the future, but I just do not think that we are there yet. If we were, surely the police would be able to create accurate facial images of suspects, which would be a very powerful tool. To the best of my knowledge, it is not yet possible to even identify simpler characteristics from a DNA sequence: racial group, height, eye color etc. Also, archaeologists would love to be able to put a face on historical figures; currently they use artists who base their impression on skull shape.</p>
<p>A further issue I have is more a matter of logic. If this technique did work, and I gave the artist some of my DNA and she made an image of my face, would it be my physiognomy now, or when I was 20, or when I was born, or how I will be when [eventually] I am an old man? It seems odd that the artist seems to only produce contemporary images.</p>
<p>OK, I may be wrong and this technique might work as advertised. Another question would be the ethics of using genetic material in this way. I guess it is not too different from taking someone&#8217;s photo &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2013/06/genetic-art/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Device Firmware Upgrade through USB</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2013/06/10/device-firmware-upgrade-through-usb/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2013/06/10/device-firmware-upgrade-through-usb/#comments</comments>
		<pubDate>Mon, 10 Jun 2013 10:43:01 +0000</pubDate>
		<dc:creator>Colin Walls</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Device Firmware Upgrade]]></category>
		<category><![CDATA[DFU]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[Nucleus]]></category>
		<category><![CDATA[nucleus os]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=448a1abd463e9b57f825ceb0c21cb7a5</guid>
		<description><![CDATA[One of the great things about software, compared with hardware, is the ease with which it may be changed and updated. The big downside of software is also the ease with which it can be changed. This ease can make software developers lazy, as they know that they can always fix things later. This is [...]]]></description>
			<content:encoded><![CDATA[<p>One of the great things about software, compared with hardware, is the ease with which it may be changed and updated. The big downside of software is also the ease with which it can be changed. This ease can make software developers lazy, as they know that they can always fix things later. This is a sharp contrast to chip developers who are fearful of errors, as an ASIC respin is both time consuming and very expensive.</p>
<p>On a desktop computer, updates to system and application software seem to come thick and fast, giving vendors the opportunity to provide us with new features, fix old bugs and introduce new and interesting ones. For embedded systems, the matter is a little more complex &#8230;<span id="more-4956"></span></p>
<p>Years ago, embedded system software [firmware] was burned into a PROM and inserted into a socket in the target system. Later changes to software simply involved the swapping of PROMs. I say &#8220;simply&#8221;, but it could be far from simple, as several pitfalls were possible:</p>
<ul>
<li>Getting the right PROMs in the right sockets [the right way around].</li>
<li>Finding PROMs had been soldered on to the board to cut costs.</li>
<li>The system has shipped to numerous customers &#8230;</li>
</ul>
<p>Nowadays, matters are generally eased because the majority of embedded systems keep their code in flash memory, which can normally be reprogrammed in situ. There are broadly 3 ways that the updated code might be transferred to the device:</p>
<ul>
<li>Network</li>
<li>Wireless</li>
<li>USB</li>
</ul>
<p>If the embedded device is connected to the Internet or even just to a LAN, there are a selection of possible ways to implement software updates. This is somewhat similar to the situation with desktop computers.</p>
<p>Wireless connectivity gives other options. If it is a network connection, the same opportunities are available as with a wired network. But there are also other possibilities. A set top box or video recorder might receive updates via TV transmissions. A spacecraft [on the surface of Mars, for example] might receive updates via the NASA Deep Space Network.</p>
<p>For those of us still on planet Earth, a common connectivity option is USB, topic that I have <a href="http://blogs.mentor.com/colinwalls/blog/2012/11/26/usb-3-0/" >written on before</a>. There is a USB device class called Device Firmware Upgrade [DFU], which defines a protocol for sending new firmware to a device.</p>
<p>The <a href="http://www.usb.org/developers/devclass_docs/DFU_1.1.pdf" >specification for DFU</a> is freely and readily available and support is available in many embedded USB stacks &#8211; including <a href="http://www.mentor.com/embedded-software/nucleus/usb" >Nucleus USB</a>, of course.</p>
<p>The details of DFU operation are well documented and quite complex, but the basic principle is quite straightforward. If a device supports DFU, it advises the host of this fact during enumeration. The device then operates in two distinct modes: &#8220;normal&#8221; mode and DFU mode. When the device is connected to the host, it appears to be a normal peripheral. For example, a keyboard would appear to be a normal HID class device and be connected to the appropriate host driver. When the device enters DFU mode, it disconnects from the host, then reconnects as a DFU device and is associated with the host DFU driver, which manages the update transfer.</p>
<p>A small downside of DFU is that no standard Windows driver is provided. However, drivers are available from other sources.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2013/06/device-firmware-upgrade-through-usb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Embedded Software TechChannel&#8217;s Facebook Wall 2013-06-07 10:28:01</title>
		<link>http://www.facebook.com/EmbeddedSoftware.TechChannel/posts/530236333708495</link>
		<comments>http://www.facebook.com/EmbeddedSoftware.TechChannel/posts/530236333708495#comments</comments>
		<pubDate>Fri, 07 Jun 2013 17:28:01 +0000</pubDate>
		<dc:creator>Embedded Software TechChannel</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=6597b465df325845c98d95d411284420</guid>
		<description><![CDATA[LynxOS 7.0 adds military-grade security for connected embedded devicesmil-embedded.com]]></description>
			<content:encoded><![CDATA[<p><br/><a href="/l.php?u=http%3A%2F%2Fmil-embedded.com%2Fnews%2Flynxos-7-0-adds-military-grade-security-for-connected-embedded-devices%2F&amp;h=BAQGulMlx&amp;s=1" id=""  onclick="LinkshimAsyncLink.swap(this, &quot;\/l.php?u=http\u00253A\u00252F\u00252Fmil-embedded.com\u00252Fnews\u00252Flynxos-7-0-adds-military-grade-security-for-connected-embedded-devices\u00252F&amp;h=BAQGulMlx&amp;s=1&quot;);" style="" rel="nofollow" onmouseover="LinkshimAsyncLink.swap(this, &quot;http:\/\/mil-embedded.com\/news\/lynxos-7-0-adds-military-grade-security-for-connected-embedded-devices\/&quot;);">LynxOS 7.0 adds military-grade security for connected embedded devices</a><br/>mil-embedded.com</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2013/06/embedded-software-techchannels-facebook-wall-2013-06-07-102801/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My genes?</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2013/06/06/my-genes/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2013/06/06/my-genes/#comments</comments>
		<pubDate>Thu, 06 Jun 2013 08:30:57 +0000</pubDate>
		<dc:creator>Colin Walls</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[off-topic]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=cfde956353f9565b374ac2010f59f0b0</guid>
		<description><![CDATA[Undoubtedly, one of the great discoveries of the 20th Century was the double-helix and the whole understanding of genes and chromosomes. At the start of the 21st Century we saw – and continue to see – a greater understanding of how genetics works and, increasingly, the function of specific genes. We are also hearing every [...]]]></description>
			<content:encoded><![CDATA[<p>Undoubtedly, one of the great discoveries of the 20th Century was the double-helix and the whole understanding of genes and chromosomes. At the start of the 21st Century we saw &#8211; and continue to see &#8211; a greater understanding of how genetics works and, increasingly, the function of specific genes.</p>
<p>We are also hearing every day about new uses for genetic knowledge. Although research into genetically related disease is very topical, I am particularly interested in two other applications of genetics and the issues raised by their use &#8230;<span id="more-4948"></span></p>
<p>The first of the two genetic technologies to grab my interest was &#8220;genetic fingerprinting&#8221; [the other will wait for another day]. The idea is simple enough: just like we all have unique fingerprint patterns, everyone&#8217;s DNA is different. So, if you have a sample of DNA from a crime scene and you have a suspect, you can look for a DNA match, which would give evidence to say that, at least, they had been at the crime site.</p>
<p>The comparison technique used is relatively simple. There is no attempt to match DNA material gene by gene. Instead the DNA is &#8220;profiled&#8221;, which entails locating a number of well-defined markers in the DNA which characterize it. This essentially yields a number which is unique to that DNA [at least, the chances of another, different DNA sample yielding the same number is astronomic]. So this process is applied to the sample gathered at the crime scene and to the suspect&#8217;s DNA. A match is bad news for the suspect.</p>
<p>There is much debate about the retention of DNA profiles gathered from individuals, particularly if they are shown to be innocent. It seems that people feel that their privacy/freedom is being infringed. I fail to see how this is the case. The DNA profile is just a number and, despite many fantastical press reports, cannot be used for any purpose other than matching a sample. I would be very willing to have the authorities keep my profile on file. That way, if a crime is committed and I am even slightly suspected, I can be eliminated without even being troubled by a phone call. As I have no plans to commit any crimes, what have I got to lose?</p>
<p>This could also be applied to immigration. Instead of taking my fingerprints [sometimes] when I enter the US [which I find slightly degrading for some reason], I think that I would find being asked to provide some DNA a bit more satisfying: &#8220;Welcome to the United States Mr. Walls. Sorry for the interminable wait in the immigration line after your 11 hour flight. Would you care to spit here please &#8230;&#8221;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2013/06/my-genes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>http://mil-embedded.com/news/radio-frequency-threat-simulator-from-northrop-grum&#8230;</title>
		<link>http://www.facebook.com/EmbeddedSoftware.TechChannel/posts/529186807146781</link>
		<comments>http://www.facebook.com/EmbeddedSoftware.TechChannel/posts/529186807146781#comments</comments>
		<pubDate>Wed, 05 Jun 2013 21:43:02 +0000</pubDate>
		<dc:creator>Embedded Software TechChannel</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=933f0d0dd04da04b945b6ae48bd81291</guid>
		<description><![CDATA[http://mil-embedded.com/news/radio-frequency-threat-simulator-from-northrop-grumman-to-be-used-at-warner-robins-als/Radio frequency threat simulator from Northrop Grumman to be used at Warner Robins ALSmil-embedded.comBUFFALO, N.Y. Northrop Grumman Cor...]]></description>
			<content:encoded><![CDATA[<p><a href="/l.php?u=http%3A%2F%2Fmil-embedded.com%2Fnews%2Fradio-frequency-threat-simulator-from-northrop-grumman-to-be-used-at-warner-robins-als%2F&amp;h=qAQH1ZwHG&amp;s=1"  rel="nofollow nofollow" onmouseover="LinkshimAsyncLink.swap(this, &quot;http:\/\/mil-embedded.com\/news\/radio-frequency-threat-simulator-from-northrop-grumman-to-be-used-at-warner-robins-als\/&quot;);" onclick="LinkshimAsyncLink.swap(this, &quot;\/l.php?u=http\u00253A\u00252F\u00252Fmil-embedded.com\u00252Fnews\u00252Fradio-frequency-threat-simulator-from-northrop-grumman-to-be-used-at-warner-robins-als\u00252F&amp;h=qAQH1ZwHG&amp;s=1&quot;);">http://mil-embedded.com/news/radio-frequency-threat-simulator-from-northrop-grumman-to-be-used-at-warner-robins-als/</a><br/><br/><br/><a href="/l.php?u=http%3A%2F%2Fmil-embedded.com%2Fnews%2Fradio-frequency-threat-simulator-from-northrop-grumman-to-be-used-at-warner-robins-als%2F&amp;h=XAQGp9Kmd&amp;s=1" id=""  onclick="LinkshimAsyncLink.swap(this, &quot;\/l.php?u=http\u00253A\u00252F\u00252Fmil-embedded.com\u00252Fnews\u00252Fradio-frequency-threat-simulator-from-northrop-grumman-to-be-used-at-warner-robins-als\u00252F&amp;h=XAQGp9Kmd&amp;s=1&quot;);" style="" rel="nofollow" onmouseover="LinkshimAsyncLink.swap(this, &quot;http:\/\/mil-embedded.com\/news\/radio-frequency-threat-simulator-from-northrop-grumman-to-be-used-at-warner-robins-als\/&quot;);">Radio frequency threat simulator from Northrop Grumman to be used at Warner Robins ALS</a><br/>mil-embedded.com<br/>BUFFALO, N.Y. Northrop Grumman Corp. will deliver its enhanced Combat Electromagnetic Environment Simulator (CEESIM) system to officials at the Warner Robins Air Logistics Center (WR-ALC). The company won a task order from the U.S. General Services Administration (GSA) under the Alliant indefinite d&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2013/06/httpmil-embedded-comnewsradio-frequency-threat-simulator-from-northrop-grum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Non-intrusive debug</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2013/06/03/non-intrusive-debug/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2013/06/03/non-intrusive-debug/#comments</comments>
		<pubDate>Mon, 03 Jun 2013 15:05:50 +0000</pubDate>
		<dc:creator>Colin Walls</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Ashling]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[non-intrusive debug]]></category>
		<category><![CDATA[sourcery codebench]]></category>
		<category><![CDATA[trace]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=ad4e22922ef4c723fd1641b548e191fe</guid>
		<description><![CDATA[I recently posted about using printf() for debugging – or, rather, I suggested a few good alternatives, which make more sense to embedded developers. Most debugging/tracing technologies involve adding some code to the target system, which might make some developers uncomfortable. Surely the code being debugged is no longer the same as you plan to [...]]]></description>
			<content:encoded><![CDATA[<p>I recently posted about <a href="http://blogs.mentor.com/colinwalls/blog/2013/04/08/debugging-with-printf-or-not/" >using printf() for debugging</a> &#8211; or, rather, I suggested a few good alternatives, which make more sense to embedded developers. Most debugging/tracing technologies involve adding some code to the target system, which might make some developers uncomfortable. Surely the code being debugged is no longer the same as you plan to ship?</p>
<p>Broadly speaking, this is really a manifestation of what physicists call the <a href="http://en.wikipedia.org/wiki/Observer_effect_(physics)" >Observer Effect</a>. This effect refers to changes in a system that are caused by attempts to make measurements. This effect can be mitigated in various ways, but there is the possibility of eliminating intrusiveness all together &#8230;<span id="more-4940"></span></p>
<p>Even using LTTng, as <a href="http://blogs.mentor.com/colinwalls/blog/2013/04/08/debugging-with-printf-or-not/" >I discussed before</a>, does have a very small impact on the performance of the system that is being debugged. For most applications, the impact is negligible and may be ignored. However, there are occasions when the real time behavior of a system is absolutely critical. It may not be the case for all aspects of a system, but if just part of it exhibits such time criticality, it is a safe bet that you will need to debug that area.</p>
<p>There are two ways to approach this problem. First is to consider <a href="http://blogs.mentor.com/colinwalls/blog/2009/10/05/simulation-better-than-the-real-thing/" >simulation</a>. This is a low cost way to run a system in a potentially cycles-accurate way, even if it is not at full speed. If that is not viable &#8211; because you really need to run at full speed to interact with other systems &#8211; some appropriate instrumentation is required.</p>
<p>Historically, very high speed probes, that enable a system to be monitored at full speed, have suffered from three drawbacks:</p>
<ul>
<li>Cost &#8211; they tended to be very expensive</li>
<li>Capacity &#8211; trace buffer size was never quite enough</li>
<li>Usability &#8211; the user interface was typically unfamiliar to the developer</li>
</ul>
<p>The good news is that all three of these issues have been addressed to the point that this approach is viable for many development teams. Mentor Embedded announced the <a href="http://www.mentor.com/embedded-software/news/mentor-software-trace-debug-performance-analysis" >integration of Ashling&#8217;s excellent Vitra-XD with the Sourcery CodeBench environment</a>. This gives the developer the opportunity to seamlessly move from debugging/analyzing code on a real target or under simulation to operating with a state of the art trace probe.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2013/06/non-intrusive-debug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Embedded Software TechChannel&#8217;s Facebook Wall 2013-05-31 12:21:21</title>
		<link>http://www.facebook.com/EmbeddedSoftware.TechChannel/posts/526495944082534</link>
		<comments>http://www.facebook.com/EmbeddedSoftware.TechChannel/posts/526495944082534#comments</comments>
		<pubDate>Fri, 31 May 2013 19:21:21 +0000</pubDate>
		<dc:creator>Embedded Software TechChannel</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=8ed35de874e6e6e43d6d8577f05fdd69</guid>
		<description><![CDATA[Completion of Project Hi-Lite to improve verification for high integrity systemsmil-embedded.com]]></description>
			<content:encoded><![CDATA[<p><br/><a href="/l.php?u=http%3A%2F%2Fmil-embedded.com%2Fnews%2Fcompletion-of-project-hi-lite-to-improve-verification-for-high-integrity-systems&amp;h=EAQG5Kgnt&amp;s=1" id=""  onclick="LinkshimAsyncLink.swap(this, &quot;\/l.php?u=http\u00253A\u00252F\u00252Fmil-embedded.com\u00252Fnews\u00252Fcompletion-of-project-hi-lite-to-improve-verification-for-high-integrity-systems&amp;h=EAQG5Kgnt&amp;s=1&quot;);" style="" rel="nofollow" onmouseover="LinkshimAsyncLink.swap(this, &quot;http:\/\/mil-embedded.com\/news\/completion-of-project-hi-lite-to-improve-verification-for-high-integrity-systems&quot;);">Completion of Project Hi-Lite to improve verification for high integrity systems</a><br/>mil-embedded.com</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2013/05/embedded-software-techchannels-facebook-wall-2013-05-31-122121/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two heads are better than one</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2013/05/30/two-heads-are-better-than-one/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2013/05/30/two-heads-are-better-than-one/#comments</comments>
		<pubDate>Thu, 30 May 2013 07:37:53 +0000</pubDate>
		<dc:creator>Colin Walls</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[off-topic]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=d877e2064e3fdbfdf75d5b7e72c57b17</guid>
		<description><![CDATA[Sometimes I have an idea, or gain an understanding or insight into something, and I have to share. That is where I am today. I always marvel at the complexity of biological systems – how everything fits together to make elegant, efficient, self-maintaining machines. I sometimes have to catch myself, when I have the thought: [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes I have an idea, or gain an understanding or insight into something, and I have to share. That is where I am today.</p>
<p>I always marvel at the complexity of biological systems &#8211; how everything fits together to make elegant, efficient, self-maintaining machines. I sometimes have to catch myself, when I have the thought: &#8220;That is a cool design.&#8221; I did that recently when looking at the semi-circular canals in our ears that give us a sense of balance. Of course, design does not come into it. These amazing systems are the result of evolution by natural selection, which is such an astounding process that I do not need to invent a &#8220;designer&#8221; to explain matters.</p>
<p>I guess the pinnacle of evolutionary development is the human brain &#8230;<span id="more-4928"></span></p>
<p>The brain is a computer; in many ways it is similar to the machines that we use every day. The evolution of the brain is certainly analogous to that of the computer. Over millions of years, brains have evolved from just a few cells to the billion or so inside your head. Compare this with computers which have gone from hundreds of transistors to hundreds of thousands to the billion or so in a modern PC&#8217;s CPU.</p>
<p>So, how is the brain going to evolve? We can look at how computers are moving forward. Although processors are getting bigger, more complex and more powerful, the big movement is towards multi-processing. It is already very common for desktop computers to sport a quad-core CPU; modern supercomputers use vast arrays of processors to perform massively parallel processing tasks.</p>
<p>The human brain can already perform multiple actions simultaneously &#8211; I am not going to discuss the possibility that one sex may be better than the other at multi-tasking! On a larger scale, the brain has two, semi-autonomous hemispheres. Long ago, <a href="http://blogs.mentor.com/colinwalls/blog/2009/07/30/problem-solving/" >I wrote about how the brain solves problems</a>. But where next?</p>
<p>Let&#8217;s try a thought experiment. Put a person in a room alone and ask them a dozen questions which have basic, factual answers. Do this twice &#8211; once in 1963 and again in 2013. How would the results compare? You might think that there would be little to choose between them, but, if you took no particular precautions, the 21st Century man would always win. His smart phone or tablet would give him immediate, efficient access to the world&#8217;s knowledge, so how could he lose?</p>
<p>IMHO, this is the answer. The next step in human brain evolution is the Internet. Many of us already take it for granted that any information we need will be at our fingertips. This has become easier over the last few years, as tablets and smart phones have made access so convenient and immediate. This is great, but you ain&#8217;t seen nothing yet!</p>
<p>There has been much talk about Google Glass lately and the idea of &#8220;wearable computing&#8221; seems to have arrived. The possibility that a device can use access to the Internet to simply augment our ordinary experiences is the stuff of science fiction, but that possibility is being realized [almost]. I have only seen one person wearing Google Glass so far &#8211; I have to say that he did look rather distrait &#8230;</p>
<p>The next logical step is a more direct connection from our brains to the Internet, cutting out the inefficiencies of typing, talking, reading etc. I visualize a world where you would only have to think &#8220;What was the population of Hong Kong in 1929?&#8221; or &#8220;What is the next train due at this station?&#8221; and you would instantly know the answer. I am not sure whether this is scary or exciting, but I have a feeling that it is inevitable.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2013/05/two-heads-are-better-than-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using an SMTP client</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2013/05/28/using-an-smtp-client/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2013/05/28/using-an-smtp-client/#comments</comments>
		<pubDate>Tue, 28 May 2013 07:54:43 +0000</pubDate>
		<dc:creator>Colin Walls</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[medical]]></category>
		<category><![CDATA[Nucleus]]></category>
		<category><![CDATA[nucleus os]]></category>
		<category><![CDATA[POP3]]></category>
		<category><![CDATA[rtos]]></category>
		<category><![CDATA[SMTP]]></category>
		<category><![CDATA[TCP/IP]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=3c59df425ca19d1ec699fd460d22de8d</guid>
		<description><![CDATA[I always find it satisfying to see simple solutions to apparently complex problems and the world of embedded software certainly lends itself to some creativity. My concept of “simple” is quite broad, but essentially encompasses anything that is easy to understand [for me] and ideally avoids reinvention of any wheels. A while ago, I wrote [...]]]></description>
			<content:encoded><![CDATA[<p>I always find it satisfying to see simple solutions to apparently complex problems and the world of embedded software certainly lends itself to some creativity. My concept of &#8220;simple&#8221; is quite broad, but essentially encompasses anything that is easy to understand [for me] and ideally avoids reinvention of any wheels.</p>
<p>A while ago, I wrote about <a href="http://blogs.mentor.com/colinwalls/blog/2012/04/30/who-needs-a-web-server/" >incorporating a Web server</a> [HTTP server actually] into an embedded device so that information might be displayed on any connected Web browser. Along the same lines, I have been thinking about using email &#8230;<span id="more-4916"></span></p>
<p>When I talked about adding a Web server to an embedded device, I was not suggesting that the device in question actually hosted a publicly accessible website. The idea was to simply leverage Web technology. Web pages &#8211; HTML etc. &#8211; is easy enough to use to create a user interface; the HTTP protocol is straightforward to handle; Web server software is readily available for most real time operating systems, including <a href="http://www.mentor.com/embedded-software/nucleus/" >Nucleus</a>, of course. The result is a powerful and readily maintainable UI solution with minimal coding.</p>
<p>We can apply the same philosophy to the use of email. I am not, of course, suggesting that a device have an email account so that it can keep in touch with its friends and relations. I am talking about the leveraging of technology. Imagine a device that needs to periodically send [and/or perhaps receive] modest amounts of data to a remote location and it is connected [at least some of the time] to the Internet. A possible example might be a WiFi enabled vital signs monitor worn at all times by a chronically ill patient; it might send a set or readings to the hospital periodically or when there is a significant change.</p>
<p>Although there are a number email protocols in use, <a href="http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol" >Simple Mail Transfer Protocol</a> [SMTP] is very common and widely understood, as it has been in use since the earliest days of the Internet. SMTP is normally only used for sending emails &#8211; the sender needs to have SMTP client software and the mailer server will have an SMTP server. Other email protocols in use include Post Office Protocol [POP3], which is complementary to SMTP and used to receive email, and the Internet Message Access Protocol [IMAP], which provides more sophisticated capabilities.<a href="http://s3-blogs.mentor.com/colinwalls/files/2013/05/SMTP.png"><img class="aligncenter size-medium wp-image-4920" src="http://s3-blogs.mentor.com/colinwalls/files/2013/05/SMTP-520x174.png" alt="" width="520" height="174" /></a></p>
<p>SMTP is a simple, text based protocol, which really only uses 3 types of message [MAIL, RCPT and DATA]. It is, therefore, easy to apply and monitor/debug. An SMTP client can be [and usually is] very light weight and readily available for many popular RTOSes, like <a href="http://www.mentor.com/embedded-software/nucleus/" >Nucleus</a>. The simplicity is attractive because it minimizes development time. The small size is useful for many embedded devices where memory is at a premium, but is also a benefit for applications [like medical devices] where certification is required &#8211; less code = cheaper certification.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2013/05/using-an-smtp-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>http://embedded-computing.com/articles/static-visualization-eases-development-pr&#8230;</title>
		<link>http://www.facebook.com/EmbeddedSoftware.TechChannel/posts/521937681205027</link>
		<comments>http://www.facebook.com/EmbeddedSoftware.TechChannel/posts/521937681205027#comments</comments>
		<pubDate>Thu, 23 May 2013 17:48:45 +0000</pubDate>
		<dc:creator>Embedded Software TechChannel</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=a97ee932632a6557302e2b118a59330f</guid>
		<description><![CDATA[http://embedded-computing.com/articles/static-visualization-eases-development-process/]]></description>
			<content:encoded><![CDATA[<p><a href="/l.php?u=http%3A%2F%2Fembedded-computing.com%2Farticles%2Fstatic-visualization-eases-development-process%2F&amp;h=pAQFwEk27&amp;s=1"  rel="nofollow nofollow" onmouseover="LinkshimAsyncLink.swap(this, &quot;http:\/\/embedded-computing.com\/articles\/static-visualization-eases-development-process\/&quot;);" onclick="LinkshimAsyncLink.swap(this, &quot;\/l.php?u=http\u00253A\u00252F\u00252Fembedded-computing.com\u00252Farticles\u00252Fstatic-visualization-eases-development-process\u00252F&amp;h=pAQFwEk27&amp;s=1&quot;);">http://embedded-computing.com/articles/static-visualization-eases-development-process/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2013/05/httpembedded-computing-comarticlesstatic-visualization-eases-development-pr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
