<?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>Multeytasking</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/38118/multeytasking</link><description> 
Hi 

 
i want to learn rtos and i am not beginner at this . 
also i read the book . but that describe only CO-OPERATIVE
SCHEDELULER . it is useful but for pre-emption ( like RTOS ) has no
information . 

 
I visit freertos.org and i read Fundermentals</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: Multeytasking</title><link>https://community.arm.com/thread/53039?ContentTypeID=1</link><pubDate>Wed, 10 Dec 2008 03:51:55 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:d332f1f4-384f-4b6f-9ed5-3cb5179a7034</guid><dc:creator>Catcus Blip</dc:creator><description>&lt;p&gt;&lt;p&gt;
I wrote two small preemptive schedulers (for other chips, so that
cannot possibly help you) and from my experience, the best you can do
first is to &lt;b&gt;understand fully how the context of your processor is
maintained&lt;/b&gt; - and then:&lt;br /&gt;
how is the system&amp;#39;s stack organized? is it limited to a certain
memory range? is there a separation between system stack and operator
stack? you must have a good understanding of the building blocks of
the chip. A good starting point is looking at some assembly - because
you must use assembly to write a preemptive scheduler - namely at the
entry and exit from interrupts. ask yourself: what is happening
there, and why? note that an interrupt service routine that saves
most/all of the registers, gets almost 50% of the job done. after
saving the context (in your interrupt service routine - you probably
want to use a hardware timer to invoke it), you need some logic to
select the next task, and then to restore the select task&amp;#39;s settings
into the processor&amp;#39;s registers. It really is not too hard, but you
have to be careful: chips tend to differ in the details - a C167
saves the return address from an ISR in the system&amp;#39;s stack which is
restricted to a certain zone in RAM, while an ARM does not have such
a restriction and saves the return address in R14 (LR). Am ARM also
has different modes, and shadowed registers etc, which are absent
from a C167. &lt;b&gt;So start by fully understanding how that C51 works by
reading C51 manuals&lt;/b&gt;. I am sure that you&amp;#39;d succeed. Then you&amp;#39;d
have to start worrying about synchronization, timing etc. If you are
interested, here is my C167 sample. I must say that there are a few
annoying mistakes in it (semaphores that are not a 100% water tight,
for example), but my current personal project for an ARM9 (not
released yet - hopefully some) fixes them and is a much better,
mature program (I hope):&lt;br /&gt;
&lt;a href="http://sourceforge.net/projects/eos-xc167-rtos/"&gt;sourceforge.net/.../&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multeytasking</title><link>https://community.arm.com/thread/53038?ContentTypeID=1</link><pubDate>Wed, 10 Dec 2008 03:17:53 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:e54d6490-b073-4d43-b25e-1a65075b2a44</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
There are no &amp;quot;the book&amp;quot; and no &amp;quot;the rtos&amp;quot;.&lt;/p&gt;

&lt;p&gt;
If you need help using an RTOS, then you must specify exactly
which RTOS you are having problems with. And books are best if
written for this specific (RT)OS.&lt;/p&gt;

&lt;p&gt;
About semaphores etc. The concept is identical for all OS. The API
and parameters may vary a bit, but a semaphore works conceptually the
same in Windows as it does in any of the RTOS you may be able to
find.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>