int bsp_om_start_timer(u32 timer_len,void *func,u32 para,struct softtimer_list *timer)
{
    s32 ret = BSP_OK;

    timer->func = func;
    timer->para = para;
    timer->timeout = timer_len*1000;
    timer->wake_type = SOFTTIMER_NOWAKE;

    if(timer->init_flags != TIMER_INIT_FLAG)
    {
        ret = bsp_softtimer_create(timer);


        bsp_softtimer_add(timer);

    }
    else
    {
        ret =bsp_softtimer_modify(timer,timer_len*1000);

        bsp_softtimer_add(timer);
    }
    return ret;
}
void for_softtimer_test_3(u32 para)
{
    s32 ret = 0;
    num[1]++;
    if (num[1]<10)
    {   
   	  ret = bsp_softtimer_modify(&my_softtimer,num[1]*100);
	  if (ret !=OK)
	  {
	 	bsp_trace(BSP_LOG_LEVEL_ERROR,BSP_MODU_SOFTTIMER,"for_softtimer_test_3  11modify error\n");
		return;
	  }
	  bsp_softtimer_add(&my_softtimer);
    }
    if (num[1]==10)
    {
    	num[1] = 0;
        ret = bsp_softtimer_free(&my_softtimer);
        if (ret !=OK)
		{
			bsp_trace(BSP_LOG_LEVEL_ERROR,BSP_MODU_SOFTTIMER,"for_softtimer_test_3  free error\n");
			return;
        }
		osl_sem_up(&sem3);
	}	
	return;
}
示例#3
0
u32 bsp_cpu_swt_set(u32 set_swt,u32 period)
{
    u32 ret = BSP_OK;

    if(BSP_SYSVIEW_SWT_ON == set_swt)
    {
        if(cpu_info_stru.loop_timer.init_flags == TIMER_INIT_FLAG )
        {
            bsp_om_stop_timer(&cpu_info_stru.loop_timer);
            bsp_softtimer_modify(&cpu_info_stru.loop_timer,period*1000);
            bsp_softtimer_add(&cpu_info_stru.loop_timer);
            /* 初始化计数信息*/
            get_task_time(0);

            ret = BSP_OK;
        }
        else
        {
            ret = (u32)bsp_om_start_timer(period,cpu_timeout_done , 0, &(cpu_info_stru.loop_timer));

            if(ret == BSP_OK)
            {
                 /* 初始化计数信息*/
                get_task_time(0);
                ret = BSP_OK;
            }
            else
            {
                ret = (u32)BSP_ERROR;
            }
        }
    }
    else
    {
        if(cpu_info_stru.loop_timer.init_flags == TIMER_INIT_FLAG )
        {
            ret = (u32)bsp_om_stop_timer(&cpu_info_stru.loop_timer);
        }
        else
        {
            ret = BSP_OK;
        }

         /*去 初始化计数信息*/
        get_task_time(1);
    }

    if(BSP_OK != ret)
    {
        return ret;
    }

    cpu_info_stru.report_swt  = set_swt;
    cpu_info_stru.report_timer_len = period;
    return BSP_OK;
}