• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ OSSchedLock函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中OSSchedLock函数的典型用法代码示例。如果您正苦于以下问题:C++ OSSchedLock函数的具体用法?C++ OSSchedLock怎么用?C++ OSSchedLock使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了OSSchedLock函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: delay_osschedlock

//us级延时时,关闭任务调度(防止打断us级延迟)
void delay_osschedlock(void)
{
#ifdef CPU_CFG_CRITICAL_METHOD   				//使用UCOSIII
	OS_ERR err; 
	OSSchedLock(&err);							//UCOSIII的方式,禁止调度,防止打断us延时
#else											//否则UCOSII
	OSSchedLock();								//UCOSII的方式,禁止调度,防止打断us延时
#endif
}
开发者ID:wqgk,项目名称:WqFourAxis,代码行数:10,代码来源:delay.c


示例2: get_usb_logger_data

INT32U get_usb_logger_data(void)
{
	INT32U ret = 0;
	
	/* read operation */
#if _OPERATING_SYSTEM != _OS_NONE	// Soft Protect for critical section
	OSSchedLock();
#endif	
	ret = (INT32U)logger_read_ptr;
	//memcpy((CHAR*)dataptr, usb_read_ptr, USB_LOGGER_BUF_SIZE);

	if(logger_read_ptr == logger_write_ptr)
	{
		logger_read_ptr[0] = 0;
	}
	else
	{
		if(logger_read_ptr < (usb_logger_buf + USB_LOGGER_BUF_TOTAL_SIZE - USB_LOGGER_BUF_SIZE))
	    	logger_read_ptr += USB_LOGGER_BUF_SIZE;
	    else
	    	logger_read_ptr = usb_logger_buf;
    }
	
	//loggerwritecnt = (logger_write_ptr - usb_logger_buf) >> 9;
    //loggerreadcnt = (logger_read_ptr - usb_logger_buf) >> 9;
	    	
#if _OPERATING_SYSTEM != _OS_NONE	//exit critical section
	OSSchedUnlock();
#endif
  
    return ret;	
}
开发者ID:danielgm6,项目名称:gpl32,代码行数:32,代码来源:gplib_print_string.c


示例3: zyThreadDel

/*********************************************************************************************************
** Function name:           zyThreadDel
** Descriptions:            删除线程
** input parameters:        ulThreadId: 线程ID
** output parameters:       none
** Returned value:          zy_OK: 成功
**                          负数:  错误,绝对值参考zy_if.h
** Created by:              Chenmingji
** Created Date:            2009-07-23
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
*********************************************************************************************************/
INT32S zyThreadDel (unsigned long ulThreadId)
{
    OS_TCB *ptcbTask;                                                   /*  任务TCB                     */
    void   *pvTmp1;

    ptcbTask = (OS_TCB *)ulThreadId;

    if (zyThreadGetCurId() == ulThreadId) {
        zyIrqDisable();
        pvTmp1 = (void *)(ptcbTask->OSTCBStkPtr);
        zyHeapFree(pvTmp1);
        OSTaskDel(ptcbTask->OSTCBPrio);
        zyIrqEnable();
        return ZY_OK;
    }

    OSSchedLock();

    pvTmp1 = (void *)(ptcbTask->OSTCBStkPtr);
    zyHeapFree(pvTmp1);
    OSTaskDel(ptcbTask->OSTCBPrio);

    OSSchedUnlock();
    return ZY_OK;
}
开发者ID:glocklueng,项目名称:EV_lpc1768_gprs_qrencode,代码行数:38,代码来源:zy_if.c


示例4: zyThreadCreate

