<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.advancedwindowsdebugging.com/forums/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Daniel's blog : Firmware, Reliability</title><link>http://www.advancedwindowsdebugging.com/forums/blogs/daniel/archive/tags/Firmware/Reliability/default.aspx</link><description>Tags: Firmware, Reliability</description><dc:language>en</dc:language><generator>CommunityServer 2.1 (Build: 60809.935)</generator><item><title>Two sides of reliability</title><link>http://www.advancedwindowsdebugging.com/forums/blogs/daniel/archive/2008/03/10/Two-sides-of-reliability.aspx</link><pubDate>Tue, 11 Mar 2008 05:38:00 GMT</pubDate><guid isPermaLink="false">8fe6c8b0-35bd-46d7-a742-2d438749dbe0:56</guid><dc:creator>daniel</dc:creator><slash:comments>2</slash:comments><comments>http://www.advancedwindowsdebugging.com/forums/blogs/daniel/comments/56.aspx</comments><wfw:commentRss>http://www.advancedwindowsdebugging.com/forums/blogs/daniel/commentrss.aspx?PostID=56</wfw:commentRss><wfw:comment>http://www.advancedwindowsdebugging.com/forums/blogs/daniel/rsscomments.aspx?PostID=56</wfw:comment><description>&lt;p class="PadderBetweenControlandBody" style="margin:0in 0in 6pt;"&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;One of the projects I finished recently was to assembly a microcontroller board and written the &amp;quot;driver&amp;quot; for the small LCD screen. The &lt;/font&gt;&lt;a href="http://www.myavr.com/"&gt;&lt;font color="#0000ff" face="Calibri" size="3"&gt;board&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt; uses an RISC AVR-microcontroller from ATMEL (ATmega8) with only 8K FLASH and 1K RAM and is connected to a 2x16 characters display. As you can see after few days of &amp;quot;debugging&amp;quot;, the controller learns to spell &amp;quot;Advanced Windows Debugging&amp;quot;, nicely centered on the LCD. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;While working on this project I understood better the difference in the entry barrier between building hardware building software. What are exactly the differences? &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;First there are the tools. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;For software development, the free tools can be found everywhere and we can use them after a simple download. For example, in &amp;quot;Advanced Windows Debugging&amp;quot; book we used WDK(free) to build the applications,&lt;span&gt;&amp;nbsp; &lt;/span&gt;we used Debugging Tools for Windows (free) to troubleshoot the applications which can be written created very well in any text editor(Notepad is free).&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt;"&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;Looking for highly integrated or managed code development tools? Many are also available for free.&lt;span&gt;&amp;nbsp; &lt;/span&gt;For example Microsoft offers for download an &amp;quot;&lt;/font&gt;&lt;a href="http://www.microsoft.com/express/"&gt;&lt;font color="#0000ff" face="Calibri" size="3"&gt;Express&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&amp;quot; version to all development tools for free.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;If open source software is an option, you can easily find a tool that suits you needs. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;The tools used in hardware development are not free for a good reason. With few exceptions most are physical objects. You cannot just download a COPY of a physical object, you have to pay the manufacturing and distribution costs. And you need tools from the moment you start building the hardware. Once the circuit is ready and powered on, you need measurement equipment for validating the design correctness. If the circuit uses processors, you must have another set of tools (usually expensive) to validate the application correctness and to debug the code running inside the embedded processors. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;After the design is complete, the process of removing the remaining bugs from the products is also different. In software a bug is usually fixed by adding a code line, removing a code line, of even re-architecting a code section. In any case the cost of implementing those changes is relatively small. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;The bugs discovered after the products release are easily fixed with a downloadable patch.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;In hardware the problems are more difficult to fix dues to the high cost of prototyping and the cost of redesigning the circuits. And most important the bugs discovered by customers are causing product returns.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Although it seems that it is in fairly inexpensive and easy to release &amp;quot;bug-free&amp;quot; software products, we somehow accepted the error in software applications. When an internet browser crashes, we just restart it without any bad feelings.&lt;span&gt;&amp;nbsp; &lt;/span&gt;However, we have different expectation for a hardware device. If a cell phone, or a TV, or a music player freezes and require a &amp;quot;restart&amp;quot; we are not happy.&lt;span&gt;&amp;nbsp; &lt;/span&gt;When it happens too often, we end-up returning the products. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom:0pt;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Due to the flexibility offered by providing some of the functionality in software the later devices incorporate more capabilities offered by software modules. Because this trend will continue and even accelerate, is interested what will happen with their reliability? We will learn to live devices that are not working properly or software running on such devices will be more reliable than the current desktop applications?&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 10pt;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="font-size:12pt;font-family:'Times New Roman','serif';"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 10pt;"&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&lt;img align="bottom" alt="Advanced Windows Debugging in FW" height="600" src="http://www.advancedwindowsdebugging.com/forums/photos/daniel/images/57/original.aspx" style="width:401px;height:600px;" title="Advanced Windows Debugging in FW" width="401" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.advancedwindowsdebugging.com/forums/aggbug.aspx?PostID=56" width="1" height="1"&gt;</description><category domain="http://www.advancedwindowsdebugging.com/forums/blogs/daniel/archive/tags/Firmware/default.aspx">Firmware</category><category domain="http://www.advancedwindowsdebugging.com/forums/blogs/daniel/archive/tags/Reliability/default.aspx">Reliability</category><category domain="http://www.advancedwindowsdebugging.com/forums/blogs/daniel/archive/tags/Microcontroller/default.aspx">Microcontroller</category></item></channel></rss>