RES: testing multitasking rtems

Cláudio Silva claudiodcsilva at gmail.com
Wed Sep 19 16:43:07 UTC 2012


Hello Luca,

You need to yield the processor to the "Hello World" task. The easiest
way to accomplish this is to call "rtems_task_wake_after()" in the led
blinking task.

rtems_task_wake_after will make the current task block for a specified
number of clock ticks leaving the processor free for the other task to
run.

For reference go to
http://www.rtems.org/onlinedocs/releases/rtemsdocs-4.10.2/share/rtems/html/c_user/c_user00086.html

Regards,
Cláudio


On Wed, Sep 19, 2012 at 5:24 PM, Luca Cinquepalmi
<cinquepalmi at planetek.it> wrote:
> Wendell, thank you for your answer... I try to explain better:
> - task1 makes a led blinking (in a while cycle)
> - task2 print a simple "hello world"
>
> I want "hello world" to be printed while led is blinking. How can I share
> CPU with these two tasks?
> Shall I delete task at the end? Shall I define a semaphore?
> I tried to modify task priority but it has no effects...
> Even if led blinking (task 1) start, task 2 doesn't...
>
> Hope now it's clearer...
>
>     Luca
>
>
>
> Il 19/09/2012 17.18, Wendell Pereira da Silva ha scritto:
>
> Luca,
>
>
>
> Unless you have two CPUs (or a dual core CPU) and SMP support for your BSP,
> it’s impossible to get two tasks running at the same time (if I understood
> what you mean “… a second task running when one is still running).
>
> In most cases, on single core (or single processor) BSP’s tasks share the
> same CPU being droved by any scheduling policy implemented in the RTOS.
>
>
>
> If you want your tasks sharing the CPU, please, check the tasks priority,
> attributes and execution mode.
>
>
>
> Probably task one has higher priority than task two, and task one never
> blocks.
>
>
>
> A good reference is the RTEMS Users Guide, topic 5.2.
>
>
>
> Hope it helps.
>
>
>
> --Wendell
>
>
>
> De: rtems-users-bounces at rtems.org [mailto:rtems-users-bounces at rtems.org] Em
> nome de Luca Cinquepalmi
> Enviada em: quarta-feira, 19 de setembro de 2012 11:16
> Para: Joel Sherrill
> Cc: rtems-users at rtems.org
> Assunto: Re: testing multitasking rtems
>
>
>
> How can I run Two tasks in the same time? Evey task ends with delete_task so
> the next task starts
> when the previous is finished. How can I make a second task running when
> task one is still running?
>
> Example:
>
> rtems_task Init(rtems_task_argument ignored)
> {
>
>     ...
>     rtems_task_start(task_id1...)
>     rtems_task_start(task_id2...)
>     ...
> }
>
>
> I want that task 2 starts while task1 is still running? How can I do this?
> Thank you
>
>     Luca
>
>
>
> Il 18/09/2012 13.12, Joel Sherrill ha scritto:
>
> On 09/18/2012 06:07 AM, Luca Cinquepalmi wrote:
>
> Hi all,
> is there on line or in rtems documentaion any exmaple (c source code) of
> how testing multitasking?
>
> Nearly every test is multitasking. All are if you consider there is
> at least an application task/thread and an idle task.
>
> The most basic tests for a BSP are hello and ticker. Ticker has
> 3 user tasks which run at different intervals.
>
> I'm not able to find any suggestion. Thank you
>
>       Luca
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-users
>
>
>
>
>
>
>
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-users
>




More information about the users mailing list