<?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>os_tmr_create</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/25601/os_tmr_create</link><description> 
Hello!! 

 
I hace a problem with os_tmr_create and os_tmr_kill. I need use
these functions in the USART interrupt, but when the procesor run
this line it goes to Hard Fault. 

 
Can you help me please? 
 </description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: os_tmr_create</title><link>https://community.arm.com/thread/139196?ContentTypeID=1</link><pubDate>Fri, 05 Jun 2009 00:41:43 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:257a9ae8-a556-48b3-9a8d-2986ac55fb07</guid><dc:creator>Christoph Franck</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;I&amp;#39;ve checked that the program works correctly, but I will try
to solve this in other way.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
How about:&lt;/p&gt;

&lt;p&gt;
- create a high-priority task that starts the timer&lt;br /&gt;
- from the UART isr, activate the task using the available isr_*
functions&lt;/p&gt;

&lt;p&gt;
This way, the timer will be started right after the UART isr
finishes.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: os_tmr_create</title><link>https://community.arm.com/thread/130489?ContentTypeID=1</link><pubDate>Thu, 04 Jun 2009 07:32:26 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:b28433c8-546e-4bc0-946a-8054f812c03c</guid><dc:creator>Juan Enrique</dc:creator><description>&lt;p&gt;&lt;p&gt;
I know that this isn&amp;#39;t the best solution, but in may application
is very difficult any other solution with the RTOS, in this question
the other solution is to use directly a timer of the microcontroller
and the hardware interrupts.&lt;/p&gt;

&lt;p&gt;
In the RTL.h you can see that the call to these function seem the
same that de os functions, and there is others isr thar are directly
the rt function:&lt;/p&gt;

&lt;p&gt;
#define isr_mbx_check(mbx) rt_mbx_check(mbx)&lt;/p&gt;

&lt;p&gt;
I&amp;#39;ve checked that the program works correctly, but I will try to
solve this in other way.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: os_tmr_create</title><link>https://community.arm.com/thread/125497?ContentTypeID=1</link><pubDate>Thu, 04 Jun 2009 07:05:30 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:f517c79f-3245-47c8-9ebd-9701dc6e5284</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
Note that these are internal functions used by os_tmr_create() and
os_tmr_kill(). They don&amp;#39;t seem to be documented anywhere.&lt;/p&gt;

&lt;p&gt;
- what happens if two ISR calls os_tmr_create() and/or
os_tmr_kill() concurrently?&lt;br /&gt;
- may an ISR call rt_tmr_kill concurrently with a
os_tmr_create()/os_tmr_kill()? What happens?&lt;/p&gt;

&lt;p&gt;
Note also that the os_evt_set() makes use of rt_evt_set(), but it
isn&amp;#39;t obvious if isr_evt_set() uses rt_evt_set().&lt;/p&gt;

&lt;p&gt;
The big questions to ask: Does it work, or does it just looks like
it&amp;#39;s working? And what happens with your code if Keil modifies the
internals?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: os_tmr_create</title><link>https://community.arm.com/thread/114988?ContentTypeID=1</link><pubDate>Thu, 04 Jun 2009 06:44:40 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:ff927b4c-a9fd-4d1f-bc25-befb0a0ceaf6</guid><dc:creator>Juan Enrique</dc:creator><description>&lt;p&gt;&lt;p&gt;
Hi, I&amp;#39;ve solved my problem. I can create and kill timers in a
interrupt using the functions rt_tmr_create and rt_tmr_kill.&lt;/p&gt;

&lt;p&gt;
I hope that ti was correct, do you know if this solution can be
wrong?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: os_tmr_create</title><link>https://community.arm.com/thread/103177?ContentTypeID=1</link><pubDate>Thu, 04 Jun 2009 05:34:52 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:495a1e58-2fc3-4671-9f14-932e23753550</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
&amp;quot;Can I modify the OS function?&amp;quot;&lt;/p&gt;

&lt;p&gt;
Depends on if you have bought the source code (not included with
the copmiler) and if you have the skills.&lt;/p&gt;

&lt;p&gt;
Another choice is to have a timer interrupt that counts down (or
compares) integer variables and on zero/match sets an event
(isr_evt_set).&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: os_tmr_create</title><link>https://community.arm.com/thread/77499?ContentTypeID=1</link><pubDate>Thu, 04 Jun 2009 05:30:04 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:439715d1-9015-41c0-b62b-6a49f0e790fd</guid><dc:creator>Juan Enrique</dc:creator><description>&lt;p&gt;&lt;p&gt;
I have tried it, but there isn&amp;#39;t any function isr to work with the
user timer.&lt;/p&gt;

&lt;p&gt;
Can I modify the OS function?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: os_tmr_create</title><link>https://community.arm.com/thread/56214?ContentTypeID=1</link><pubDate>Thu, 04 Jun 2009 05:03:18 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:dae319da-6fa3-4297-9eff-fa4285aa2c7c</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
Functions starting with isr_ is for use in interrupt handlers.
Functions starting with os_ may not be used in interrupt
handlers.&lt;/p&gt;

&lt;p&gt;
You will have to modify the code to make do with the available
isr_ functions.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>