[elektro] PIC32 FreeRtos IT semafor probléma.
Huszti András
kyrk.5.dpg.hu at freemail.hu
Sat Jun 16 16:54:35 CEST 2012
Helló! Próbáld ki saját implementálásu szemaforral, hogy azzal mukodik-e. A hibát szerintem jelentsed le a FreeRTOS-nek, hátha tudnak valamit kezdeni vele. Köszönöm
F-I <flaist at gmail.com> írta:
>Sziasztok!
>
>Használom a PIC32 FREERTOS összeállítás.
>
>IT rutinból hivok szmafor eseményt a minta példák alapján.
>
> xSemaphoreGiveFromISR( xSemaphore, &xHigherPriorityTaskWoken ); //indítja a jelfeldolgozó taszkot
>
>
>
>A bajom az, hogy ez az IT rutin sürün jön, ezért használná a HW SHADOW regiszter mentést.
>
>__attribute__ ((interrupt(IPL6SRS))) //ez használja a HW shadow reg. mentést
>
>
>Ha viszont ezt beállitom, akkor 7-es "general_exception"-t dob a PIC32 a FREERTOS ora IT rutinjában.
>
>
>Ha tiltom, akkor nincs hiba:
>
>__attribute__ ((interrupt(IPL6SOFT))) //Ne haználja a HW shadow reg. mentést.
>
>
>
>
>
>A program ez után a szemafor hivás után száll el.
>
>
> xSemaphoreGiveFromISR( xSemaphore, &xHigherPriorityTaskWoken ); //indítja a jelfeldolgozó taszkot
>
>
>Ez hívja a lenti PIC32 spec.függvény, ami után jön az elszállás!
>
>"port.c"
>---------------------------------------------------------------------------------------------------
>unsigned portBASE_TYPE uxPortSetInterruptMaskFromISR( void )
>{
>unsigned portBASE_TYPE uxSavedStatusRegister;
>
> asm volatile ( "di" );
> uxSavedStatusRegister = _CP0_GET_STATUS() | 0x01;
> /* This clears the IPL bits, then sets them to
> configMAX_SYSCALL_INTERRUPT_PRIORITY. This function should not be called
> from an interrupt that has a priority above
> configMAX_SYSCALL_INTERRUPT_PRIORITY so, when used correctly, the action
> can only result in the IPL being unchanged or raised, and therefore never
> lowered. */
> _CP0_SET_STATUS( ( ( uxSavedStatusRegister & ( ~portALL_IPL_BITS ) ) ) | ( configMAX_SYSCALL_INTERRUPT_PRIORITY << portIPL_SHIFT ) );
>
> return uxSavedStatusRegister;
>}
>---------------------------------------------------------------------------------------------------
>
>Olyan a jelenség, mintha felengedné az IT-t, és a FREERTOS ora IT ráindulna !!??
>
>Azon kívül, hogy ne használjam a SHADOW-t van valami ötlet?
>
>Köszi, üdv István
>-----------------------------------------
> elektro[-flame|-etc]
More information about the Elektro
mailing list