7.5.16 TIMER 使用指南
硬件支持
目前 RDK S100有6个 Instance,每个 Instance 有4个32bit 计数的 Channel,每个 Channel 都是一个定时器,可用于定时等功能。
目前 RDK S600有10个 Instance,每个 Instance 有4个32bit 计数的 Channel,每个 Channel 都是一个定时器,可用于定时等功能。
定时器(Timer)的具体配置信息在如下宏中定义:
//路径: mcu/McalCdd/Gpt/inc/Gpt_Lld.h
/* instance的数量 */
#if ((SOC_TYPE_S100 == SOC_TYPE) || (SOC_TYPE_S100P == SOC_TYPE))
#define GPT_LLD_INSTANCE_NUM (6U)
#endif
#if ((SOC_TYPE == SOC_TYPE_S600) || (SOC_TYPE == SOC_TYPE_S300))
#define GPT_LLD_INSTANCE_NUM (10U)
#endif
/* 每个instance的channel数量 */
#define GPT_LLD_CHANNEL_NUM_PER_INSTANCE (4U)
/* 每个channel的大小 */
#define GPT_LLD_CHANNEL_SIZE (0x14U)
/* 每个instance的大小 */
#define GPT_LLD_INSTANCE_SIZE (0x10000U)
/* 每个instance的寄存器基地址 */
#if ((SOC_TYPE_S100 == SOC_TYPE) || (SOC_TYPE_S100P == SOC_TYPE))
#define GPT_LLD_BASE_OFFSET(n) ((0X22310000U) + (GPT_LLD_INSTANCE_SIZE) * (n))
#endif
#if ((SOC_TYPE == SOC_TYPE_S600) || (SOC_TYPE == SOC_TYPE_S300))
#define GPT_LLD_BASE_OFFSET(n) ((0X23570000U) + (GPT_LLD_INSTANCE_SIZE) * (n))
#endif
/* 每个channel的起始地址 */
#define GPT_LLD_CHANNEL_OFFEST(n, m) ((GPT_LLD_BASE_OFFSET(n)) + (GPT_LLD_CHANNEL_SIZE) * (m))
定时器的每个 Channel 均能触发中断,Channel 对应的中断号如下所示:
| ISR Name | Hardware Interrupt Vector |
|---|---|
| Gpt_Ins0Ch0Isr | 79 |
| Gpt_Ins0Ch1Isr | 80 |
| Gpt_Ins0Ch2Isr | 81 |
| Gpt_Ins0Ch3Isr | 82 |
| Gpt_Ins1Ch0Isr | 83 |
| Gpt_Ins1Ch1Isr | 84 |
| Gpt_Ins1Ch2Isr | 85 |
| Gpt_Ins1Ch3Isr | 86 |
| Gpt_Ins2Ch0Isr | 87 |
| Gpt_Ins2Ch1Isr | 88 |
| Gpt_Ins2Ch2Isr | 89 |
| Gpt_Ins2Ch3Isr | 90 |
| Gpt_Ins3Ch0Isr | 91 |
| Gpt_Ins3Ch1Isr | 92 |
| Gpt_Ins3Ch2Isr | 93 |
| Gpt_Ins3Ch3Isr | 94 |
| Gpt_Ins4Ch0Isr | 95 |
| Gpt_Ins4Ch1Isr | 96 |
| Gpt_Ins4Ch2Isr | 97 |
| Gpt_Ins4Ch3Isr | 98 |
| Gpt_Ins5Ch0Isr | 99 |
| Gpt_Ins5Ch1Isr | 100 |
| Gpt_Ins5Ch2Isr | 101 |
| Gpt_Ins5Ch3Isr | 102 |
| ISR Name | Hardware Interrupt Vector |
|---|---|
| Gpt_Ins0Ch0Isr | 105 |
| Gpt_Ins0Ch1Isr | 106 |
| Gpt_Ins0Ch2Isr | 107 |
| Gpt_Ins0Ch3Isr | 108 |
| Gpt_Ins1Ch0Isr | 109 |
| Gpt_Ins1Ch1Isr | 110 |
| Gpt_Ins1Ch2Isr | 111 |
| Gpt_Ins1Ch3Isr | 112 |
| Gpt_Ins2Ch0Isr | 113 |
| Gpt_Ins2Ch1Isr | 114 |
| Gpt_Ins2Ch2Isr | 115 |
| Gpt_Ins2Ch3Isr | 116 |
| Gpt_Ins3Ch0Isr | 117 |
| Gpt_Ins3Ch1Isr | 118 |
| Gpt_Ins3Ch2Isr | 119 |
| Gpt_Ins3Ch3Isr | 120 |
| Gpt_Ins4Ch0Isr | 121 |
| Gpt_Ins4Ch1Isr | 122 |
| Gpt_Ins4Ch2Isr | 123 |
| Gpt_Ins4Ch3Isr | 124 |
| Gpt_Ins5Ch0Isr | 125 |
| Gpt_Ins5Ch1Isr | 126 |
| Gpt_Ins5Ch2Isr | 127 |
| Gpt_Ins5Ch3Isr | 128 |
| Gpt_Ins6Ch0Isr | 129 |
| Gpt_Ins6Ch1Isr | 130 |
| Gpt_Ins6Ch2Isr | 131 |
| Gpt_Ins6Ch3Isr | 132 |
| Gpt_Ins7Ch0Isr | 133 |
| Gpt_Ins7Ch1Isr | 134 |
| Gpt_Ins7Ch2Isr | 135 |
| Gpt_Ins7Ch3Isr | 136 |
| Gpt_Ins8Ch0Isr | 137 |
| Gpt_Ins8Ch1Isr | 138 |
| Gpt_Ins8Ch2Isr | 139 |
| Gpt_Ins8Ch3Isr | 140 |
| Gpt_Ins9Ch0Isr | 141 |
| Gpt_Ins9Ch1Isr | 142 |
| Gpt_Ins9Ch2Isr | 143 |
| Gpt_Ins9Ch3Isr | 144 |