EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Re: Cooperative FreeRTOS on SAM7-ex256 - Interrupts

Started by "FreeRTOS.org Info" December 19, 2007
> Ok! I've made the changes. So this might be the problem. The
> interrupts are working, but the tasks do not. What should I do next?
So the tick interrupt now runs. Are you still installing other interrupts?
If you have just the tick interrupt running, do the flash tasks now execute?

Can you place a break point in the flash task to be double sure it is not
running.

Regards,
Richard.

+ http://www.FreeRTOS.org
14 official architecture ports, 1000 downloads per week.

+ http://www.SafeRTOS.com
Certified by T as meeting the requirements for safety related systems.



I've got it! Thanks a lot Richard! So it was the IRQ attribute.
Just commenting the vTaskSwitchContext(); makes the FreeRTOS behave
in cooperative mode?

--- In A..., "FreeRTOS.org Info"
wrote:
>
> > Ok! I've made the changes. So this might be the problem. The
> > interrupts are working, but the tasks do not. What should I do
next?
>
>
> So the tick interrupt now runs. Are you still installing other
interrupts?
> If you have just the tick interrupt running, do the flash tasks now
execute?
>
> Can you place a break point in the flash task to be double sure it
is not
> running.
>
>
>
> Regards,
> Richard.
>
> + http://www.FreeRTOS.org
> 14 official architecture ports, 1000 downloads per week.
>
> + http://www.SafeRTOS.com
> Certified by T as meeting the requirements for safety related
systems.
>



> I've got it! Thanks a lot Richard! So it was the IRQ attribute.

Good. I generally don't have problems with the IRQ attribute but I have
heard of other people that have. Try and ensure to use the latest GCC
versions.

> Just commenting the vTaskSwitchContext(); makes the FreeRTOS behave
> in cooperative mode?

>From within the tick interrupt - then basically, yes, this is the only real
difference. Being able to use the IRQ attribute would be a more efficient
solution though as in cooperative mode you do not need to save so much
context.

Regards,
Richard.

+ http://www.FreeRTOS.org
14 official architecture ports, 1000 downloads per week.

+ http://www.SafeRTOS.com
Certified by T as meeting the requirements for safety related systems.



The tasks are running. I've included the taskYIELD() function so that
they run concurrently.
But when I install other interrupts (PIO interrupts) the task that
waits on the queue to receive something it is never unblocked.

--- In A..., "FreeRTOS.org Info"
wrote:
>
> > Ok! I've made the changes. So this might be the problem. The
> > interrupts are working, but the tasks do not. What should I do
next?
>
>
> So the tick interrupt now runs. Are you still installing other
interrupts?
> If you have just the tick interrupt running, do the flash tasks now
execute?
>
> Can you place a break point in the flash task to be double sure it
is not
> running.
>
>
>
> Regards,
> Richard.
>
> + http://www.FreeRTOS.org
> 14 official architecture ports, 1000 downloads per week.
>
> + http://www.SafeRTOS.com
> Certified by T as meeting the requirements for safety related
systems.
>




The 2024 Embedded Online Conference