/*********************************************************************************************************
** Function name:           zyThreadCreate
** Descriptions:            建立线程
** input parameters:        pvThreedMain: 线程主程序
**                          pvArg:        给线程的参数
**                          uiPrio:       线程优先级
**                          ulSize:       堆栈大小
** output parameters:       none
** Returned value:          线程ID,0为不成功
** Created by:              Chenmingji
** Created Date:            2009-07-23
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
*********************************************************************************************************/
unsigned long zyThreadCreate (void *pvThreedMain, void *pvArg, unsigned int uiPrio, INT32U ulSize)
{
    OS_STK       *pstpTmp1;
    OS_TCB      **pptcpTmp2;
    unsigned long ulRt;
    
    pstpTmp1 = (OS_STK *)zyHeapMalloc(ulSize * sizeof(OS_STK));
    if (pstpTmp1 == NULL) {
        return 0;
    }

    OSSchedLock();
    
    if (OSTaskCreate((void (*) (void *))pvThreedMain,
                     pvArg,
#if OS_STK_GROWTH == 1
                     pstpTmp1 + ulSize - 1,
#else
                     pstpTmp1,
#endif                                                                  /*  OS_STK_GROWTH               */
                     (INT8U)uiPrio) != OS_NO_ERR) {
        OSSchedUnlock();
        return 0;
    }    

    pptcpTmp2 = OSTCBPrioTbl;
    ulRt      = (unsigned long)pptcpTmp2[uiPrio];
    
    OSSchedUnlock();
    
    return ulRt;
}
开发者ID:glocklueng,项目名称:EV_lpc1768_gprs_qrencode,代码行数:47,代码来源:zy_if.c


示例5: OSA_MemFree

/*FUNCTION**********************************************************************
 *
 * Function Name : OSA_MemFree
 * Description   : This function is used to free the memory previously allocated.
 *
 *END**************************************************************************/
osa_status_t OSA_MemFree(void *ptr)
{
    OSSchedLock();
    free(ptr);
    OSSchedUnlock();
    return kStatus_OSA_Success;
}
开发者ID:kylemanna,项目名称:kinetis-sdk1,代码行数:13,代码来源:fsl_os_abstraction_ucosii.c


示例6: setclock

/*
 * This function sets the system clock time.  
 */
int setclock(alt_u32 seconds)
{
  struct timeval time = {0, 0};
  struct timezone zone = {0, 0};
  
  /* 
   * NTP Time is seconds since 1900 
   * Convert to Unix time which is seconds since 1970
   */
  seconds -= NTP_TO_UNIX_TIME;
  
  time.tv_sec = seconds;

  printf("Setting System Clock time to: %s\n",ctime(&time.tv_sec));
  //settimeofday() can not be called at the same time as gettimeofday()
  OSSchedLock();  
  //settimeofday(&time, &zone);
  if(settimeofday(&time, &zone) < 0)
  {
    printf("Error set the time of day %s\n", strerror(errno));
    exit(0);
  }
  OSSchedUnlock();

  return 0;
}
开发者ID:sunjiangbo,项目名称:10base_t_software_PHY,代码行数:29,代码来源:target_clock.c


示例7: StackSize

