<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/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>Sequential programming Vs FSM Vs RTOS</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/22338/sequential-programming-vs-fsm-vs-rtos</link><description> 
Hi All, 

 
I&amp;#39;ve completed a nice data logger project including USB, SD/MMC
support, GPS and other SPI devices using sequential programming. 

 
I&amp;#39;m now looking for best practice on how the functionality I&amp;#39;ve
created could be better structured and that</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: Sequential programming Vs FSM Vs RTOS</title><link>https://community.arm.com/thread/124063?ContentTypeID=1</link><pubDate>Tue, 04 Sep 2007 06:34:00 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:7b157c0c-df0c-49fc-97dd-42772ae49392</guid><dc:creator>Robert </dc:creator><description>&lt;p&gt;&lt;p&gt;
Hi all,&lt;/p&gt;

&lt;p&gt;
Thanks for the insight.&lt;/p&gt;

&lt;p&gt;
My current target is a 32-bit ARM device (LPC2148). The project
started 2 years ago and the LPC had the right mix of speed, flash and
perpherials for my project.&lt;/p&gt;

&lt;p&gt;
The projects grown from a simple gps logger to a fully featured
device with many more interfaces and higher level requirements. I had
the gps logging to an SPI flash but recently added a SD card which
greatly complicated matters and got me into all sorts of exception
handling problems which prompted me to re-evaluate. I&amp;#39;m investigating
adding a webserver and an rf module which will further complicate the
flow so now is the right time to consider a better structure.&lt;/p&gt;

&lt;p&gt;
Thanks,&lt;/p&gt;

&lt;p&gt;
Robert&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sequential programming Vs FSM Vs RTOS</title><link>https://community.arm.com/thread/113165?ContentTypeID=1</link><pubDate>Tue, 04 Sep 2007 02:17:24 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:e1223425-610e-4a0f-8649-446e9e861ebe</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
Too many people on this site - and around the world - uses RTOS in
their embedded systems for it to be a 4-letter word in the derogatory
sense.&lt;/p&gt;

&lt;p&gt;
An RTOS gives simpler and clearer loops, but instead requires
critical sections or similar to protect the threads from corrupting
each other. The individual stacks also increases the RAM
requirements.&lt;/p&gt;

&lt;p&gt;
It takes a bit of information about the goals to know if an RTOS
is meaningful or not. An ARM are well suited for an RTOS but that
doesn&amp;#39;t mean that an RTOS helps for a specific application. An &amp;#39;51
can run an RTOS, but for applications that are complex enough to
really warrant an RTOS, there might be an idea to look at other
processors instead.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sequential programming Vs FSM Vs RTOS</title><link>https://community.arm.com/thread/99583?ContentTypeID=1</link><pubDate>Mon, 03 Sep 2007 12:44:20 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:f0a92c2d-abb6-4c42-b642-63d56e04547a</guid><dc:creator>doubt that my ISP Al Bradford</dc:creator><description>&lt;p&gt;&lt;p&gt;
Robert;&lt;br /&gt;
I encourage you to continue your efforts toward the RTOS
approach.&lt;br /&gt;
On this forum, many treat RTOS as a true four letter word ;-)&lt;br /&gt;
I agree with the two earlier posts but withhold total agreement about
the 8051 not easily supporting an RTOS.&lt;br /&gt;
Looking at your listed devices, I&amp;#39;m assuming that you will be using
some type of ARM device but maybe not.&lt;br /&gt;
But none of the listed devices require super determinate service. In
fact the devices in normal operation can be started, stopped and
re-started with minimum concern of data loss. You can certainly
verify that statement as you programmed your USB tasks.&lt;br /&gt;
With RTOS you will need to think about program flow in a different
manner but not as strict as you would with a straight SFM
scheduler.&lt;br /&gt;
And remember, you still have the option to operate outside or
parallel of the OS or RTOS via interrupt routines.&lt;br /&gt;
How to start? I suggest that you look at the examples in your Keil
toolset. Again I&amp;#39;m assuming the ARM MDK tools. Open the Manuals of
the &amp;quot;Complete User&amp;#39;s Guide&amp;quot;.&lt;br /&gt;
Click on the &amp;quot;Contents&amp;quot; tab and select &amp;quot;RL-ARM Real-Time Library
User&amp;#39;s Guide&amp;quot;.&lt;br /&gt;
There are a number of example projects as well as a pretty good
overview of RTOS operation.&lt;br /&gt;
The RL-ARM(RTX) comes with the MDK tools. Additional Library tools
are available but not necessary unless you want the source code for
many of the lib routines.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sequential programming Vs FSM Vs RTOS</title><link>https://community.arm.com/thread/88496?ContentTypeID=1</link><pubDate>Mon, 03 Sep 2007 10:31:35 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:7e68ba2d-97c5-4264-bdbd-44ffbf99fc2e</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
Some processors are not well-suited to an RTOS - eg, the 8051.&lt;/p&gt;

&lt;p&gt;
RTOS and State-Machines are not mutually exclusive...&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sequential programming Vs FSM Vs RTOS</title><link>https://community.arm.com/thread/51093?ContentTypeID=1</link><pubDate>Mon, 03 Sep 2007 10:10:01 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:35987e62-d165-475e-8512-0bbed1cbab31</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
A lot depends on amount of data to retrieve, max transfer rates
and max allowed latencies.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>