rtel wrote on Thursday, August 10, 2006:
> 1) All of a sudden its hanged in vListRemove() function at below point
> pxItemToRemove->pvContainer = NULL;
> ( pxList->uxNumberOfItems )–;
> and if check "pxList:" memory address its out of memory space .
> What would be the reason, not able to predicated.
Something in your system has corrupted the kernel maintained data structures. Most likely is that one of your tasks has overflowed its stack. Try identifying which task is short of stack space, or better still allocate more stack to each task.
> 2) My application required sending Q from interrupts @1mSec. But its slow
> my application and we misses some real time packet, which received in
Does the interrupt have to wake a task when the data is sent? If not then you can use any mechanism to send data from the interrupt, a simple buffer will be much faster.
Alternaitvely, if you are sending a lot of data, simply buffer the data then use a semaphore to wake the task so it can read the buffer. Semaphores do not cause any data to be copied and therefore are faster.
> 3) If you call portYield from ISR its generating exceptions and goes in to
> memory area.
I have not seen your port so don’t know how you have implemented this, but generally on an ARM port calling portYIELD() would be expected to cause an error. Take a look at the ARM7 ports to see how they cause a context switch from an interrupt. Most define a macro (something like portEND_SWITCHING_ISR()) in which a new task is selected. This has the effect of the interrupt returning to the newly selected task immediately without the need to call portYIELD().
There are several ways of approaching this. You might also want to look at the ARM9 port, which saves the context of the task on entry to each interrupt. This means switching tasks within an interrupt is very easy, but has an overhead on the entry and exit code.
> Can I replace FreeRTOS4.0.4 package with my old one and include that three
> dependent port files only. Any thing extra i have to take care in port
> while upgrading
> 3.2.4 package to 4.0.4 package.
Don’t think there is much - but the FreeRTOS.org WEB site contains a page on upgrading from 3.x.x to 4.x.x so take a look at that.
> And please suggest if any thing special care i have to take while porting
> into ARM11 (its ported and working fine but some time its give problem as
> mention above)
I am not familiar with ARM11, but would image you will have to take care of how the cashe is used during context switches.