INT8U  CTask::Create(bool bRunNow)
{
	INT32U nStackSize = StackSize();
										
	m_nId = s_nNextId ++;

	OSSchedLock();	
	INT8U  errno = OSTaskCreateExt(_callbackFunc, (void*)this, 
					&m_pTaskStack[nStackSize-1],
					m_nPrio,
					m_nId,
					m_pTaskStack,
					nStackSize,
					(void*)NULL,
					OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
	if (!errno){
		OSTaskNameSet(m_nPrio, (INT8U*)m_aTaskName, &errno);
	}
	
	if (!bRunNow){
		OSTaskSuspend(m_nPrio);
	}
	OSSchedUnlock();

	return errno;
}
开发者ID:hevakelcj,项目名称:STM32-Workspace,代码行数:26,代码来源:CTask.cpp


示例8: Function

void Function(void)
{
	OSSchedLock();
	/*
	you can access shared data in here (interrupts are still recoginizeds)
	*/
	OSSchedUnlock();
}
开发者ID:yylea,项目名称:UCOS2,代码行数:8,代码来源:3.disabling_and_enaling_scheduling.c


示例9: adi_osal_SchedulerLock

void   adi_osal_SchedulerLock( void )
{
    OSSchedLock();

#ifdef OSAL_DEBUG
    _adi_osal_gnSchedulerLockCnt++;
#endif /* OSAL_DEBUG */
    return;
}
开发者ID:amartone,项目名称:CapstoneSpring2016,代码行数:9,代码来源:adi_osal_ucos2_critical.c


示例10: msgQQuery

INT8U msgQQuery(MSG_Q_ID msgQId, OS_Q_DATA *pdata)
{
    INT8U ret;

	OSSchedLock();
    ret = OSQQuery(msgQId->pEvent, pdata);
	OSSchedUnlock();
    return ret;
}
开发者ID:danielgm6,项目名称:gpl32,代码行数:9,代码来源:msg_manager.c


示例11: alt_ucosii_check_return_code

void alt_ucosii_check_return_code(INT8U return_code)
{
  if(return_code != OS_NO_ERR)
  {
    OSSchedLock();  /* Disable Task Switching but still service other IRQs */
    alt_ucosii_simple_error_handler(return_code);
    OSSchedUnlock(); /* Enable Task Switching */
  }
}
开发者ID:Cushychicken,项目名称:ee475,代码行数:9,代码来源:alt_ucosii_simple_error_check.c


示例12: OS_TmrTask

void  OS_TmrTask (void  *p_arg)
{
    OS_ERR               err;
    OS_TMR_CALLBACK_PTR  p_fnct;
    OS_TMR              *p_tmr;
    OS_TMR              *p_tmr_next;
    CPU_TS               ts;
    CPU_TS               ts_start;
    CPU_TS               ts_delta;



    (void)&p_arg;                                                /* Not using 'p_arg', prevent compiler warning       */
    while (DEF_ON) {
        (void)OSTaskSemPend((OS_TICK )0,                         /* Wait for signal indicating time to update tmrs    */
                            (OS_OPT  )OS_OPT_PEND_BLOCKING,
                            (CPU_TS *)&ts,
                            (OS_ERR *)&err);


        OS_TmrLock();
        ts_start = OS_TS_GET();
        OSTmrTickCtr++;                                          /* Increment the current time                        */
        p_tmr    = OSTmrListPtr;
        while (p_tmr != (OS_TMR *)0) {                           /* Update all the timers in the list                 */
            OSSchedLock(&err);
            (void)&err;
            p_tmr_next = p_tmr->NextPtr;
            p_tmr->Remain--;
            if (p_tmr->Remain == 0) {
                if (p_tmr->Opt == OS_OPT_TMR_PERIODIC) {
                    p_tmr->Remain = p_tmr->Period;               /* Reload the time remaining                         */
                } else {
                    OS_TmrUnlink(p_tmr);                         /* Remove from list                                  */
                    p_tmr->State = OS_TMR_STATE_COMPLETED;       /* Indicate that the timer has completed             */
                }
                p_fnct = p_tmr->CallbackPtr;                     /* Execute callback function if available            */
                if (p_fnct != (OS_TMR_CALLBACK_PTR)0) {
                    (*p_fnct)((void *)p_tmr,
                              p_tmr->CallbackPtrArg);
                }
            }
            p_tmr = p_tmr_next;
            OSSchedUnlock(&err);
            (void)&err;
        }

        ts_delta = OS_TS_GET() - ts_start;                      /* Measure execution time of timer task              */

        if (OSTmrTaskTimeMax < ts_delta) {
            OSTmrTaskTimeMax = ts_delta;
        }

        OS_TmrUnlock();
    }
}
开发者ID:binhfile,项目名称:stm32,代码行数:56,代码来源:os_tmr.c


示例13: OSA_MemAllocZero

/*FUNCTION**********************************************************************
 *
 * Function Name : OSA_MemAllocZero
 * Description   : This function is used to allocate amount of memory in bytes
 * and initializes it to 0.
 * Return the pointer to the memory if success, otherwise return NULL;
 *
 *END**************************************************************************/
void * OSA_MemAllocZero(size_t size)
{
    void *pMem;

    OSSchedLock();
    pMem = calloc(1, size);
    OSSchedUnlock();

    return pMem;
}
开发者ID:kylemanna,项目名称:kinetis-sdk1,代码行数:18,代码来源:fsl_os_abstraction_ucosii.c


示例14: OSA_MemAlloc

/*FUNCTION**********************************************************************
 *
 * Function Name : OSA_MemAlloc
 * Description   : This function is used to allocate amount of memory in bytes.
 * Return the pointer to the memory if success, otherwise return NULL;
 *
 *END**************************************************************************/
void * OSA_MemAlloc(size_t size)
{
    void *pMem;

    OSSchedLock();
    pMem = malloc(size);
    OSSchedUnlock();

    return pMem;
}
开发者ID:kylemanna,项目名称:kinetis-sdk1,代码行数:17,代码来源:fsl_os_abstraction_ucosii.c


示例15: OSA_EnterCritical

/*FUNCTION**********************************************************************
 *
 * Function Name : OSA_EnterCritical
 * Description   : This function is used to ensure some code will not be preempted.
 *
 *END**************************************************************************/
void OSA_EnterCritical(osa_critical_section_mode_t mode)
{
    if (kCriticalDisableInt == mode)
    {
        OS_ENTER_CRITICAL();
    }
    else
    {
        OSSchedLock();
    }
}
开发者ID:kylemanna,项目名称:kinetis-sdk1,代码行数:17,代码来源:fsl_os_abstraction_ucosii.c


示例16: OSTmr_Task

static  void  OSTmr_Task (void *p_arg)
{
    INT8U            err;
    OS_TMR          *ptmr;
    OS_TMR          *ptmr_next;
    OS_TMR_CALLBACK  pfnct;
    OS_TMR_WHEEL    *pspoke;
    INT16U           spoke;


    p_arg = p_arg;                                               /* Prevent compiler warning for not using 'p_arg'    */
    for (;;) {
		/* 等待OSTmrSignal()发送的定时器更新的信号,在OSTimeTickHook()中调用,发送频率100HZ */
        OSSemPend(OSTmrSemSignal, 0u, &err);                     /* Wait for signal indicating time to update timers  */
		/* 关调度 */
        OSSchedLock();
        OSTmrTime++;                                             /* Increment the current time                        */
		/* 获得当前要处理的分组编号 */
        spoke  = (INT16U)(OSTmrTime % OS_TMR_CFG_WHEEL_SIZE);    /* Position on current timer wheel entry             */
		/* 获得当前要处理分组链表头 */
        pspoke = &OSTmrWheelTbl[spoke];
		/* 获得当前分组中第一个定时器控制块指针 */
        ptmr   = pspoke->OSTmrFirst;
        while (ptmr != (OS_TMR *)0) {
			/* 获得该组中下一个定时器控制块指针 */
            ptmr_next = (OS_TMR *)ptmr->OSTmrNext;               /* Point to next timer to update because current ... */
                                                                 /* ... timer could get unlinked from the wheel.      */
			/* 定时器时间到 */
            if (OSTmrTime == ptmr->OSTmrMatch) {                 /* Process each timer that expires                   */
				/* 把定时器从当前分组移除,并设置定时器状态为OS_TMR_STATE_STOPPED
				 * 虽然定时器已经不在该定时器分组中了,但是该定时器仍然有效,可以通过定时器控制块访问
				 */
                OSTmr_Unlink(ptmr);                              /* Remove from current wheel spoke                   */
				/* 如果是周期定时器,则更新定时器到时时间后,把定时器重新链接到新的分组 */
                if (ptmr->OSTmrOpt == OS_TMR_OPT_PERIODIC) {
                    OSTmr_Link(ptmr, OS_TMR_LINK_PERIODIC);      /* Recalculate new position of timer in wheel        */
                }
				/* 如果是单次定时器,则在定时器控制块中标示定时器已经完成 */
				else {
                    ptmr->OSTmrState = OS_TMR_STATE_COMPLETED;   /* Indicate that the timer has completed             */
                }
				/* 调用定时器到时回调函数 */
                pfnct = ptmr->OSTmrCallback;                     /* Execute callback function if available            */
                if (pfnct != (OS_TMR_CALLBACK)0) {
                    (*pfnct)((void *)ptmr, ptmr->OSTmrCallbackArg);
                }
            }
			/* 处理该分组中的下一个元素 */
            ptmr = ptmr_next;
        }
		/* 允许调度 */
        OSSchedUnlock();
    }
}
开发者ID:sdwuyawen,项目名称:uCOS-II_V2.92,代码行数:54,代码来源:os_tmr.c


示例17: OSA_MemAllocZero

/*FUNCTION**********************************************************************
 *
 * Function Name : OSA_MemAllocZero
 * Description   : This function is used to allocate amount of memory in bytes
 * and initializes it to 0.
 * Return the pointer to the memory if success, otherwise return NULL;
 *
 *END**************************************************************************/
void * OSA_MemAllocZero(size_t size)
{
    OS_ERR err;
    void *pMem;

    OSSchedLock(&err);
    pMem = calloc(1, size);
    OSSchedUnlock(&err);

    return pMem;
}
开发者ID:nevinxu,项目名称:HM502B2,代码行数:19,代码来源:fsl_os_abstraction_ucosiii.c


示例18: OSTmrNameGet

INT8U  OSTmrNameGet (OS_TMR   *ptmr,
                     INT8U   **pdest,
                     INT8U    *perr)
{
    INT8U  len;


#ifdef OS_SAFETY_CRITICAL
    if (perr == (INT8U *)0) {
        OS_SAFETY_CRITICAL_EXCEPTION();
        return (0u);
    }
#endif

#if OS_ARG_CHK_EN > 0u
    if (pdest == (INT8U **)0) {
        *perr = OS_ERR_TMR_INVALID_DEST;
        return (0u);
    }
    if (ptmr == (OS_TMR *)0) {
        *perr = OS_ERR_TMR_INVALID;
        return (0u);
    }
#endif
    if (ptmr->OSTmrType != OS_TMR_TYPE) {              /* Validate timer structure                                    */
        *perr = OS_ERR_TMR_INVALID_TYPE;
        return (0u);
    }
    if (OSIntNesting > 0u) {                           /* See if trying to call from an ISR                           */
        *perr = OS_ERR_NAME_GET_ISR;
        return (0u);
    }
    OSSchedLock();
    switch (ptmr->OSTmrState) {
        case OS_TMR_STATE_RUNNING:
        case OS_TMR_STATE_STOPPED:
        case OS_TMR_STATE_COMPLETED:
             *pdest = ptmr->OSTmrName;
             len    = OS_StrLen(*pdest);
             OSSchedUnlock();
             *perr = OS_ERR_NONE;
             return (len);

        case OS_TMR_STATE_UNUSED:                      /* Timer is not allocated                                      */
             OSSchedUnlock();
             *perr = OS_ERR_TMR_INACTIVE;
             return (0u);

        default:
             OSSchedUnlock();
             *perr = OS_ERR_TMR_INVALID_STATE;
             return (0u);
    }
}
开发者ID:EvanLind,项目名称:Quadrotor,代码行数:54,代码来源:os_tmr.c


示例19: osSuspendAllTasks

void osSuspendAllTasks(void)
{
   OS_ERR err;

   //Make sure the operating system is running
   if(OSRunning == OS_STATE_OS_RUNNING)
   {
      //Suspend scheduler activity
      OSSchedLock(&err);
   }
}
开发者ID:timurey,项目名称:oryx_stm32f205,代码行数:11,代码来源:os_port_ucos3.c


示例20: adi_osal_SchedulerLock

void   adi_osal_SchedulerLock( void )
{
    PAUSE_PROFILING();
    OSSchedLock();
    RESUME_PROFILING();

#ifdef OSAL_DEBUG
    _adi_osal_gnSchedulerLockCnt++;
#endif /* OSAL_DEBUG */
    return;
}
开发者ID:webom2008,项目名称:BF512.VDK,代码行数:11,代码来源:adi_osal_ucos_critical.c



注:本文中的OSSchedLock函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ OSSchedUnlock函数代码示例发布时间:2022-05-30
下一篇:
C++ OSSL_NELEM函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap