<?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 State Space</title>
	<atom:link href="http://embeddedgurus.com/state-space/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://embeddedgurus.com/state-space</link>
	<description>A Blog by Miro Samek</description>
	<lastBuildDate>Tue, 08 May 2012 09:20:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Comment on Turning automatic code generation upside down by Anders</title>
		<link>http://embeddedgurus.com/state-space/2012/02/turning-automatic-code-generation-upside-down/comment-page-1/#comment-22385</link>
		<dc:creator>Anders</dc:creator>
		<pubDate>Tue, 08 May 2012 09:20:07 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/state-space/?p=135#comment-22385</guid>
		<description>Hi Miro,
Discovered this post a bit late, but anyway...

First: As I&#039;m the product manager of the IAR visualSTATE product I would like to add a bit of information to the paragraph about our code generation. The user has the option to choose between table-based code generation(which is obviously a bit &#039;difficult&#039; to decipher...)  and what we call &quot;readable code&quot; which is a straight translation of the state charts into switch and if-statements. What is a bit surprising is that a large majority of our users stick to the table-based code...
When asked about this they often answer that they don&#039;t care about the generated code because they never have a need to change the code. Further, the code size needed for the &#039;driver&#039; code to interpret the tables are well below 1k if compiled with a modern compiler. Typical numbers are more in the 400-600 bytes range and can be as low as &lt;300 bytes under certain circumstances.

Second:  The question about generating C/C++ or directly to assembly language has a quite obvious answer, at least for me: Who would ever want to support a modeling tool with code generation capabilities if the generated code should be optimized for speed or size for several target CPU&#039;s. (Or even just one?)
I actually came across a customer a few years ago that had their own tooling for translating UML to assembly language for an 8-bit controller; but I see that as a rare exception and the company was not too happy about the situation due to the lock-in effects on hardware choices, the maintenance costs etc.</description>
		<content:encoded><![CDATA[<p>Hi Miro,<br />
Discovered this post a bit late, but anyway&#8230;</p>
<p>First: As I&#8217;m the product manager of the IAR visualSTATE product I would like to add a bit of information to the paragraph about our code generation. The user has the option to choose between table-based code generation(which is obviously a bit &#8216;difficult&#8217; to decipher&#8230;)  and what we call &#8220;readable code&#8221; which is a straight translation of the state charts into switch and if-statements. What is a bit surprising is that a large majority of our users stick to the table-based code&#8230;<br />
When asked about this they often answer that they don&#8217;t care about the generated code because they never have a need to change the code. Further, the code size needed for the &#8216;driver&#8217; code to interpret the tables are well below 1k if compiled with a modern compiler. Typical numbers are more in the 400-600 bytes range and can be as low as &lt;300 bytes under certain circumstances.</p>
<p>Second:  The question about generating C/C++ or directly to assembly language has a quite obvious answer, at least for me: Who would ever want to support a modeling tool with code generation capabilities if the generated code should be optimized for speed or size for several target CPU&#039;s. (Or even just one?)<br />
I actually came across a customer a few years ago that had their own tooling for translating UML to assembly language for an 8-bit controller; but I see that as a rare exception and the company was not too happy about the situation due to the lock-in effects on hardware choices, the maintenance costs etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Economics 101: UML in Embedded Systems by Miro Samek</title>
		<link>http://embeddedgurus.com/state-space/2012/04/economics-101-uml-in-embedded-systems/comment-page-1/#comment-22187</link>
		<dc:creator>Miro Samek</dc:creator>
		<pubDate>Mon, 30 Apr 2012 14:37:26 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/state-space/?p=143#comment-22187</guid>
		<description>First, I&#039;d like to note that the QM tool not in the same class of &quot;big tools&quot; as IBM Rhapsody. QM has no support for requirements management or use cases. QM&#039;s role begins in the design stage.
 
Currently, QM supports packages, classes, class inheritance, class attributes, class methods, and state machines associated with classes. State machines are supported in graphical way, and I believe that drawing hierarchical state machines in QM is a lot easier than in Rhapsody and they look better in QM. A lot of thinking and work has been done in QM to respect the designer&#039;s preferences on attachment points and routing of transitions, placement of labels, and even sensitivity of the background in nested states. You simply need to try both QM and Rhapsody to appreciate that in QM you don&#039;t need to &quot;fight the tool&quot; every step of the way. 

Also, with QM you are much closer to the code. Any code that you enter into the QM model (and every model regardless of the tool has a lot of textual information, such as actions executed by state machines) is in C or C++, depending on your initial choice of the framework. No indirections of an &quot;Action Language&quot; is used.

The code organization and generation in QM is also fundamentally different than Rhapsody (Please see my previous post &quot;Turning Automatic Code Generation Upside Down&quot;). Again, the main goal in designing this feature was to minimize &quot;fighting the tool&quot;. In QM, you ask the tool to generate elements of your code, where you believe that the tool can help. But otherwise you can keep the tool out of your way in places that it does not add value. You don&#039;t need to tweak hundreds of parameters of code generation.

Regarding safety standards, QM provides no formal, built-in support for IEC 61508, the various SILs, or IEC 26262. But, at the same time there is nothing, which would prevent you from developing compliant designs and code with QM. The strength of the QM tool relies to a large degree on the underlying QP frameworks, which very favorably compare with the frameworks supported by Rhapsody. The QP frameworks have been recently updated to very high level of compliance with MISRA-C:2004 (QP/C and QP-nano) and MISRA-C++:2008 (QP/C++). The Application Notes and MISRA Compliance Matrices (http://www.state-machine.com/resources/appnotes.php) provide the ready-to-use quality system with automated rule checking and test--a huge time saver for anyone interested. The QP frameworks provide also strong support for testing through the built-in QS (Quantum Spy) tracing instrumentation.

In summary, the right choice of a tool for you depends on the features you actually end up using. If you only end up using diagramming, you don&#039;t need Rhapsody or even QM--you need a &quot;simple drawing tool&quot;. If you seriously think of code generation, QM will provide you exactly this at much lower cost than Rhapsody. Only if you seriously think you will use more than this, Rhapsody could be the right choice. From my experience, however, very few teams reach that level of sophistication.</description>
		<content:encoded><![CDATA[<p>First, I&#8217;d like to note that the QM tool not in the same class of &#8220;big tools&#8221; as IBM Rhapsody. QM has no support for requirements management or use cases. QM&#8217;s role begins in the design stage.</p>
<p>Currently, QM supports packages, classes, class inheritance, class attributes, class methods, and state machines associated with classes. State machines are supported in graphical way, and I believe that drawing hierarchical state machines in QM is a lot easier than in Rhapsody and they look better in QM. A lot of thinking and work has been done in QM to respect the designer&#8217;s preferences on attachment points and routing of transitions, placement of labels, and even sensitivity of the background in nested states. You simply need to try both QM and Rhapsody to appreciate that in QM you don&#8217;t need to &#8220;fight the tool&#8221; every step of the way. </p>
<p>Also, with QM you are much closer to the code. Any code that you enter into the QM model (and every model regardless of the tool has a lot of textual information, such as actions executed by state machines) is in C or C++, depending on your initial choice of the framework. No indirections of an &#8220;Action Language&#8221; is used.</p>
<p>The code organization and generation in QM is also fundamentally different than Rhapsody (Please see my previous post &#8220;Turning Automatic Code Generation Upside Down&#8221;). Again, the main goal in designing this feature was to minimize &#8220;fighting the tool&#8221;. In QM, you ask the tool to generate elements of your code, where you believe that the tool can help. But otherwise you can keep the tool out of your way in places that it does not add value. You don&#8217;t need to tweak hundreds of parameters of code generation.</p>
<p>Regarding safety standards, QM provides no formal, built-in support for IEC 61508, the various SILs, or IEC 26262. But, at the same time there is nothing, which would prevent you from developing compliant designs and code with QM. The strength of the QM tool relies to a large degree on the underlying QP frameworks, which very favorably compare with the frameworks supported by Rhapsody. The QP frameworks have been recently updated to very high level of compliance with MISRA-C:2004 (QP/C and QP-nano) and MISRA-C++:2008 (QP/C++). The Application Notes and MISRA Compliance Matrices (<a href="http://www.state-machine.com/resources/appnotes.php" rel="nofollow">http://www.state-machine.com/resources/appnotes.php</a>) provide the ready-to-use quality system with automated rule checking and test&#8211;a huge time saver for anyone interested. The QP frameworks provide also strong support for testing through the built-in QS (Quantum Spy) tracing instrumentation.</p>
<p>In summary, the right choice of a tool for you depends on the features you actually end up using. If you only end up using diagramming, you don&#8217;t need Rhapsody or even QM&#8211;you need a &#8220;simple drawing tool&#8221;. If you seriously think of code generation, QM will provide you exactly this at much lower cost than Rhapsody. Only if you seriously think you will use more than this, Rhapsody could be the right choice. From my experience, however, very few teams reach that level of sophistication.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ESD closes shop. What&#8217;s next in store for embedded programming? by Ibrahim KAMAL</title>
		<link>http://embeddedgurus.com/state-space/2012/04/esd-closes-shop-whats-next-in-store-for-embedded-programming/comment-page-1/#comment-22165</link>
		<dc:creator>Ibrahim KAMAL</dc:creator>
		<pubDate>Sun, 29 Apr 2012 20:52:18 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/state-space/?p=154#comment-22165</guid>
		<description>I do agree with you that embedded software is it&#039;s golden time. I even think it will still grow a lot in the coming years. I own an electronics company (IKALOGIC) and it&#039;s in deed quite hard to find talented embedded software designers. As you said all student (or most of them in informatics institutes here in France) spend way too much time learning things like JAVA, and not enough time learning C...</description>
		<content:encoded><![CDATA[<p>I do agree with you that embedded software is it&#8217;s golden time. I even think it will still grow a lot in the coming years. I own an electronics company (IKALOGIC) and it&#8217;s in deed quite hard to find talented embedded software designers. As you said all student (or most of them in informatics institutes here in France) spend way too much time learning things like JAVA, and not enough time learning C&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Economics 101: UML in Embedded Systems by Bernhard Weller</title>
		<link>http://embeddedgurus.com/state-space/2012/04/economics-101-uml-in-embedded-systems/comment-page-1/#comment-22142</link>
		<dc:creator>Bernhard Weller</dc:creator>
		<pubDate>Sat, 28 Apr 2012 21:25:02 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/state-space/?p=143#comment-22142</guid>
		<description>It&#039;s quite funny that you post this right now. I&#039;m having some discussions on the usefulness of IBM Rhapsody for our projects. Some developers indeed see it only as a very overpriced drawing tool for UML charts. The code generation feature is only used for very basic things (like classes and their associations).

I&#039;m really new to Rhapsody and haven&#039;t had a training course, so I&#039;m quite lost at the moment and end up fighting with the tool (it&#039;s not intuitive is it?). I currently don&#039;t feel as productive as I could be without Rhapsody.

So at the moment I&#039;m really asking myself how efficient can you get with Rhapsody and is it really worth it. Maybe I should buy a copy of your book to get a different view on UML and the benefits of it...

Also if I want to start to argue against the use of Rhapsody I should probably create a not so simple project and demonstrate the benefits of a different way like your QM/QP. Are you familiar with SIL (IEC 61508) and can you comment on how well the requirements can be covered with QM? (actually I&#039;m not very familiar with it so I can&#039;t really spell out what I&#039;m looking for, probably a bad place to start)</description>
		<content:encoded><![CDATA[<p>It&#8217;s quite funny that you post this right now. I&#8217;m having some discussions on the usefulness of IBM Rhapsody for our projects. Some developers indeed see it only as a very overpriced drawing tool for UML charts. The code generation feature is only used for very basic things (like classes and their associations).</p>
<p>I&#8217;m really new to Rhapsody and haven&#8217;t had a training course, so I&#8217;m quite lost at the moment and end up fighting with the tool (it&#8217;s not intuitive is it?). I currently don&#8217;t feel as productive as I could be without Rhapsody.</p>
<p>So at the moment I&#8217;m really asking myself how efficient can you get with Rhapsody and is it really worth it. Maybe I should buy a copy of your book to get a different view on UML and the benefits of it&#8230;</p>
<p>Also if I want to start to argue against the use of Rhapsody I should probably create a not so simple project and demonstrate the benefits of a different way like your QM/QP. Are you familiar with SIL (IEC 61508) and can you comment on how well the requirements can be covered with QM? (actually I&#8217;m not very familiar with it so I can&#8217;t really spell out what I&#8217;m looking for, probably a bad place to start)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Turning automatic code generation upside down by Jean</title>
		<link>http://embeddedgurus.com/state-space/2012/02/turning-automatic-code-generation-upside-down/comment-page-1/#comment-20186</link>
		<dc:creator>Jean</dc:creator>
		<pubDate>Fri, 16 Mar 2012 13:20:48 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/state-space/?p=135#comment-20186</guid>
		<description>Automatic code generation is used in the c/c++ preprocessor already #define()/#include ...,  in Lisp since decades. Most scripting languages enable meta or macro programming. QM is definitely a tool on the right track. Once c/c++ -source will be just another option beside bytecode, assembly, executables and others.

In future I see the complete program as an abstract syntax that is displayed as state machine, c-source, graphs or what ever representation is best suited for the current task.

As long as the involved tools preserve the hierarchy of abstraction of the program one can create state machine templates, HTML handlers/generators, DSL , documentation etc.</description>
		<content:encoded><![CDATA[<p>Automatic code generation is used in the c/c++ preprocessor already #define()/#include &#8230;,  in Lisp since decades. Most scripting languages enable meta or macro programming. QM is definitely a tool on the right track. Once c/c++ -source will be just another option beside bytecode, assembly, executables and others.</p>
<p>In future I see the complete program as an abstract syntax that is displayed as state machine, c-source, graphs or what ever representation is best suited for the current task.</p>
<p>As long as the involved tools preserve the hierarchy of abstraction of the program one can create state machine templates, HTML handlers/generators, DSL , documentation etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Turning automatic code generation upside down by Miro Samek</title>
		<link>http://embeddedgurus.com/state-space/2012/02/turning-automatic-code-generation-upside-down/comment-page-1/#comment-18894</link>
		<dc:creator>Miro Samek</dc:creator>
		<pubDate>Thu, 16 Feb 2012 15:15:14 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/state-space/?p=135#comment-18894</guid>
		<description>I think that when the automatic code generation technology matures and gains more widespread acceptance, the tools could indeed generate machine code directly.

But, these are early days yet and model-to-code generation follows pretty much exactly the same trajectory as all other code generation technologies in the past. For example, most early C compilers generated assembly code (in fact, many embedded compilers still do). The early C++ compilers were all based on &quot;cfront&quot;, which compiled C++ to C. And so on.

Such gradual, stepwise approach has many obvious advantages. It allows people to get used to the &quot;new&quot; by seeing how it turns into the old and familiar first. It allows leveraging the existing tools. A young technology cannot cover all the bases at once. For example, by generating portable C/C++ the code generator can address many more processor types than by generating specific machine code.

The intermediate step of C/C++ also allows the developers to use the existing debuggers. This is not quite ideal, because debugging at the C/C++ level is below the model level. But in practice the inconvenience depends very strongly on the type of the generated code. For example, if such code uses compressed hexadecimal state-tables to represent state machines (e.g., IAR visualSTATE), you obviously have no chance of bridging the semantic levels.

But if the code is designed upfront to be human-readable, you can quite easy see the model structure from the code. This is exactly the approach taken in the QM tool, which is based on the QP framework. QP has been originally designed for manual coding without &quot;big tools&quot; (see my first book &quot;Practical Statecharts in C/C++&quot;, published in 2002). But it turns out that QP makes also an excellent target for automatic code generation. On top of this, QM adds special comments to the generated code, which cross-reference the code snippets to the model. While debugging the application, you can simply copy the closest such comment to the Clipborad and paste it to QM. QM then will immediately locate the corresponding model element, open the diagram and highlight the class method, state, transitions, guard, or whatever that is. With this simple method you almost debug at the model level.</description>
		<content:encoded><![CDATA[<p>I think that when the automatic code generation technology matures and gains more widespread acceptance, the tools could indeed generate machine code directly.</p>
<p>But, these are early days yet and model-to-code generation follows pretty much exactly the same trajectory as all other code generation technologies in the past. For example, most early C compilers generated assembly code (in fact, many embedded compilers still do). The early C++ compilers were all based on &#8220;cfront&#8221;, which compiled C++ to C. And so on.</p>
<p>Such gradual, stepwise approach has many obvious advantages. It allows people to get used to the &#8220;new&#8221; by seeing how it turns into the old and familiar first. It allows leveraging the existing tools. A young technology cannot cover all the bases at once. For example, by generating portable C/C++ the code generator can address many more processor types than by generating specific machine code.</p>
<p>The intermediate step of C/C++ also allows the developers to use the existing debuggers. This is not quite ideal, because debugging at the C/C++ level is below the model level. But in practice the inconvenience depends very strongly on the type of the generated code. For example, if such code uses compressed hexadecimal state-tables to represent state machines (e.g., IAR visualSTATE), you obviously have no chance of bridging the semantic levels.</p>
<p>But if the code is designed upfront to be human-readable, you can quite easy see the model structure from the code. This is exactly the approach taken in the QM tool, which is based on the QP framework. QP has been originally designed for manual coding without &#8220;big tools&#8221; (see my first book &#8220;Practical Statecharts in C/C++&#8221;, published in 2002). But it turns out that QP makes also an excellent target for automatic code generation. On top of this, QM adds special comments to the generated code, which cross-reference the code snippets to the model. While debugging the application, you can simply copy the closest such comment to the Clipborad and paste it to QM. QM then will immediately locate the corresponding model element, open the diagram and highlight the class method, state, transitions, guard, or whatever that is. With this simple method you almost debug at the model level.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Turning automatic code generation upside down by Lundin</title>
		<link>http://embeddedgurus.com/state-space/2012/02/turning-automatic-code-generation-upside-down/comment-page-1/#comment-18893</link>
		<dc:creator>Lundin</dc:creator>
		<pubDate>Thu, 16 Feb 2012 14:10:43 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/state-space/?p=135#comment-18893</guid>
		<description>Following these arguments, why do automatic code generators give us C/C++ and not raw machine code? If I&#039;m not supposed to change anything in the generated code, then it really doesn&#039;t make any sense to have it handed in a high level language. There are two reasons why anyone would want it like that, either 1) they expect to make manual changes to the code somehow, and/or 2) they don&#039;t trust the tool and want to verify that it does what it is supposed to do.</description>
		<content:encoded><![CDATA[<p>Following these arguments, why do automatic code generators give us C/C++ and not raw machine code? If I&#8217;m not supposed to change anything in the generated code, then it really doesn&#8217;t make any sense to have it handed in a high level language. There are two reasons why anyone would want it like that, either 1) they expect to make manual changes to the code somehow, and/or 2) they don&#8217;t trust the tool and want to verify that it does what it is supposed to do.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on On the Origin of Software by Means of Artificial Selection by Anders Eriksson</title>
		<link>http://embeddedgurus.com/state-space/2011/08/on-the-origin-of-software-by-means-of-artificial-selection/comment-page-1/#comment-15097</link>
		<dc:creator>Anders Eriksson</dc:creator>
		<pubDate>Wed, 30 Nov 2011 07:55:32 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/state-space/?p=102#comment-15097</guid>
		<description>Hi Miro!

Have you tested also the Unity framwork?
in VC++ and some other embedded compiler?

I have problems with the macro&#039;s in the unity_fixture.h

The problem is the macro construction that generates a function declaration followed by the call to it, see code snippet below, strangely it compiles in GCC

TEST_GROUP_RUNNER(LedDriver)
{
// RUN_TEST_CASE(LedDriver, LedsOffAfterCreate); 
void TEST_LedDriver_LedsOffAfterCreate_run();
 TEST_LedDriver_LedsOffAfterCreate_run();

// RUN_TEST_CASE(LedDriver, TurnOnLedOne); 
void TEST_LedDriver_TurnOnLedOne_run();  // this is row 30 that the compiler reports an error for
TEST_LedDriver_TurnOnLedOne_run();
}

—-—-- compile error in VC++ 2008 express --—-
code/unity/LedDriver/LedDriverTestRunner.c(30) : error C2143: syntax error : missing ’;’ before ‘type’
-—-—-—-—-—-—-—-—-—-—-—-</description>
		<content:encoded><![CDATA[<p>Hi Miro!</p>
<p>Have you tested also the Unity framwork?<br />
in VC++ and some other embedded compiler?</p>
<p>I have problems with the macro&#8217;s in the unity_fixture.h</p>
<p>The problem is the macro construction that generates a function declaration followed by the call to it, see code snippet below, strangely it compiles in GCC</p>
<p>TEST_GROUP_RUNNER(LedDriver)<br />
{<br />
// RUN_TEST_CASE(LedDriver, LedsOffAfterCreate);<br />
void TEST_LedDriver_LedsOffAfterCreate_run();<br />
 TEST_LedDriver_LedsOffAfterCreate_run();</p>
<p>// RUN_TEST_CASE(LedDriver, TurnOnLedOne);<br />
void TEST_LedDriver_TurnOnLedOne_run();  // this is row 30 that the compiler reports an error for<br />
TEST_LedDriver_TurnOnLedOne_run();<br />
}</p>
<p>—-—&#8211; compile error in VC++ 2008 express &#8211;—-<br />
code/unity/LedDriver/LedDriverTestRunner.c(30) : error C2143: syntax error : missing ’;’ before ‘type’<br />
-—-—-—-—-—-—-—-—-—-—-—-</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Protothreads versus State Machines by Uri</title>
		<link>http://embeddedgurus.com/state-space/2011/06/protothreads-versus-state-machines/comment-page-1/#comment-13098</link>
		<dc:creator>Uri</dc:creator>
		<pubDate>Tue, 18 Oct 2011 18:09:37 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/state-space/?p=92#comment-13098</guid>
		<description>Hi Miro,

I want an automatic tool that could convert a nested code such kind of:

(C / C++)

if (q1 &amp;&amp; q2 &#124;&#124; ....)
{
	do_1();
	if (q3 ...)
	{
		do_3();
		if (q4 ...)
		{
			do_4();
			...
		}
		else
		{
			do_e4();
			...
		}
	else
	{
		do_e3();
		...
	}
}	

To the type of linear code:

if (q1 &amp;&amp; q2 &#124;&#124; ....)
	do_1();

if ((q1 &amp;&amp; q2 &#124;&#124; ....) &amp;&amp; q3)
	do_3();	

if ((q1 &amp;&amp; q2 &#124;&#124; ....) &amp;&amp; q3 &amp;&amp; q4)
		do_4();
	
if ((q1 &amp;&amp; q2 &#124;&#124; ....) &amp;&amp; q3 &amp;&amp; !q4)
		do_e4();
	
if ((q1 &amp;&amp; q2 &#124;&#124; ....) &amp;&amp; !q3)
	do_e3();	
	
Do you know of such a tool?

Thank you

Uri.</description>
		<content:encoded><![CDATA[<p>Hi Miro,</p>
<p>I want an automatic tool that could convert a nested code such kind of:</p>
<p>(C / C++)</p>
<p>if (q1 &amp;&amp; q2 || &#8230;.)<br />
{<br />
	do_1();<br />
	if (q3 &#8230;)<br />
	{<br />
		do_3();<br />
		if (q4 &#8230;)<br />
		{<br />
			do_4();<br />
			&#8230;<br />
		}<br />
		else<br />
		{<br />
			do_e4();<br />
			&#8230;<br />
		}<br />
	else<br />
	{<br />
		do_e3();<br />
		&#8230;<br />
	}<br />
}	</p>
<p>To the type of linear code:</p>
<p>if (q1 &amp;&amp; q2 || &#8230;.)<br />
	do_1();</p>
<p>if ((q1 &amp;&amp; q2 || &#8230;.) &amp;&amp; q3)<br />
	do_3();	</p>
<p>if ((q1 &amp;&amp; q2 || &#8230;.) &amp;&amp; q3 &amp;&amp; q4)<br />
		do_4();</p>
<p>if ((q1 &amp;&amp; q2 || &#8230;.) &amp;&amp; q3 &amp;&amp; !q4)<br />
		do_e4();</p>
<p>if ((q1 &amp;&amp; q2 || &#8230;.) &amp;&amp; !q3)<br />
	do_e3();	</p>
<p>Do you know of such a tool?</p>
<p>Thank you</p>
<p>Uri.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on What&#8217;s the state of your Cortex? by 42Bastian</title>
		<link>http://embeddedgurus.com/state-space/2011/09/whats-the-state-of-your-cortex/comment-page-1/#comment-12609</link>
		<dc:creator>42Bastian</dc:creator>
		<pubDate>Tue, 04 Oct 2011 10:53:52 +0000</pubDate>
		<guid isPermaLink="false">http://embeddedgurus.com/state-space/?p=118#comment-12609</guid>
		<description>Miro,

just a side-note: Locking interrupts on ColdFire is very costly: The lock/unlock pair needs up to 15cycle (including preserving the old state).

Cheers,
42Bastian</description>
		<content:encoded><![CDATA[<p>Miro,</p>
<p>just a side-note: Locking interrupts on ColdFire is very costly: The lock/unlock pair needs up to 15cycle (including preserving the old state).</p>
<p>Cheers,<br />
42Bastian</p>
]]></content:encoded>
	</item>
</channel>
</rss>

