APTCHIP 的中断和唤醒逻辑

本文详细解释了CK800/E90x系列芯片中的中断逻辑,包括IP级、总中断控制和VIC的运作机制。同时介绍了唤醒逻辑,低功耗唤醒功能的启用条件,以及中断使能和唤醒使能对中断处理的影响。

本文针对CK800系列进行描述,但E90x系列的芯片也有相同的概念

VIC:矢量中断控制器 


中断逻辑

从上图可以看出,中断事件要被CPU响应,需要三级使能。

  1. IP级,需要在IMCR中使能,这样中断事件可以被IP释放出来。

  2. 总中断控制,PSR[IE][EE]。PSR是处理器状态寄存器,其实也是核内寄存器。只有当EE和IE同时置位时,开关才打开,中断事件将到达VIC

  3. VIC内部,需要在ISER中使能,这样中断事件才会进入VIC,最终被VIC仲裁后送到CPU内部,完成中断响应


唤醒逻辑

唤醒逻辑和中断事务是不同的控制逻辑。

  • 如果一个中断的低功耗唤醒功能已使能(IWER[x] = 1),且该中断处于等待状态(IP释放出中断事件),VIC 产生低功耗唤醒请求。

  • 如果一个中断的低功耗唤醒功能未使能(IWDR[x] = 1),即使该中断处于等待状态,VIC 不产生低功耗唤醒请求。

  • 另外,调试口(SWD)将始终具有将芯片从低功耗模式中退出的功能。

当CPU从低功耗模式退出时,并不一定会响应中断,这取决于“中断逻辑”通路有没有完全打通。


总结
  • 中断使能和中断唤醒使能分别控制中断事务和中断唤醒功能。

  • 当两者都使能时,一个等待的中断既产生中断请求又产生低功耗唤醒请求,但只有当系统从低功耗模式唤醒后,才会响应队列中的中断请求;

  • 当只有其中一个使能时,只激活对应的功能;

  • 当两者都没有使能时,即使该中断处于等待状态,也不会产生中断请求和低功耗唤醒

 

