本文整理汇总了C++中portRESTORE_CONTEXT函数的典型用法代码示例。如果您正苦于以下问题:C++ portRESTORE_CONTEXT函数的具体用法?C++ portRESTORE_CONTEXT怎么用?C++ portRESTORE_CONTEXT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了portRESTORE_CONTEXT函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: xPortStartScheduler
BaseType_t xPortStartScheduler( void )
{
/* Start the timer that generates the tick ISR. Interrupts are disabled
here already. */
prvSetupTimerInterrupt();
/* Start the first task. */
portRESTORE_CONTEXT();
/* Should not get here! */
return 0;
}
开发者ID:frankzzcn,项目名称:M2_SE_RTOS_Project,代码行数:12,代码来源:port.c
示例2: xPortStartScheduler
portBASE_TYPE xPortStartScheduler( void )
{
/* Setup the hardware to generate the tick. Interrupts are disabled when
this function is called. */
prvSetupTimerInterrupt();
/* Restore the context of the first task that is going to run. */
portRESTORE_CONTEXT();
/* Should not get here as the tasks are now running! */
return pdTRUE;
}
开发者ID:felipepipe18,项目名称:openesc,代码行数:12,代码来源:port.c
示例3: vUART_ISR_Wrapper
void vUART_ISR_Wrapper( void )
{
/* Save the context of the interrupted task. */
portSAVE_CONTEXT();
/* Call the handler. This must be a separate function to ensure the
stack frame is correctly set up. */
__asm volatile( "bl vUART_ISR_Handler" );
/* Restore the context of whichever task will run next. */
portRESTORE_CONTEXT();
}
开发者ID:vmandrews,项目名称:CSDC-OBC-Software,代码行数:12,代码来源:serialISR.c
示例4: vEMACISR_Wrapper
void vEMACISR_Wrapper( void )
{
/* Save the context of the interrupted task. */
portSAVE_CONTEXT();
/* Call the handler task to do the actual work. This must be a separate
function to ensure the stack frame is correctly set up. */
__asm volatile ("bl vEMACISR_Handler");
/* Restore the context of whichever task is the next to run. */
portRESTORE_CONTEXT();
}
开发者ID:Dzenik,项目名称:FreeRTOS_TEST,代码行数:12,代码来源:EMAC_ISR.c
示例5: vEMACISR_Wrapper
void vEMACISR_Wrapper( void )
{
/* Save the context of the interrupted task. */
portSAVE_CONTEXT();
/* Call the handler to do the work. This must be a separate
function to ensure the stack frame is set up correctly. */
vEMACISR_Handler();
/* Restore the context of whichever task will execute next. */
portRESTORE_CONTEXT();
}
开发者ID:AlexShiLucky,项目名称:freertos,代码行数:12,代码来源:SAM7_EMAC_ISR.c
示例6: vPortYield
/*
* Manual context switch. This is similar to the tick context switch,
* but does not increment the tick count. It must be identical to the
* tick context switch in how it stores the stack of a task.
*/
void vPortYield( void )
{
/* This can get called with interrupts either enabled or disabled. We
will save the INTCON register with the interrupt enable bits unmodified. */
portSAVE_CONTEXT( portINTERRUPTS_UNCHANGED );
/* Switch to the highest priority task that is ready to run. */
vTaskSwitchContext();
/* Start executing the task we have just switched to. */
portRESTORE_CONTEXT();
}
开发者ID:jjyothilinga,项目名称:PIC18F67J60_RTOS,代码行数:17,代码来源:port.c
示例7: vI2C_ISR_Wrapper
void vI2C_ISR_Wrapper( void )
{
/* Save the context of the interrupted task. */
portSAVE_CONTEXT();
/* Call the handler to perform the actual work. This must be a
separate function to ensure the correct stack frame is set up. */
vI2C_ISR_Handler();
/* Restore the context of whichever task is going to run next. */
portRESTORE_CONTEXT();
}
开发者ID:HclX,项目名称:freertos,代码行数:12,代码来源:i2cISR.c
示例8: vFtMac100_ISR_Wrapper
static void vFtMac100_ISR_Wrapper( void )
{
/* Save the context of the interrupted task. */
/* Done at boot.s*/
/* Call the handler. This must be a separate function from the wrapper
to ensure the correct stack frame is set up. */
__asm volatile ("bl ftMac100_InterruptHandler");
/* Restore the context of whichever task is going to run next. */
portRESTORE_CONTEXT();
}
开发者ID:ya-mouse,项目名称:freertos-np51x0,代码行数:12,代码来源:ftmac100.c
示例9: vEINT0_ISR_Wrapper
void vEINT0_ISR_Wrapper( void )
{
/* Save the context of the interrupted task. */
portSAVE_CONTEXT();
/* The handler must be a separate function from the wrapper to
ensure the correct stack frame is set up. */
vEINT0_ISR_Handler();
/* Restore the context of whichever task is going to run next. */
portRESTORE_CONTEXT();
}
开发者ID:Hermis,项目名称:FreeRTOS_OR1200,代码行数:12,代码来源:TCPISR.c
示例10: vEMAC_ISR_Wrapper
void vEMAC_ISR_Wrapper( void )
{
/* Save the context of the interrupted task. */
portSAVE_CONTEXT();
/* Call the handler. This must be a separate function unless you can
guarantee that no stack will be used. */
__asm volatile ( "bl vEMAC_ISR_Handler" );
/* Restore the context of whichever task is going to run next. */
portRESTORE_CONTEXT();
}
开发者ID:dirk-brandewie,项目名称:freertos,代码行数:12,代码来源:EMAC_ISR.c
示例11: ISR
ISR (TCC0_OVF_vect, ISR_NAKED) {
/*
* Context switch function used by the tick. This must be identical to
* vPortYield() from the call to vTaskSwitchContext() onwards. The only
* difference from vPortYield() is the tick count is incremented as the
* call comes from the tick ISR.
*/
portSAVE_CONTEXT();
vTaskIncrementTick();
vTaskSwitchContext();
portRESTORE_CONTEXT();
asm volatile ( "reti" );
}
开发者ID:klaxalk,项目名称:FreeRTOS-on-ATxmega128a4u,代码行数:13,代码来源:port.c
示例12: vButtonISRWrapper
void vButtonISRWrapper( void )
{
/* Save the context of the interrupted task. */
portSAVE_CONTEXT();
/* Call the handler to do the work. This must be a separate function to
the wrapper to ensure the correct stack frame is set up. */
__asm volatile( "bl vButtonHandler" );
/* Restore the context of whichever task is going to run once the interrupt
completes. */
portRESTORE_CONTEXT();
}
开发者ID:DonjetaE,项目名称:FreeRTOS,代码行数:13,代码来源:mainISR.c
示例13: vPortYieldFromTick
void vPortYieldFromTick( void )
{
portSAVE_CONTEXT();
if( xTaskIncrementTick() != pdFALSE )
{
vTaskSwitchContext();
}
portRESTORE_CONTEXT();
__asm__ __volatile__ ( "ret" );
}
开发者ID:Regina-Cupido-Officium,项目名称:miniAVRfreeRTOS,代码行数:13,代码来源:port.c
示例14: prvPortPreemptiveTick
static void
prvPortPreemptiveTick( void )
{
asm volatile ( "move.w #0x2700, %sr\n\t" );
#if _GCC_USES_FP == 1
asm volatile ( "unlk %fp\n\t" );
#endif
portSAVE_CONTEXT( );
MCF_PIT_PCSR0 |= MCF_PIT_PCSR_PIF;
vTaskIncrementTick( );
vTaskSwitchContext( );
portRESTORE_CONTEXT( );
}
开发者ID:alexrayne,项目名称:freemodbus,代码行数:13,代码来源:port.c
示例15: i2c_isr
void i2c_isr()
{
portSAVE_CONTEXT();
//i2c_stateMachine();
if (i2c_stateMachine()) //run the state machine code.
{ //finished sending/receiving data.
signed portBASE_TYPE prio_task; xSemaphoreGiveFromISR(i2c_done, &prio_task);
} else { //not done yet.
portYIELD_FROM_ISR(); //let other tasks happen, we're not done with the state machine yet.
}
VICVectAddr = 0; //Acknowledge interrupt
portRESTORE_CONTEXT();
}
开发者ID:sprig,项目名称:os_copter,代码行数:13,代码来源:i2c.c
示例16: xPortStartScheduler
BaseType_t xPortStartScheduler( void )
{
/* Set-up the timer interrupt. */
prvSetupTimerInterrupt();
/* Integrated Interrupt Controller: Enable all interrupts. */
ic->ien = 1;
/* Restore callee saved registers. */
portRESTORE_CONTEXT();
/* Should not get here. */
return 0;
}
开发者ID:ccccjason,项目名称:amass,代码行数:14,代码来源:port.c
示例17: xPortStartScheduler
portBASE_TYPE xPortStartScheduler( void )
{
/* Setup a timer for the tick ISR is using the preemptive scheduler. */
prvSetupTimerInterrupt();
/* Restore the context of the first task to run. */
portRESTORE_CONTEXT();
/* Should not get here. Use the function name to stop compiler warnings. */
( void ) prvLowInterrupt;
( void ) prvTickISR;
return pdTRUE;
}
开发者ID:davidadkins1,项目名称:RoboDetector,代码行数:14,代码来源:port.c
示例18: xPortStartScheduler
BaseType_t xPortStartScheduler( void )
{
/* Setup a timer for the tick ISR. */
vApplicationSetupTickTimerInterrupt();
/* Restore the context of the first task to run. */
portRESTORE_CONTEXT();
/* Simulate the end of the yield function. */
asm volatile ( "return" );
/* Should not reach here. */
return pdTRUE;
}
开发者ID:lnls-dig,项目名称:openMMC,代码行数:14,代码来源:port.c
示例19: vUSB_ISR_Wrapper
void vUSB_ISR_Wrapper( void )
{
/* Save the context of the interrupted task. */
portSAVE_CONTEXT();
/* Call the handler itself. This must be a separate function as it uses
the stack. */
__asm volatile ("bl vUSB_ISR_Handler");
/* Restore the context of the task that is going to
execute next. This might not be the same as the originally
interrupted task.*/
portRESTORE_CONTEXT();
}
开发者ID:granthuu,项目名称:fsm_software,代码行数:14,代码来源:USB_ISR.c
示例20: xPortStartScheduler
portBASE_TYPE xPortStartScheduler( void )
{
/* Setup the hardware to generate the tick. */
prvSetupTimerInterrupt();
/* Restore the context of the first task that is going to run. */
portRESTORE_CONTEXT();
/* Simulate a function call end as generated by the compiler. We will now
jump to the start of the task the context of which we have just restored. */
asm volatile ( "ret" );
/* Should not get here. */
return pdTRUE;
}
开发者ID:AdrianHuang,项目名称:freertos-plus,代码行数:15,代码来源:port.c
注:本文中的portRESTORE_CONTEXT函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论