<?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>Mon, 07 May 2012 07:00:11 +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>Preparing for GTC</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2012/05/07/preparing-for-gtc/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2012/05/07/preparing-for-gtc/#comments</comments>
		<pubDate>Mon, 07 May 2012 07:00:11 +0000</pubDate>
		<dc:creator>Colin Walls</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[gpu]]></category>
		<category><![CDATA[GTC]]></category>
		<category><![CDATA[NVIDIA]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[VSIPL++]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=1c0e12015084e525fad905e8bd7531f0</guid>
		<description><![CDATA[This week, I am please to introduce a guest blogger. My colleague Brooks Moses is getting ready for a conference: Colin has graciously let me use this space to tell you about the things I’m doing to get ready for my presentation at NVIDIA’s GPU Technology Conference on May 15th. So, hello! … Now, wait a [...]]]></description>
			<content:encoded><![CDATA[<p>This week, I am please to introduce a guest blogger. My colleague <a href="mailto:brooks_moses@mentor.com">Brooks Moses</a> is getting ready for a conference:</p>
<p>Colin has graciously let me use this space to tell you about the things I&#8217;m doing to get ready for my presentation at NVIDIA&#8217;s <a href="http://www.gputechconf.com" >GPU Technology Conference</a> on May 15th. So, hello! &#8230;</p>
<p><span id="more-2975"></span></p>
<p><a href="http://s3-blogs.mentor.com/colinwalls/files/2012/05/brooks_moses_badge_photo.jpg"><img class="alignright size-medium wp-image-2979" src="http://s3-blogs.mentor.com/colinwalls/files/2012/05/brooks_moses_badge_photo-520x477.jpg" alt="" width="218" height="200" /></a>Now, wait a minute, you&#8217;re probably wondering; what are we doing talking about GPUs? Isn&#8217;t this an embedded software blog? And indeed it is; the systems that I&#8217;m working on come from an odd corner of the world called High Performance Embedded Computing. The control system in an unmanned aircraft might be equivalent to a multi-server compute cluster, but it has size, weight, and power constraints just like any other embedded system. The challenge is to get as much computational performance as you can within those constraints &#8212; and, when you really need a lot of compute power, the performance-per-watt numbers on a GPU start to look very attractive.</p>
<p>However, making GPUs work in an embedded system is really difficult on a lot of levels. In absolute terms, they draw a lot of power &#8212; about 70W for a typical embedded chip. Our friends at <a href="http://defense.ge-ip.com/products/family/gpgpu" >GE Intelligent Platforms</a>, <a href="http://www.cwcdefense.com/products/dsp-fpga/gpu-dsp/vpx6-490-gpu-dsp.html" >Curtiss Wright</a>, and <a href="http://www.mc.com/gpgpu/" >Mercury Computer</a> have been building hardware that can support GPUs and keep them cool in a flight-capable system, and some of the tricks they&#8217;ve used are pretty intense. (Ask Curtiss-Wright about their air-flow-through technology!) But even when you have the hardware in place, that&#8217;s not the end of the problems; GPUs are also notoriously difficult to program if you want to get maximum performance.</p>
<p>That&#8217;s where we come in, with Mentor&#8217;s <a href="http://go.mentor.com/vsiplxx" >Sourcery VSIPL++ library</a>. It&#8217;s a library for writing embedded high-performance signal- and image-processing applications, designed so that the user can write simple code that&#8217;s hardware-independent, and we can make their code go fast on many different hardware platforms. We&#8217;ve been working on the GPU version for several years now, but we also have versions for a couple of different CPUs, and we did a version for IBM&#8217;s Cell/B.E. processor back when that was the hot new thing. Like the hardware builders, we&#8217;ve put a lot of tricks into making this actually work and work well, and that&#8217;s part of what I&#8217;m going to be presenting. I&#8217;m trying to pack a lot of technical detail into the presentation, so people can really learn from what we&#8217;ve done and use some of the same tricks in their own code.</p>
<p>No presentation is complete without a good demo, though, and that&#8217;s the other part of what I&#8217;m hurrying to get finished by the 15th. We have a sample Synthetic Aperture Radar computation that we&#8217;ve been using as a benchmark for a number of years, and a brand new NVIDIA GTX-680 GPU in our lab that we just got last week (it&#8217;s the first card they&#8217;ve released with the new &#8220;Kepler&#8221; architecture), and so we&#8217;ll be presenting some benchmark numbers on how well that works. I&#8217;ve only run a couple of quick things so far, but the first look indicates that it&#8217;s substantially faster than the last-generation Tesla C2050 card we&#8217;ve been using.</p>
<p>So, if you&#8217;re in the San Jose, California area on the 15th, come by the conference and listen to the presentation, or stop by our booth. I&#8217;d be very glad to see you! And, if you can&#8217;t make it, come back here in a couple of weeks and I&#8217;ll be posting a recap of the presentation for the loyal readers here.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/05/preparing-for-gtc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Photography rebooted</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2012/05/02/photography-rebooted/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2012/05/02/photography-rebooted/#comments</comments>
		<pubDate>Wed, 02 May 2012 14:41:43 +0000</pubDate>
		<dc:creator>Colin Walls</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[light field photography]]></category>
		<category><![CDATA[Lytro]]></category>
		<category><![CDATA[off-topic]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=0e2a50828993bbd59669a215673a5b7e</guid>
		<description><![CDATA[From time to time, a new technology comes along. Someone finds a different and better [cheaper or easier or faster or smaller ...] way to do something. This results in a major shakeup of a market and perhaps a whole industry. It is not uncommon for the market leaders to be sluggish in their response [...]]]></description>
			<content:encoded><![CDATA[<p>From time to time, a new technology comes along. Someone finds a different and better [cheaper or easier or faster or smaller ...] way to do something. This results in a major shakeup of a market and perhaps a whole industry. It is not uncommon for the market leaders to be sluggish in their response to a new opportunity and a newcomer to start dominating the business. Technologies like this are termed &#8220;disruptive&#8221;.</p>
<p>Apart from embedded software, I have a number of interests and one of those is photography. This is certainly a market which has been shaken by a disruptive technology and is set to get another shake up very soon &#8230;<span id="more-2999"></span></p>
<p><a href="http://s3-blogs.mentor.com/colinwalls/files/2012/05/DSC01972.jpg"><img class="alignright size-medium wp-image-3003" src="http://s3-blogs.mentor.com/colinwalls/files/2012/05/DSC01972-520x520.jpg" alt="" width="312" height="312" /></a>For over 100 years, film photography was the dominant still [and moving] image recording technology. Then, about 15 years ago, digital began to get a grip and there has been no stopping it. I bought my first &#8220;serious&#8221; digital camera in 2003 and have not used a roll of film since. I doubt whether I ever will do so again. As my main interest is taking pictures, rather than necessarily the underlying technology, the immediacy of digital just makes my photography more fun.</p>
<p>I guess this was a disruptive technology, as it&#8217;s introduction changed all the rules. A typical film camera consisted of: optics + mechanics + a bit of electronics [maybe]. On the other hand a digital camera is: optics + a lot of electronics + a bit of mechanics [perhaps]. [You might argue that a DSLR has a lot of mechanics, but I regard these machines as over-priced throw-backs, which are unlikely to persist in their current form.]</p>
<p>It is this mix of technologies that has changed and caused the disruption. The result is that many camera companies have disappeared &#8211; most notably Kodak. Some have adapted and continued to flourish &#8211; notably Canon and Nikon &#8211; though they do cling on to conventional DSLR technology and have not enthusiastically embraced the &#8220;mirrorless&#8221; approach. Other companies &#8211; and I have in mind Sony and Panasonic as examples &#8211; who are strong in electronics, have risen to be market leaders.</p>
<p>But I think that it is all going to change again. Most keen [digital] photographers like to shoot in RAW. This means that their cameras simply store the data that comes out of the sensor, instead of processing the image to be a JPEG. This means that the photographer has much more latitude later to make decisions and fix problems on the computer. This level of image control is very appealing. I guess that they are very much on a par with film workers in the darkroom.</p>
<p>At the fundamental level, things have not changed. The camera focuses an image onto something, which stores it for later reproduction. The photographer chose what was in focus &#8211; he selected the focal plane [where the image is totally sharp] and the depth of field [the distance in front and behind the focal plane that is also acceptably sharp]. This is the way that all cameras work and have worked since they were first invented. Until now &#8230;</p>
<p>Enter the light ray camera. This type of device &#8211; which is on the market now &#8211; works on a different principle. It simply gathers and stores a digital representation of all the light rays that enter the lens. Later, this can be uploaded to the computer and the photographer can then locate the focal plane and decide on the depth of field. I see it as a kind of &#8220;RAW on steroids&#8221;.</p>
<p>As I see it, this has the potential to change photography for ever. I want one of these cameras. Now. Currently, they only ship to the US, but I can easily get around this. The only thing that is stopping me is that the special image processing software, that lets you set the focus parameters and convert to a conventional format, is only available on Mac and I do not have one [and have no other immediate incentive to get one]. Apparently a Windows version is coming. I will wait.</p>
<p>If you have tried a light field camera, please comment or <a href="mailto:colin_walls@mentor.com">email</a> and share your impressions.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/05/photography-rebooted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Who needs a Web server?</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2012/04/30/who-needs-a-web-server/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2012/04/30/who-needs-a-web-server/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 08:19:56 +0000</pubDate>
		<dc:creator>Colin Walls</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[Nucleus]]></category>
		<category><![CDATA[nucleus os]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=256e3fa0b5a0374d129685e432c3e11e</guid>
		<description><![CDATA[I was having some trouble with my Internet connection recently. I will probably never know exactly what was wrong [as ADSL is, for intents and purposes, magic], but investigating the problem was interesting. I am not a networking specialist, so I would expect that messing with the settings inside a router would be hard, but [...]]]></description>
			<content:encoded><![CDATA[<p>I was having some trouble with my Internet connection recently. I will probably never know exactly what was wrong [as ADSL is, for intents and purposes, magic], but investigating the problem was interesting. I am not a networking specialist, so I would expect that messing with the settings inside a router would be hard, but the manufacturers have made it very simple.</p>
<p>I began to wonder why there are not many devices that work in the same way &#8230;<span id="more-2959"></span></p>
<p>As the router allocates IP addresses to computers and other devices on the network, it seems unsurprising that it allocates one to itself. To take advantage of the resulting functionality, it is only a matter of entering this IP address into the browser on any other device on the network. There is then the opportunity to view and adjust lots of settings and parameters for the broadband connection.</p>
<p>So, how does this work? Essentially, the router contains a Web server. This term makes me think of a big powerful computer, which has access to an enormous database of Web pages that it can serve up to a remote computer on demand. It would be more accurate to call it an HTTP server, as essentially all it does is respond to this standard protocol in order to deliver data which looks very like a website. The developers of the router software could very easily construct quite a sophisticated user interface using just a few HTML files.</p>
<p>Although I know that my router is far from unique in operating in this way, it does seem to me that there is enormous potential for other equipment to be given this capability. For example, my hard disc video recorder could be easily controlled from my iPhone or iPad, without the manufacturer needing to create and maintain an app. The same might go for my heating system [program and adjust from anywhere in the house or elsewhere even] or my digital camera [deal with settings, view pictures etc.] or many other electronic devices.</p>
<p>Although you might think of a Web server as being large, an HTTP server which is optimized for embedded applications is quite small in terms of code size and requires very little memory in which to store the HTML pages, which can probably be compressed anyway. Most embedded operating systems have networking options and an HTTP server is a common option &#8211; like our <a href="http://www.mentor.com/embedded-software/nucleus/networking" >Nucleus</a> product, for example.</p>
<p>The possibilities for this kind of UI are really only limited by the designer&#8217;s imagination.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/04/who-needs-a-web-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PowerPoint hints and tips #2</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2012/04/26/powerpoint-hints-and-tips-2/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2012/04/26/powerpoint-hints-and-tips-2/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 08:08:48 +0000</pubDate>
		<dc:creator>Colin Walls</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[PowerPoint]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=09c4e077ec8b518143b3d31c11f6625e</guid>
		<description><![CDATA[I wrote before about my angle on presentation techniques. As I spend a lot of my time in front of an audience, I have given a lot of thought to how PowerPoint can be used as an effective tool for communication, instead of an instrument of torture. I would like to share some more of [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote <a href="http://blogs.mentor.com/colinwalls/blog/2012/03/22/powerpoint-hints-and-tips-1/" >before</a> about my angle on presentation techniques. As I spend a lot of my time in front of an audience, I have given a lot of thought to how PowerPoint can be used as an effective tool for communication, instead of an instrument of torture.</p>
<p>I would like to share some more of those ideas with you today &#8230;<span id="more-2951"></span></p>
<p>I have 3 tips to pass on in this posting. The first 2 are about starting the presentation and the third is concerned with answering questions.</p>
<p>As I mentioned in my last posting, I feel very strongly that the presenter should always be in complete control of what is displayed on the screen, as any spurious display will only be a distraction and you want your audience&#8217;s complete attention. So, tip #1 is: do not turn on the projector [or, at least, do not connect the laptop to the projector] until you have your first slide on display. This might take place long before you plan to start talking. A useful, informative title slide on the screen is welcoming and reassuring ["I am in the right room!"] to attendees as they arrive.</p>
<p>In order to get to this point efficiently, you need to be able to easily access your presentation. A good way to do that is to remember the 3 golden rules of successful presentation: prepare, prepare, prepare. In this case, the simplest preparation is to apply tip #2: put a shortcut to the presentation file [or a copy of the file, if you prefer] on the desktop, where you can get to it instantly after booting up. To make a shortcut, just open the folder where your PPT file is stored and drag the file to the desktop using the <strong>right</strong> mouse button. When you drop the file on the desktop, you will get a menu and one of the options is to create a shortcut. You can use a tip from my <a href="http://blogs.mentor.com/colinwalls/blog/2012/03/22/powerpoint-hints-and-tips-1/" >last posting</a> &#8211; right click and choose &#8220;Show&#8221; &#8211; to have your slides on display in no time.</p>
<p>Many presenters are nervous about getting questions from the audience, as they are afraid that they will not have the answer. This is a reasonable fear, up to a point, as it is an opportunity for you, as the presenter, to lose control, which is not good. This can generally be avoided in a simple way by just saying &#8220;I am sorry. I do not know.&#8221; and moving on. I actually fear <em>not</em> getting questions, as audience interaction is almost always wholly beneficial. It is important to think about how you are going to behave while answering a question.</p>
<p>Remember, slides are just an aid to conveying a message. They can also be a distraction, if the content is not relevant to what you are saying, as may be the case during a Q&amp;A interlude. This can also happen if you go &#8220;off piste&#8221; and discuss a side issue for which you do not have supporting slides. To avoid a distracting backdrop to your question answering, you could just turn off the projector [or break the connection], but there is a much simpler way, which is to apply tip #3: hit the <strong>B</strong> or <strong>W</strong> key. This will cause the screen to be blanked to black or white respectively. Hitting any key restores the slide display. Black is the best choice, as a bright white screen is rather distracting, but, in a badly lit room, white may be better.</p>
<p>Hopefully these tips will be helpful in your next presentation. There will be more &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/04/powerpoint-hints-and-tips-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New book</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2012/04/23/new-book/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2012/04/23/new-book/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 07:39:26 +0000</pubDate>
		<dc:creator>Colin Walls</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=30c5d19121c66fe6329b3db47c879b4b</guid>
		<description><![CDATA[My recent visit to California, to attend ESC, had many highlights, but a key one was when somebody handed me a book. This was the first time that I had seen a finished copy of Embedded Software: The Works, 2nd Edition. At that point, it had not yet been “officially” published, but the Elsevier/Newnes rushed [...]]]></description>
			<content:encoded><![CDATA[<p>My recent visit to California, to attend ESC, had many highlights, but a key one was when somebody handed me a book. This was the first time that I had seen a finished copy of Embedded Software: The Works, 2nd Edition. At that point, it had not yet been &#8220;officially&#8221; published, but the Elsevier/Newnes rushed a modest number of copies for sale at the show and for us to use in prize drawings. I really appreciated them making the effort.</p>
<p>The first edition of &#8220;The Works&#8221; was my second book, which I talked about <a href="http://blogs.mentor.com/colinwalls/blog/2009/07/13/the-works/" >here</a>, so I guess this is my third. Although the experience of holding the first copy of my first book will never be repeated, it is very satisfying to see the completion of such a project.</p>
<p><a href="http://s3-blogs.mentor.com/colinwalls/files/2012/04/Image.png"><img class="alignright size-full wp-image-2943" src="http://s3-blogs.mentor.com/colinwalls/files/2012/04/Image.png" alt="" width="303" height="376" /></a>I will be straight with you. This book is not a complete rewrite. What I did was go through all the articles, updating some, as appropriate, removing a few that seemed less relevant and adding some new ones that cover contemporary topics, like open source software. I hope that the book will continue to be of value to those who are new to embedded software, teachers of the subject and engineers who need background information on a variety of embedded software topics.</p>
<p>If you would like a copy, it is available now [in the US; very soon elsewhere] directly from the publishers or from your favorite online book seller. The ISBN is 0124158226. As with the first edition, all the royalties will be paid to a worthwhile charity.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/04/new-book/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2012/04/20/video/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2012/04/20/video/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 08:32:09 +0000</pubDate>
		<dc:creator>Colin Walls</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[Nucleus]]></category>
		<category><![CDATA[nucleus os]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=535c46e27327f45796886fe52093d574</guid>
		<description><![CDATA[I am not really sure that I should be promoting this, but here goes … When I was at ESC the other week, I made the mistake of not hiding or looking frantically busy at some point. The result was that I got interviewed by some guys from ARM about the Stella robot that we [...]]]></description>
			<content:encoded><![CDATA[<p>I am not really sure that I should be promoting this, but here goes &#8230;</p>
<p>When I was at ESC the other week, I made the mistake of not hiding or looking frantically busy at some point. The result was that I got interviewed by some guys from ARM about the Stella robot that we were showing and the <a href="http://www.mentor.com/embedded-software/nucleus/" >Nucleus RTOS</a> that powers her. It has now been posted on <a href="http://www.youtube.com/watch?v=-QHoTxTGNmg" >YouTube</a>.</p>
<p>I do not think that this one is going to go viral &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/04/video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How do you tell the time?</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2012/04/19/how-do-you-tell-the-time/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2012/04/19/how-do-you-tell-the-time/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 08:01:34 +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=66440fd8dcb11a015215394ddd1b543f</guid>
		<description><![CDATA[A simple enough question, I would think. Most people would reply with: “I look at my watch.” Or, if they are younger, maybe: “I look at my cell phone.” In any case, there are numerous sources of time all around us. However, there is the question of accuracy. How do you set your watch etc. [...]]]></description>
			<content:encoded><![CDATA[<p>A simple enough question, I would think. Most people would reply with: &#8220;I look at my watch.&#8221; Or, if they are younger, maybe: &#8220;I look at my cell phone.&#8221; In any case, there are numerous sources of time all around us. However, there is the question of accuracy. How do you set your watch etc. to the precise time?</p>
<p>Many years ago, there was no standard time and all anyone could use was the position of the Sun. When church clocks became commonplace, the hourly chime was the source of all temporal knowledge. In recent years, we have turned to technology, but that brings its challenges &#8230;<span id="more-2919"></span></p>
<p>When I was a kid, the common way to check the exact time was to telephone the &#8220;speaking clock&#8221;. This was a low cost call, which would be answered by a recording of a lady with a rather plummy accent, who would say something like &#8220;At the third stroke, it will be three fifteen precisely&#8221; and this would be followed by three &#8220;pips&#8221; [short bleeps]. It seems that you can still access it in the UK by dialing 123 or you can hear a modern version of it <a href="http://www.speaking-clock.com/" >here</a>. I am sure that a similar service was available in most countries.</p>
<p>For the last three decades, my reference point for timekeeping would be the radio. The BBC broadcasts &#8220;the pips&#8221; at the top of the hour and these are well known to be accurate. But lately, this has become unreliable because of advancing technology. Digital radio seems to have what appears to be a fixed lag, so the pips are always late. If, indeed, the lag is predictable, then I do not understand why the BBC have not simply compensated for it when they broadcast the time signal. Nowadays, I listen to the radio mainly through the Internet and here there is a non-deterministic lag. I have noticed that, if I play the same radio station in two rooms with my Sonos system [and do not tell it to synchronize them], there can be several seconds difference between the two.</p>
<p>I am not really that challenged, however. I have a number of clocks that receive a radio signal [from somewhere] that keeps them adjusted correctly [and even handles the <a href="http://blogs.mentor.com/colinwalls/blog/2011/10/28/becoming-a-millionaire/" >madness</a> of daylight savings] and my phone adjusts for timezones too. It seems that young people eschewing watches have the right idea.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/04/how-do-you-tell-the-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In an open-source world, it’s all about integration</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2012/04/16/in-an-open-source-world-it%E2%80%99s-all-about-integration/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2012/04/16/in-an-open-source-world-it%E2%80%99s-all-about-integration/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 12:24:24 +0000</pubDate>
		<dc:creator>Colin Walls</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Nucleus]]></category>
		<category><![CDATA[nucleus os]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=1606e0bf115860878a03a06297e06953</guid>
		<description><![CDATA[I have historically been somewhat skeptical about open source software [OSS]. I am always wary of anything that is “free” and subscribe to the TANSTAAFL [&#34;there ain't no such thing as a free lunch&#34;] principle. It has taken me quite a few years to understand that open software is not free – it is just [...]]]></description>
			<content:encoded><![CDATA[<p>I have historically been somewhat skeptical about open source software [OSS]. I am always wary of anything that is &#8220;free&#8221; and subscribe to the TANSTAAFL ["there ain't no such thing as a free lunch"] principle. It has taken me quite a few years to understand that open software is not free &#8211; it is just a different business model from the usual &#8220;we make it, you buy it&#8221; approach.</p>
<p>I am only now coming to grips with how the OSS model really works, why it is a good thing and how business can leverage it to mutual benefit &#8230;<span id="more-2912"></span></p>
<p>We are used to thinking about software development as writing code. However, if we are going to build an embedded Linux system with hundreds of packages, most of the code already exists! This is the big attraction of using the operating system. Our challenge is gluing it together – which of course does require <em>some</em> code. But, the primary hard problems become different. For example, when something breaks, it may well not be in your code – it is in the underlying OSS. This raises some interesting questions:</p>
<ul>
<li>How can you figure out what is broken?</li>
<li>Since nobody that works for you wrote the code, how can you fix it?</li>
<li>If you can fix it, can you get the fix upstream so that you do not have to fix it again in the next release?</li>
<li>What do you do if the basic trade-offs [e.g. speed vs space] made by the OSS developers are different from your needs?</li>
</ul>
<p>These are all very valid questions, which occur all the time during deployment of OSS. Solving them costs money. This is why OSS is not free.</p>
<p>With lots of software, like a real time operating system [RTOS], for example, you have a &#8220;make vs buy&#8221; decision to make. You can write your own RTOS, which will have significant development and ongoing support costs, or go to a commercial supplier and purchase a product like <a href="http://www.mentor.com/embedded-software/nucleus/" >Nucleus</a>. Deployment of OSS gives a similar opportunity to choose between two possible approaches:</p>
<ul>
<li>You can develop the expertise to work with available Linux distributions etc., learn the processes for sharing your work and nurture relationships within the OSS community. This is a major investment, but it makes sense if you have an ongoing need to deploy significant amounts of OSS across numerous projects and over an indefinite time period.</li>
<li>You can work with a company [like Mentor Embedded] that is well established in the OSS world and are able to offer you the support to deploy OSS for your project, without you needing to develop significant expertise. This support might include the straightforward provision of Linux distributions, tailored to your needs, along with integrated [OSS] tools and technical support, if you have queries or problems.</li>
</ul>
<p>The choice is yours. But, however you go about it, OSS is not free.</p>
<p>Thanks to my colleague Mark Mitchell who provided the core ideas for this posting.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/04/in-an-open-source-world-it%e2%80%99s-all-about-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What are meetings for?</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2012/04/12/what-are-meetings-for/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2012/04/12/what-are-meetings-for/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 11:54:55 +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=fbabd1978b1ab584f74b8e4c3d513f93</guid>
		<description><![CDATA[In 1986, I joined a start-up company called Microtec Research – an embedded software development tools company. 10 years later, we were acquired by Mentor Graphics, which is how I come to be where I am now. During that first decade, the company grew from twenty-something people [three of us in the UK and the [...]]]></description>
			<content:encoded><![CDATA[<p>In 1986, I joined a start-up company called Microtec Research &#8211; an embedded software development tools company. 10 years later, we were acquired by Mentor Graphics, which is how I come to be where I am now. During that first decade, the company grew from twenty-something people [three of us in the UK and the rest in Santa Clara, CA] to around 300, with offices in 7 or 8 countries.</p>
<p>Those were interesting times and I learned a lot about the culture of an international company &#8230;<span id="more-2904"></span></p>
<p>The company was very much centered on the US head office &#8211; that is where all the higher management, product experts/management and engineering teams were located. So, naturally, the satellite offices would request support or assistance with sales, marketing and customer relations. I noticed that my colleagues in Germany would commonly request a visit from senior technical guys. In France, however, they were more likely to seek help from the management team. I often wondered why there was this different emphasis.</p>
<p>Then I learned about meetings. I thought that I understood about meetings. A meeting is a situation in which a number of people &#8211; who may be peers, but management and &#8220;experts&#8221; may also be present &#8211; get together to discuss stuff. That was my understanding and was broadly correct, but only in the UK/US. It seems that in other countries, the culture dictates that meetings have other purposes. It is a very broad generalization, but, in Germany, a meeting is where you go to hear from the expert; in France, you get to hear from the boss.</p>
<p>I think that the cultural nuances are much more subtle than this, but this gives a flavor. Another aspect of meeting practice comes, I think, from the American culture: this is proactive vs reactive or &#8220;push&#8221; vs &#8220;pull&#8221;. I recall that it was very common for the US office to announce that some executive was going to visit Europe and would we please set up some customer meetings. This was, of course, completely pointless. Customers want to have meetings when they have something to discuss, not because it suits their supplier. So, therefore, we preferred the &#8220;pull&#8221; approach: set up the meeting and request the executive visit.</p>
<p>The result of the first approach was unsatisfactory meetings. This meant that we were less successful at attracting the execs when we needed them. But, somehow, we got by.</p>
<p>So, next time that you are invited to a meeting, think about what the purpose of the meeting is and what your role will be &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/04/what-are-meetings-for/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparing apples with apples</title>
		<link>http://blogs.mentor.com/colinwalls/blog/2012/04/10/comparing-apples-with-apples/</link>
		<comments>http://blogs.mentor.com/colinwalls/blog/2012/04/10/comparing-apples-with-apples/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 12:15:13 +0000</pubDate>
		<dc:creator>Colin Walls</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Cortex-A9]]></category>
		<category><![CDATA[Cray]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Zynq]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=74da7a181c00e60775150c4c9ebfb253</guid>
		<description><![CDATA[I often joke about having a “supercomputer” on my desk. It is actually a moderately powerful desktop PC, which is not really stretched by the work that I expect it to do. But, at least I am not normally left twiddling my thumbs waiting for it to do something. I have this computer, instead of [...]]]></description>
			<content:encoded><![CDATA[<p>I often joke about having a &#8220;supercomputer&#8221; on my desk. It is actually a moderately powerful desktop PC, which is not really stretched by the work that I expect it to do. But, at least I am not normally left twiddling my thumbs waiting for it to do something. I have this computer, instead of a powerful laptop, as I concluded that, when traveling, I did not need to lug an enormous computer around; a small notebook [netbook] is quite sufficient and, nowadays, my iPad can be even better.</p>
<p>But, I digress. What I am interested in is the comparison of my modest PC with a supercomputer and how that rates against embedded devices &#8230;<span id="more-2888"></span></p>
<p>I recall that, while a student at university, I was playing with a mathematical <a href="http://blogs.mentor.com/colinwalls/blog/2009/11/05/palendromic-numbers/" >puzzle</a> and enlisted the help of a supercomputer in a remote city to do my calculations. I sent off the &#8220;job&#8221; and, after a couple of days, I got a printout back saying that I had consumed my quota of 20 minutes of CPU time, but not arrived at a solution. I have often wondered just home much computing power I had had access to. Now I have an idea.</p>
<p>Let&#8217;s consider a typical [quite high end] embedded processor: the Zynq Cortex-A9 [ARM processor embedded in a Xilinx FPGA device]. It is a dual core device running at 800 MHz. It has a theoretical peak floating point performance [single precision] of 12.8 GFLOPS. It consumes around 1 Watt of power.</p>
<p>Now, compare that with a desktop PC CPU &#8211; an Intel &#8220;Ivy Bridge&#8221;. This is a quad core device running at 3.5 GHz. It has a theoretical peak floating point performance [single precision] of 224 GFLOPS. It consumes around 80 Watts of power.</p>
<p><a href="http://s3-blogs.mentor.com/colinwalls/files/2012/04/cray.jpg"><img class="alignright size-thumbnail wp-image-2892" src="http://s3-blogs.mentor.com/colinwalls/files/2012/04/cray-150x150.jpg" alt="" width="150" height="150" /></a>So, this illustrates the wide range of performance options with modern CPUs. How does this compare with a 1980s supercomputer? Let&#8217;s consider a Cray X-MP. This was a dual core machine running at 105 MHz. It has a theoretical peak floating point performance [double precision] of 200 MFLOPS. It consumes around 60 Kilowatts of power.</p>
<p>Things have changed! Clearly, the description of my desktop PC is not unreasonable and maybe I need to revisit my mathematical puzzle. I guess that what I learn from this is that engineers who complain that they have not got enough CPU power for their embedded application do not know when they are well off.</p>
<p>Thanks to my colleague Brooks Moses for drawing my attention to these statistics.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/04/comparing-apples-with-apples/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