def get_source_id(source): if source == 'digikey': source_id = 1 elif source == 'mouser': source_id = 2 elif source == 'siemens': source_id = 3 elif source == 'bom2buy': source_id = 4 elif source == 'datasheet5': source_id = 5 elif source == 'semiee': source_id = 6 elif source == 'youganw': source_id = 7 elif source == 'arrow': source_id = 8 elif source == 'utmel': source_id = 9 elif source == 'lcsc': source_id = 10 elif source == 'findic': source_id = 11 elif source == 'hqonline': source_id = 12 elif source == 'kynix': source_id = 13 elif source == 'newark': source_id = 14 elif source == 'rsonline_us': source_id = 15 elif source in ['avnet', 'avnet_other']: source_id = 16 elif source == 'avnet_us': source_id = 17 elif source == 'avnet_apac': source_id = 18 elif source == 'avnet_jp': source_id = 19 elif source == 'dbearings': source_id = 20 elif source == 'locateballbearings': source_id = 21 elif source == 'bearingwholesalelots': source_id = 22 elif source == 'bearingdepot': source_id = 23 elif source == 'mrosupply': source_id = 24 elif source == 'abf_store': source_id = 25 elif source == 'y-ic': source_id = 26 elif source == 'icminer': source_id = 27 elif source == 'digchip': source_id = 28 elif source == 'octopart': source_id = 29 elif source == 'element14': source_id = 30 elif source == 'futureelectronics': source_id = 31 elif source == 'utsource': source_id = 32 elif source == 'verical': source_id = 33 elif source == 'worldwayelec': source_id = 34 elif source == 'findchips': source_id = 35 elif source == 'grainger': source_id = 36 elif source == 'gordonelectricsupply': source_id = 37 elif source == 'nexinstrument': source_id = 38 elif source == 'rexelusa': source_id = 39 elif source == 'norgren': source_id = 40 elif source == 'instrumart': source_id = 41 elif source == 'directindustry': source_id = 42 elif source == 'automationdirect': source_id = 43 elif source == 'rockwellautomation': source_id = 44 elif source == 'penntoolco': source_id = 167 elif source == 'tools': source_id = 166 elif source == 'allindustrial': source_id = 165 elif source == 'secotools': source_id = 164 elif source == 'ferguson': source_id = 163 elif source == 'sandvik': source_id = 162 elif source == 'globalspec': source_id = 161 elif source == 'keyence': source_id = 160 elif source == 'automationcontrolandproject': source_id = 159 elif source == 'szlcsc': source_id = 158 elif source == 'tradeindia': source_id = 157 elif source == 'pbtech': source_id = 156 elif source == 'tecisoft': source_id = 155 elif source == 'industrystock': source_id = 154 elif source == 'startech-bd': source_id = 153 elif source == 'startech': source_id = 152 elif source == 'mtech-services': source_id = 151 elif source == 'platinum-international': source_id = 150 elif source == 'im-tek': source_id = 149 elif source == 'endress': source_id = 148 elif source == 'distrelec': source_id = 147 elif source == 'router-switch': source_id = 146 elif source == 'omadanetworks': source_id = 145 elif source == 'tektronix': source_id = 144 elif source == 'fluke': source_id = 143 elif source == 'ittbiw': source_id = 142 elif source == 'ittaerospace': source_id = 141 elif source == 'rutronik24': source_id = 140 elif source == 'beckhoff': source_id = 139 elif source == 'phoenixcontact': source_id = 138 elif source == 'omron': source_id = 137 elif source == 'made-in-china': source_id = 136 elif source == 'cdr': source_id = 135 elif source == 'zte': source_id = 134 elif source == 'huawei': source_id = 133 elif source == 'zoro': source_id = 132 elif source == '3m': source_id = 131 elif source == 'schmersal': source_id = 130 elif source == 'quicktimeonline': source_id = 129 elif source == 'thomasnet': source_id = 128 elif source == 'factory/ti': source_id = 127 elif source == 'factory/nxp': source_id = 126 elif source == 'factory/estore.st': source_id = 125 elif source == 'factory/infineon': source_id = 124 elif source == 'factory/microchip': source_id = 123 elif source == 'factory/analog': source_id = 122 elif source == 'factory/allsensors': source_id = 121 elif source == 'factory/aukcokr': source_id = 120 elif source == 'factory/bhfuse': source_id = 119 elif source == 'factory/schaeffler': source_id = 118 elif source == 'factory/nsk': source_id = 117 elif source == 'factory/smwiko_bearing': source_id = 116 elif source == 'factory/ntn-snr': source_id = 115 elif source == 'factory/skf': source_id = 114 elif source == 'factory/chipsea': source_id = 113 elif source == 'factory/pctransformer': source_id = 112 elif source == 'factory/minicircuits': source_id = 111 elif source == 'factory/sdicmicro': source_id = 110 elif source == 'factory/alder': source_id = 109 elif source == 'factory/antaira': source_id = 108 elif source == 'factory/apro_tw': source_id = 107 elif source == 'factory/aptchip': source_id = 106 elif source == 'factory/canopus_hk': source_id = 105 elif source == 'factory/cap-xx': source_id = 104 elif source == 'factory/ce_bridge': source_id = 103 elif source == 'factory/cldkj': source_id = 102 elif source == 'factory/cnbbj': source_id = 101 elif source == 'factory/cresemi': source_id = 100 elif source == 'factory/cschip': source_id = 99 elif source == 'factory/figaro': source_id = 98 elif source == 'factory/firstohm': source_id = 97 elif source == 'factory/gigadevice': source_id = 96 elif source == 'factory/gjsemi': source_id = 95 elif source == 'factory/hanrun': source_id = 94 elif source == 'factory/hdgcconn': source_id = 93 elif source == 'factory/hinodedenki': source_id = 92 elif source == 'factory/hisense': source_id = 91 elif source == 'factory/hlwdz': source_id = 90 elif source == 'factory/honor-ic': source_id = 89 elif source == 'factory/hyecap': source_id = 88 elif source == 'factory/ilshin': source_id = 87 elif source == 'factory/jbcapacitors': source_id = 86 elif source == 'factory/kimtigo': source_id = 85 elif source == 'factory/kodenshi': source_id = 84 elif source == 'factory/ktsemi': source_id = 83 elif source == 'factory/led': source_id = 82 elif source == 'factory/macromatic': source_id = 81 elif source == 'factory/megatron': source_id = 80 elif source == 'factory/mgpower': source_id = 79 elif source == 'factory/novatel': source_id = 78 elif source == 'factory/onewave': source_id = 77 elif source == 'factory/prolightopto': source_id = 76 elif source == 'factory/sanan_ic': source_id = 75 elif source == 'factory/samwinsemi': source_id = 74 elif source == 'factory/sepa_europe': source_id = 73 elif source == 'factory/siansemi': source_id = 72 elif source == 'factory/silicontra': source_id = 71 elif source == 'factory/slsemicon': source_id = 70 elif source == 'factory/sunitec-cn': source_id = 69 elif source == 'factory/supersemi': source_id = 68 elif source == 'factory/tonver': source_id = 67 elif source == 'factory/visystems': source_id = 66 elif source == 'factory/wcmagnetics': source_id = 65 elif source == 'factory/diodes': source_id = 64 elif source == 'factory/onsemi': source_id = 63 elif source == 'factory/panasonic_industry': source_id = 62 elif source == 'factory/qualcomm': source_id = 61 elif source == 'factory/silabs': source_id = 60 elif source == 'factory/renesas': source_id = 59 elif source == 'factory/tdk': source_id = 58 elif source == 'factory/te': source_id = 57 elif source == 'factory/vishay': source_id = 56 elif source == 'factory/littelfuse': source_id = 55 elif source == 'factory/molex': source_id = 54 elif source == 'factory/murata': source_id = 53 elif source == 'factory/nexperia': source_id = 52 elif source == 'factory/nvidia': source_id = 51 elif source == 'factory/honeywell': source_id = 50 elif source == 'factory/intel': source_id = 49 elif source == 'factory/kemet': source_id = 48 elif source == 'factory/kyocera': source_id = 47 elif source == 'factory/bourns': source_id = 46 elif source == 'factory/powertechcontrols': source_id = 45 else: source_id = 0 return source_id 将以上方法转化为key为source_id,value为source的字典
09-24
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值