project中的中断和相互之间的调度关系

一.    整理一下project中的中断和相互之间的调度关系

 

涉及的主要Parameters_initGlobal_Timer MRO和 UE RRM  UE_Mobility eNodeB RRM

Parameters_init模块

产生INTRPT_SYS_INIT中断触发Global_Timer MRO UE RRM  UE_Mobility eNodeB RRM模块。中断类型为广播中断。

 

最后send_sys_init状态有语句:

op_intrpt_schedule_mcast_global(op_sim_time(),INTRPT_SYS_INIT);

产生广播类型的INTRPT_SYS_INIT

 

 

Global_Timer模块

空闲状态的出口函数处都会调用:

tvi_intrpt_type =op_intrpt_type();

tvi_intrpt_code =op_intrpt_code();   

头函数处有定义:(即上面语句获得中断类型和中断码)

#define RCV_SYS_INIT(tvi_intrpt_type ==OPC_INTRPT_MCAST && tvi_intrpt_code == INTRPT_SYS_INIT)

#define SLOT_TIMER (tvi_intrpt_type == OPC_INTRPT_SELF && tvi_intrpt_code ==INTRPT_SLOT_TIMER)

#define SIM_END(tvi_intrpt_type ==OPC_INTRPT_ENDSIM)

 

Init状态函数开头:

这里为什么把产生中断的语句放在前面:这里就和OPNET的仿真机制有关系了:执行事件不需要任何时间,事件和事件之间可能跨越仿真时间,但是不消耗物理时间,事件执行过程直至事件执行完毕,仿真时间不推进,但需要物理时间,这个物理时间是受机器CPU 的限制。详细见上面的笔记部分,不赘述。

 

总之init状态产生SLOT_TIMER 中断

 

下面Time_Forward 状态末尾有:

op_intrpt_schedule_self(op_sim_time() +lvd_slot_duration, INTRPT_SLOT_TIMER);

产生SLOT_TIMER 中断

 

send_signal 状态

op_intrpt_schedule_remote(op_sim_time(),INTRPT_MRO,gvi_MRO_module_id);

触发MRO中断

Simend状态最后有

op_intrpt_schedule_mcast_global(op_sim_time(),INTRPT_ SYS_INIT);

产生RCV_SYS_INIT

 

 

eNodeBRRM模块

头函数有:

 

其中SCHEDULING中断由Global_Timer模块中的send_signal状态产生:

其中send_slot_timer_to_BS函数定义如下:

static void

send_slot_timer_to_BS(void)

{

     intlvi_BS_index;

     FIN(send_slot_timer_to_BS());

     for(lvi_BS_index = 0; lvi_BS_index < gvi_BS_number; lvi_BS_index++)

     {

     op_intrpt_schedule_remote(op_sim_time(),INTRPT_DL_SCHEDULING,gvo_BS_property[lvi_BS_index].RRM_module_id);

     }   

     FOUT;

}

 

RCV_ACK 中断由UE RRM模块Demodu状态函数HARQ_feedback()产生。

 

RCV_CQI中断由UE RRM模块Feedback状态调用recommend_CQI()函数产生

 

 

 

 

 

 

UE RRM模块:

头函数有:

其中中断RCV_PDSCHENodeB模块中的scheduling状态产生

UE Mobility模块

头函数:

INTRPT_HANDOVER中断:由UE Mobility模块handover状态得

INTRPT_MOVE_UPDATE中断:由UE Mobility模块得move_update状态得到

注意这两个模块的初始INTRPT_HANDOVER和INTRPT_MOVE_UPDATE中断程序中没有给出:(问题,怎么从Idle进去handover和move_update这两个状态)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值