<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments for Barr Code</title>
	<atom:link href="http://embeddedgurus.com/barr-code/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://embeddedgurus.com/barr-code</link>
	<description>A Blog by Michael Barr</description>
	<lastBuildDate>Thu, 17 Jun 2010 17:17:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Requirements vs. Design by Harry Levinson</title>
		<link>http://embeddedgurus.com/barr-code/2009/02/requirements-vs-design/comment-page-1/#comment-1873</link>
		<dc:creator>Harry Levinson</dc:creator>
		<pubDate>Thu, 17 Jun 2010 17:17:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.gfcdev.org/test-stack/2009/02/04/requirements-vs-design/#comment-1873</guid>
		<description>Consider adding a section on &#039;Test&#039; expanding from above:

Test
The test of a system is a verification that Architecture, Design, and Implementation (3 layers of HOW) actually results in a product that reflects the requirements (WHAT).    The test should not be a restatement of the requirement but a specific set of scenarios that have well defined outputs based on specific input states and values.

Analogy: The requirement for an easy to use first floor kitchen would entail observation that the location is on the first floor, showing that all sinks, stoves, ovens, and drawers are within 5 feet of each other, and that the counter-tops are 30 inches above the floor.</description>
		<content:encoded><![CDATA[<p>Consider adding a section on &#8216;Test&#8217; expanding from above:</p>
<p>Test<br />
The test of a system is a verification that Architecture, Design, and Implementation (3 layers of HOW) actually results in a product that reflects the requirements (WHAT).    The test should not be a restatement of the requirement but a specific set of scenarios that have well defined outputs based on specific input states and values.</p>
<p>Analogy: The requirement for an easy to use first floor kitchen would entail observation that the location is on the first floor, showing that all sinks, stoves, ovens, and drawers are within 5 feet of each other, and that the counter-tops are 30 inches above the floor.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Firmware-Specific Bug #1: Race Condition by IT student</title>
		<link>http://embeddedgurus.com/barr-code/2010/02/firmware-specific-bug-1-race-condition/comment-page-1/#comment-717</link>
		<dc:creator>IT student</dc:creator>
		<pubDate>Sun, 25 Apr 2010 20:28:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.gfcdev.org/test-stack/2010/02/11/firmware-specific-bug-1-race-condition/#comment-717</guid>
		<description>Race condition could be the cause of Toyota&#039;s unintended acceleration problems. The problem may be  related to software controlled mutual exclusion as opposed to more expensive hardware controlled mutual exclusion. NASA had this problem in the late 70&#039;s.</description>
		<content:encoded><![CDATA[<p>Race condition could be the cause of Toyota&#8217;s unintended acceleration problems. The problem may be  related to software controlled mutual exclusion as opposed to more expensive hardware controlled mutual exclusion. NASA had this problem in the late 70&#8217;s.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Toyota&#8217;s Embedded Software Image Problem by About Toyota &#171; Dane&#39;s World</title>
		<link>http://embeddedgurus.com/barr-code/2010/03/toyotas-embedded-software-image-problem/comment-page-1/#comment-567</link>
		<dc:creator>About Toyota &#171; Dane&#39;s World</dc:creator>
		<pubDate>Wed, 14 Apr 2010 16:20:26 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/barr-code/?p=342#comment-567</guid>
		<description>[...] President of Netrino and a well respected expert in the embedded community discusses this in his blog post regarding Toyota&#8217;s woes. Although this is only a side note in his post, it carries a good [...]</description>
		<content:encoded><![CDATA[<p>[...] President of Netrino and a well respected expert in the embedded community discusses this in his blog post regarding Toyota&#8217;s woes. Although this is only a side note in his post, it carries a good [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Firmware-Specific Bug #4: Stack Overflow by John D. Bugger</title>
		<link>http://embeddedgurus.com/barr-code/2010/03/firmware-specific-bug-4-stack-overflow/comment-page-1/#comment-463</link>
		<dc:creator>John D. Bugger</dc:creator>
		<pubDate>Wed, 07 Apr 2010 05:21:39 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/barr-code/?p=334#comment-463</guid>
		<description>We have a periodic task which checks that the stack pointer did not exceed a certain limit. If so we log an error to the NVM and then execute a SW reset. For the PowerPC the periodic decrementer interrupt can be used for this.</description>
		<content:encoded><![CDATA[<p>We have a periodic task which checks that the stack pointer did not exceed a certain limit. If so we log an error to the NVM and then execute a SW reset. For the PowerPC the periodic decrementer interrupt can be used for this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Firmware-Specific Bug #4: Stack Overflow by Michael Barr</title>
		<link>http://embeddedgurus.com/barr-code/2010/03/firmware-specific-bug-4-stack-overflow/comment-page-1/#comment-335</link>
		<dc:creator>Michael Barr</dc:creator>
		<pubDate>Tue, 30 Mar 2010 18:43:43 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/barr-code/?p=334#comment-335</guid>
		<description>Nice approach GroovyD.  But note to others: that will only work if there&#039;s just one task in the system (i.e., no RTOS).</description>
		<content:encoded><![CDATA[<p>Nice approach GroovyD.  But note to others: that will only work if there&#8217;s just one task in the system (i.e., no RTOS).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Toyota&#8217;s Embedded Software Image Problem by Niall Cooling</title>
		<link>http://embeddedgurus.com/barr-code/2010/03/toyotas-embedded-software-image-problem/comment-page-1/#comment-332</link>
		<dc:creator>Niall Cooling</dc:creator>
		<pubDate>Tue, 30 Mar 2010 12:21:47 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/barr-code/?p=342#comment-332</guid>
		<description>A good friend of mine (Dr. Brian Kirk), a leaning expert of software and system safety recently was part of a panel (including electrical engineers, a Toyota sudden acceleration car crash survivor, and car safety experts) providing a briefing on the myths Toyota uses to cover up the truth about sudden acceleration. Here&#039;s a video of that:
http://www.youtube.com/watch?v=UJnN8IyIumg</description>
		<content:encoded><![CDATA[<p>A good friend of mine (Dr. Brian Kirk), a leaning expert of software and system safety recently was part of a panel (including electrical engineers, a Toyota sudden acceleration car crash survivor, and car safety experts) providing a briefing on the myths Toyota uses to cover up the truth about sudden acceleration. Here&#8217;s a video of that:<br />
<a href="http://www.youtube.com/watch?v=UJnN8IyIumg" rel="nofollow">http://www.youtube.com/watch?v=UJnN8IyIumg</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Binary Literals in C by Consulting as a leading economic indicator &#8211; update #1 &#171; Stack Overflow</title>
		<link>http://embeddedgurus.com/barr-code/2009/09/binary-literals-in-c/comment-page-1/#comment-331</link>
		<dc:creator>Consulting as a leading economic indicator &#8211; update #1 &#171; Stack Overflow</dc:creator>
		<pubDate>Tue, 30 Mar 2010 11:13:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.gfcdev.org/test-stack/2009/09/30/binary-literals-in-c/#comment-331</guid>
		<description>[...] topics, if you have not read Mike Barr&#8217;s recent posting on binary literals, then I strongly recommend that you do so. It would have fitted very nicely into [...]</description>
		<content:encoded><![CDATA[<p>[...] topics, if you have not read Mike Barr&#8217;s recent posting on binary literals, then I strongly recommend that you do so. It would have fitted very nicely into [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Breathalyzer Source Code Analysis by Eye, Aye I! &#171; Stack Overflow</title>
		<link>http://embeddedgurus.com/barr-code/2009/11/breathalyzer-source-code-analysis/comment-page-1/#comment-326</link>
		<dc:creator>Eye, Aye I! &#171; Stack Overflow</dc:creator>
		<pubDate>Tue, 30 Mar 2010 00:12:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.gfcdev.org/test-stack/2009/11/05/breathalyzer-source-code-analysis/#comment-326</guid>
		<description>[...] the motivation for today&#8217;s post, is actually Michael Barr&#8217;s latest blog posting concerning analysis of the source code for a breathalyzer. Since I do expert witness work, as well [...]</description>
		<content:encoded><![CDATA[<p>[...] the motivation for today&#8217;s post, is actually Michael Barr&#8217;s latest blog posting concerning analysis of the source code for a breathalyzer. Since I do expert witness work, as well [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Firmware-Specific Bug #4: Stack Overflow by GroovyD</title>
		<link>http://embeddedgurus.com/barr-code/2010/03/firmware-specific-bug-4-stack-overflow/comment-page-1/#comment-304</link>
		<dc:creator>GroovyD</dc:creator>
		<pubDate>Sun, 28 Mar 2010 03:50:28 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/barr-code/?p=334#comment-304</guid>
		<description>oops, looks like it lost the code a bit there... 

...
if (&amp;stack  .lt. stackMin) stackMin = &stack;
if (&amp;stack .gt. stackMax) stackMax = &stack;
stackSize = (unsigned) (stackMax - stackMin);
...</description>
		<content:encoded><![CDATA[<p>oops, looks like it lost the code a bit there&#8230; </p>
<p>&#8230;<br />
if (&amp;stack  .lt. stackMin) stackMin = &stack;<br />
if (&amp;stack .gt. stackMax) stackMax = &stack;<br />
stackSize = (unsigned) (stackMax &#8211; stackMin);<br />
&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Firmware-Specific Bug #4: Stack Overflow by GroovyD</title>
		<link>http://embeddedgurus.com/barr-code/2010/03/firmware-specific-bug-4-stack-overflow/comment-page-1/#comment-303</link>
		<dc:creator>GroovyD</dc:creator>
		<pubDate>Sun, 28 Mar 2010 03:46:18 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/barr-code/?p=334#comment-303</guid>
		<description>One method I have used during run-time is in the system timer interrupt to just update  stackMax, stackMin, and stackSize pointers such as:

volatile char* stackMin = 0xffffffff;
volatile char* stackMax = 0;
volatile unsigned stackSize = 0;

void SystemTimerInterrupt(void) {
#ifdef STACK_TEST
   char stack;
   if (&amp;stack  stackMax) stackMax = &stack;
   stackSize = stackMax - stackMin;
#endif
...
}

Doing this doesn&#039;t require &#039;painting&#039; memory or even knowing where the stack is to begin with and the app can use the stackSize to decide when there is a problem.  Then when you are confident you have enough space you can just #def it out.</description>
		<content:encoded><![CDATA[<p>One method I have used during run-time is in the system timer interrupt to just update  stackMax, stackMin, and stackSize pointers such as:</p>
<p>volatile char* stackMin = 0xffffffff;<br />
volatile char* stackMax = 0;<br />
volatile unsigned stackSize = 0;</p>
<p>void SystemTimerInterrupt(void) {<br />
#ifdef STACK_TEST<br />
   char stack;<br />
   if (&amp;stack  stackMax) stackMax = &stack;<br />
   stackSize = stackMax &#8211; stackMin;<br />
#endif<br />
&#8230;<br />
}</p>
<p>Doing this doesn&#8217;t require &#8216;painting&#8217; memory or even knowing where the stack is to begin with and the app can use the stackSize to decide when there is a problem.  Then when you are confident you have enough space you can just #def it out.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
