|
看來,這個__jump_table的item會將jmpq 40066c修改為jmpq 40066e,從而實現了 永久靜態分支。
最后,__jump_table的內容就是在每一個內聯的static_branch_true函數中被填充的,該參數的參數是一個key,它指示了branch entry三元組中的最后一個字段。
static_branch_true函數的內聯非常重要,它實現了將branch entry三元組數據直接插入到__jump_table section,而不是共享同一個函數體。
總之,如果你看代碼還是覺得別扭,手敲一遍我上面的示例程序,就理解了,內核里面的也就這么回事,總結一句話:
依靠運行時修改代碼而不是依靠狀態數據來控制執行流。
我不知道這對于所謂的 通用計算機程序設計 是不是反其道而行之,但在效果上,它確實是一匹好馬。不禁感嘆, 硬編碼讀起來是丑陋的,但執行起來卻是高效的!
靈活性換高效率,得不償失,我是這樣以為。jump label的本質在于, 將同時刻存在的一套代碼沿著時間線在可預期的固定時間點上分割成邏輯相反的兩套代碼。
E4809-770-062-B S7-300系列型號大全:
定貨號 注釋
電源模板
6ES7 307-1BA00-0AA0 電源模塊(2A)
6ES7307-1EA00-0AA0 電源模塊(5A)
6ES7307-1KA01-0AA0 電源模塊(10A)
CPU
6ES7312-1AE13-0AB0 CPU312,32K內存
6ES7312-5BE03-0AB0 CPU312C,32K內存 10DI/6DO
6ES7313-5BF03-0AB0 CPU313C,64K內存 24DI/16DO / 4AI/2AO
6ES7313-6BF03-0AB0 CPU313C-2PTP,64K內存 16DI/16DO
6ES7313-6CF03-0AB0 CPU313C-2DP,64K內存 16DI/16DO
6ES7314-1AG13-0AB0 CPU314,96K內存
6ES7314-6BG03-0AB0 CPU314C-2PTP 96K內存 24DI/16DO / 4AI/2AO
6ES7314-6CG03-0AB0 CPU314C-2DP 96K內存 24DI/16DO / 4AI/2AO
6ES7315-2AG10-0AB0 CPU315-2DP, 128K內存
6ES7315-2EH13-0AB0 CPU315-2 PN/DP, 256K內存
6ES7317-2AJ10-0AB0 CPU317-2DP,512K內存
6ES7317-2EK13-0AB0 CPU317-2 PN/DP,1MB內存
6ES7318-3EL00-0AB0 CPU319-3 PN/DP,1.4M內存
內存卡
6ES7953-8LF20-0AA0 SIMATIC Micro內存卡 64kByte(MMC)
6ES7953-8LG11-0AA0 SIMATIC Micro內存卡128KByte(MMC)
6ES7953-8LJ20-0AA0 SIMATIC Micro內存卡512KByte(MMC)
6ES7953-8LL20-0AA0 SIMATIC Micro內存卡2MByte(MMC)
6ES7953-8LM20-0AA0 SIMATIC Micro內存卡4MByte(MMC)
6ES7953-8LP20-0AA0 SIMATIC Micro內存卡8MByte(MMC)
開關量模板
6ES7321-1BH02-0AA0 開入模塊(16點,24VDC)
6ES7321-1BH10-0AA0 開入模塊(16點,24VDC)
6ES7321-1BH50-0AA0 開入模塊(16點,24VDC,源輸入)
6ES7321-1BL00-0AA0 開入模塊(32點,24VDC)
6ES7321-7BH01-0AB0 開入模塊(16點,24VDC,診斷能力)
6ES7321-1EL00-0AA0 開入模塊(32點,120VAC)
6ES7321-1FF01-0AA0 開入模塊(8點,120/230VAC)
6ES7321-1FF10-0AA0 開入模塊(8點,120/230VAC)與公共電位單獨連接
6ES7321-1FH00-0AA0 開入模塊(16點,120/230VAC)
6ES7321-1CH00-0AA0 開入模塊(16點,24/48VDC)
6ES7321-1CH20-0AA0 開入模塊(16點,48/125VDC)
6ES7322-1BH01-0AA0 開出模塊(16點,24VDC)
6ES7322-1BH10-0AA0 開出模塊(16點,24VDC)高速
6ES7322-1CF00-0AA0 開出模塊(8點,48-125VDC)
6ES7322-8BF00-0AB0 開出模塊(8點,24VDC)診斷能力
6ES7322-5GH00-0AB0 開出模塊(16點,24VDC,獨立接點,故障保護)
6ES7322-1BL00-0AA0 開出模塊(32點,24VDC)
6ES7322-1FL00-0AA0 開出模塊(32點,120VAC/230VAC)
6ES7322-1BF01-0AA0 開出模塊(8點,24VDC,2A)
6ES7322-1FF01-0AA0 開出模塊(8點,120V/230VAC)
6ES7322-5FF00-0AB0 開出模塊(8點,120V/230VAC,獨立接點)
6ES7322-1HF01-0AA0 開出模塊(8點,繼電器,2A)
6ES7322-1HF10-0AA0 開出模塊(8點,繼電器,5A,獨立接點)
6ES7322-1HH01-0AA0 開出模塊(16點,繼電器)
6ES7322-5HF00-0AB0 開出模塊(8點,繼電器,5A,故障保護)
6ES7322-1FH00-0AA0 開出模塊(16點,120V/230VAC)
6ES7323-1BH01-0AA0 8點輸入,24VDC;8點輸出,24VDC模塊
6ES7323-1BL00-0AA0 16點輸入,24VDC;16點輸出,24VDC模塊
模擬量模板
6ES7331-7KF02-0AB0 模擬量輸入模塊(8路,多種信號)
6ES7331-7KB02-0AB0 模擬量輸入模塊(2路,多種信號)
6ES7331-7NF00-0AB0 模擬量輸入模塊(8路,15位精度)
6ES7331-7NF10-0AB0 模擬量輸入模塊(8路,15位精度)4通道模式
6ES7331-7HF01-0AB0 模擬量輸入模塊(8路,14位精度,快速)
6ES7331-1KF01-0AB0 模擬量輸入模塊(8路, 13位精度)
6ES7331-7PF01-0AB0 8路模擬量輸入,16位,熱電阻
6ES7331-7PF11-0AB0 8路模擬量輸入,16位,熱電偶
6ES7332-5HD01-0AB0 模擬輸出模塊(4路)
6ES7332-5HB01-0AB0 模擬輸出模塊(2路)
6ES7332-5HF00-0AB0 模擬輸出模塊(8路)
6ES7332-7ND02-0AB0 模擬量輸出模塊(4路,15位精度)
6ES7334-0KE00-0AB0 模擬量輸入(4路RTD)/模擬量輸出(2路)
6ES7334-0CE01-0AA0 模擬量輸入(4路)/模擬量輸出(2路)
附件
6ES7365-0BA01-0AA0 IM365接口模塊
6ES7360-3AA01-0AA0 IM360接口模塊
6ES7361-3CA01-0AA0 IM361接口模塊
6ES7368-3BB01-0AA0 連接電纜 (1米)
6ES7368-3BC51-0AA0 連接電纜 (2.5米)
6ES7368-3BF01-0AA0 連接電纜 (5米)
6ES7368-3CB01-0AA0 連接電纜 (10米)
6ES7390-1AE80-0AA0 導軌(480mm)
6ES7390-1AF30-0AA0 導軌(530mm)
6ES7390-1AJ30-0AA0 導軌(830mm)
6ES7390-1BC00-0AA0 導軌(2000mm)
6ES7392-1AJ00-0AA0 20針前連接器
6ES7392-1AM00-0AA0 40針前連接器
功能模板
6ES7350-1AH03-0AE0 FM350-1 計數器功能模塊
6ES7350-2AH00-0AE0 FM350-2 計數器功能模塊
6ES7351-1AH01-0AE0 FM351 定位功能模塊
6ES7352-1AH02-0AE0 FM352 電子凸輪控制器+組態包光盤
6ES7355-0VH10-0AE0 FM355C 閉環控制模塊
6ES7355-1VH10-0AE0 FM355S 閉環控制系統
6ES7355-2CH00-0AE0 FM355-2C 閉環控制模塊
6ES7355-2SH00-0AE0 FM355-2S 閉環控制模塊
6ES7338-4BC01-0AB0 SM338絕對位置輸入模塊
6ES7352-5AH00-0AE0 FM352-5高速布爾處理器
6ES7352-5AH00-7XG0 FM352-5功能軟件包
通訊模板
6ES7340-1AH02-0AE0 CP340 通訊處理器(RS232)
6ES7340-1BH02-0AE0 CP340 通訊處理器(20mA/TTY)
6ES7340-1CH02-0AE0 CP340 通訊處理器(RS485/RS422)
6ES7341-1AH01-0AE0 CP341 通訊處理器(RS232)
6ES7341-1BH01-0AE0 CP341 通訊處理器(20mA/TTY)
6ES7341-1CH01-0AE0 CP341 通訊處理器(RS485/RS422)
6ES7870-1AA01-0YA0 可裝載驅動 MODBUS RTU 主站
6ES7870-1AB01-0YA0 可裝載驅動 MODBUS RTU 從站
6ES7902-1AB00-0AA0 RS232電纜 5m
6ES7902-1AC00-0AA0 RS232電纜 10m
6ES7902-1AD00-0AA0 RS232電纜 15m
6ES7902-2AB00-0AA0 20mA/TTY電纜 5m
6ES7902-2AC00-0AA0 20mA/TTY電纜 10m
6ES7902-2AG00-0AA0 20mA/TTY電纜 50m
6ES7902-3AB00-0AA0 RS485/RS422電纜 5m
6ES7902-3AC00-0AA0 RS485/RS422電纜 10m
6ES7902-3AG00-0AA0 RS485/RS422電纜 50m
6GK7342-5DA02-0XE0 CP342-5通訊模塊
6GK7342-5DF00-0XE0 CP342-5 光纖通訊模塊
6GK7343-5FA01-0XE0 CP343-5通訊模塊
6GK7343-1EX30-0XE0 CP343-1 以太網通訊模塊
6GK7343-1EX21-0XE0 CP343-1 以太網通訊模塊
6GK7343-1CX00-0XE0 CP343-1 以太網通訊模塊
6GK7343-1CX10-0XE0 CP343-1 以太網通訊模塊
6GK7343-1GX20-0XE0 CP343-1 IT 以太網通訊模塊
6GK7343-1GX21-0XE0 CP343-1 IT 以太網通訊模塊(支持PROFINET)
6GK7343-1HX00-0XE0 CP343-1PN PROFINET以太網通訊模塊
6GK7343-2AH00-0XA0 CP343-2 AS-Interface
SIMATIC S7-300 系列
PS307 電 源 模 塊
6ES7307-1BA00-0AA0 120/230VAC輸入,24VDC輸出, 2A
6ES7307-1EA00-0AA0 120/230VAC輸入,24VDC輸出, 5A
6ES7307-1KA01-0AA0 120/230VAC輸入,24VDC輸出, 10A
中 央 處 理 單 元 CPU
6ES7312-1AE13-0AB0 CPU312,32K工作內存,位操作時間0.2μs,DI/DO256點,AI/AO64點
6ES7312-5BE03-0AB0 CPU312C,32K工作內存,位操作時間0.2μs,集成10DI/6DO,2通道高速計數,2通道PWM輸出,2通道頻率測量,PID調節;DI/DO256點,AI/AO64點,1個40針前連接器(另購)
6ES7313-5BF03-0AB0 CPU313C,64K工作內存,位操作時間0.1μs,集成24DI/16DO,4AI/2AO,3通道高速計數,2通道PWM輸出,2通道頻率測量,PID調節;DI/DO1016/1008點,AI/AO253/250點,2個40針前連接器(另購)
6ES7313-6BF03-0AB0 CPU313C-2PtP,64K工作內存,位操作時間0.1μs,RS485點對點接口,集成16DI/16DO,3通道高速計數,2通道PWM輸出,2通道頻率測量,PID調節;DI/DO1008點,AI/AO248點,1個40針前連接器(另購)
6ES7313-6CF03-0AB0 CPU313C-2DP,64K工作內存,位操作時間0.1μs,PROFIBUS-DP主/從接口,集成16DI/16DO,3通道高速計數,2通道PWM輸出,2通道頻率測量,PID調節;DI/DO1008
E4809-770-062-B
OMRON F350-C41 NSFP F350C41
MODICON 372-SPU-78001PSTE NSFP 372SPU78001PSTE
GENERAL ELECTRIC THPC-3630BG3T USPP THPC3630BG3T
ITE SIEMENS L3D340ZHCXXXXBA NSFP L3D340ZHCXXXXBA
ALLEN BRADLEY 1336F-B125-AE-EN USPP 1336FB125AEEN
FANUC A06B-6044-H130 NSFP A06B6044H130
COLONIAL DBMM-110-009 NSFP DBMM110009
SIEMENS 6ES7-671-0CC01-0YX0 NSFP 6ES76710CC010YX1
SIEMENS 6ES7-671-0RC02-0YX0CH NSFP 6ES76710RC020YX0
SAGINAW MACHINE CO 000W544870 NSFP 000W544870
INDRAMAT RAC3.5-150-460--A00-Z1-220 NSFP RAC35150460A00
DATA I/O 991-0014-054 USPP 9910014054
ITE SIEMENS L3F340ZGCXXXXBN NSFP L3F340ZGCXXXXBN
RELIANCE ELECTRIC SA3000DC240 USPP SA3000DC240
CUTLER HAMMER W201K6CFZ1 USPP W201K6CFZ1
RELIANCE ELECTRIC 57552-C USPP 57552C
INDRAMAT RAC2.2-200-460-A00-W1 USPP RAC22200460A00W1
SIEMENS 6ES5-948-3UA21 USPP 6ES59483UA21
WESTINGHOUSE 798A243G01 USPP 798A243G01
SIEMENS 6SE9531-7DK40 USPP 6SE95317DK40
INDRAMAT 2AD200C-B35OB1-AS03-B2V1 USPP 2AD200CB35OB1AS0
MODICON 384B USPP 384B
MODICON AS-384B-000 USPP AS384B000
MODICON AS-384B-204 USPP AS384B204
TELEMECANIQUE 372-SPU-474-21-V26 NSFP 372SPU47421V26
RELIANCE ELECTRIC 3RA2008 USPP 3RA2008
SIEMENS 6SE9531-0DK40 USPP 6SE95310DK40
BOSCH 1070071339 NSFP 1070071339
SQUARE D 112T6HCU NSFP 112T6HCU
ALLEN BRADLEY 5250-LP4 NSFP 5250LP4
ALLEN BRADLEY 1395-A78-E2-P50 USPP 1395A78E2P50
REXROTH 1-070-083-221 NSPP 1070083221
GE FANUC 6KDV32000Q2B70 NSFP 6KDV32000Q2B70
SIEMENS 3RW2240-0CB15 USPP 3RW22400CB15
ALLEN BRADLEY 1395-A77N-E1-P50 USPP 1395A77NE1P50
SEW EURODRIVE KH47-TDT71D6 NSFP KH47TDT71D6
ALLEN BRADLEY 1756-L1M3 FNFP 1756L1M3
FANUC A06B-0325-B033 USPP A06B0325B033
SIEMENS 6ES7-417-4XL04-0AB0 NSFP 6ES74174XL040AB0
ITE SIEMENS HFC368S NSFP HFC368S
SYMAX 8055-SCP-453 USPP 8055SCP453
REXROTH 1-070-083-221 USPP 1070083221
ALLEN BRADLEY 150-A135NBDD-8B4 NSFP 150A135NBDD8B4
OMRON F400-C10E NSFP F400C10E
MODICON P5-984B-132 USPP P5984B132
BAILEY CONTROLS BRC-100 NSFP BRC100
VICTOREEN 876A-1 USPP 876A1
ALLEN BRADLEY 5250-LP3 NSFP 5250LP3
ALLEN BRADLEY 1336VT-B100-EOT-L3-S1 USPP 1336VTB100EOTL
ALLEN BRADLEY 5730-CPU1 USPP 5730CPU1
SIEMENS 6ES7-671-0CC010-YX0CH NSFP 6ES76710CC010YX0
BAILEY CONTROLS BRC-100 NSPP BRC100
SIEMENS 6GF2005-0BC01 USPP 6GF20050BC01
SAGINAW AV-486506 NSPP AV486506
ALLEN BRADLEY 150-A500NBD NSFP 150A500NBD
SIEMENS 6SE6-430-2UD42-5GA0 NSFP 6SE64302UD425GA0
GE FANUC IC600RP551 USPP IC600RP551
ALLEN BRADLEY 1785-L40C/E NSFP 1785L40CE
XYCOM 4860-101B USPP 4860101B
ITE SIEMENS L2D325VDXXXXXBA NSFP L2D325VDXXXXXBA
BAILEY CONTROLS P-HC-BRC-40000000 USPP PHCBRC40000000
INDRAMAT DDC01.2.N050C-RL01-01-FW USPP DDC012N050CRL010
ASEA BROWN BOVERI 6214BZ10110G USPP 6214BZ10110G
REXROTH 0-608-600-004 USPP 0608600004
FISHER ROSEMOUNT 36A8448-L5A USPP 36A8448L5A
FISHER ROSEMOUNT DM6001X1-C1 USPP DM6001X1C1
ALLEN BRADLEY 1336F-B125-AA-EN-GM1-HCS2 USPP 1336FB125A
MODICON 372-SPU-474-11-V26 NSFP 372SPU47411V26
ALLEN BRADLEY 150-A360NBDD NSPP 150A360NBDD
SIEMENS 6FX1-113-0AA01 NSFP 6FX11130AA01
ALLEN BRADLEY 803-PL6 NSFP 803PL6
ALLEN BRADLEY 150-A135NBDD-8B4 USPP 150A135NBDD8B4
ASEA BROWN BOVERI DPH50051 NSFP DPH50051
ALLEN BRADLEY 150-B500NBDB NSFP 150B500NBDB
ALLEN BRADLEY 1785-L60L/E NSPP 1785L60LE
SYMAX 8020-SCP-424 NSPP 8020SCP424
ALLEN BRADLEY 1785-L86B USPP 1785L86B
ALLEN BRADLEY 1336F-B125-AA-EN-GM1-HAS2-L6 USPP 1336FB1
FANUC A06B-6044-H026 USPP A06B6044H026
BAILEY CONTROLS BRC-100 USPP BRC100
MICROSWITCH 82114805-501 USPP 82114805501
ALLEN BRADLEY 1336VT-B250-EAW-FA2-L3-S1 USPP 1336VTB250
ASEA BROWN BOVERI 6024BP10300C NSFP 6024BP10300C
ASEA BROWN BOVERI P-HC-BRC-30000000 NSFP PHCBRC30000000
ALLEN BRADLEY 1336VT-B125-EAT-L3 USPP 1336VTB125EATL3
TAYLOR ELECTRONICS 6204BZ10100D USPP 6204BZ10100D
BOSCH 1070077920-100 USPP 1070077920100
FANUC A06B-6053-H080 USPP A06B6053H080
CUTLER HAMMER CPS500600DSB NSFP CPS500600DSB
GENERAL ELECTRIC 803612-RE USPP 803612RE
SIEMENS 6SE3225-5DJ40 USPP 6SE32255DJ40
EUROTHERM DRIVES 620STD/0750/400/0020/UK/ENW/0000/000/B
WINSMITH A9X298X0HC NSFP A9X298X0HC
ASEA BROWN BOVERI PM665 NSFP PM665
FANUC A06B-0817-B001 USPP A06B0817B001
ALLEN BRADLEY 8520-4S10A-BATEX4S-1-2-3-4-5-7 USPP 85204
ASEA BROWN BOVERI DPH50051 NSPP DPH50051
GENERAL ELECTRIC L90-C00-HCH-F8A-H6C-LXX-N6S-S6U-U6U-W7
SIEMENS 6SE7-038-2EH85-0AA0 USPP 6SE70382EH850AA0
SIEMENS 6SE9-221-5DC40 NSFP 6SE92215DC40
FANUC A06B-1030-B200 NSFP A06B1030B200
MAGNETEK VCD703B150 USPP VCD703B150
MODICON AS-584L-231 NSFP AS584L231
BAILEY CONTROLS IMMFC05 NSFP IMMFC05
SIEMENS SB3 NSFP SB3
ALLEN BRADLEY 1785-L60L/E USPP 1785L60LE
SQUARE D HU663DS NSFP HU663DS
CUTLER HAMMER W201K5CF NSFP W201K5CF
SYMAX 8055-SCP-655 USPP 8055SCP655
ASEA BROWN BOVERI 57310001-CX/2 USPP 57310001CX2
ASEA BROWN BOVERI 57310001-CX/5 USPP 57310001CX5
ALLEN BRADLEY 1785-V40L NSFP 1785V40L
ROACH CONVEYOR 266775-0010 USPP 2667750010
ALLEN BRADLEY 150-A500NBD USPP 150A500NBD
GENERAL ELECTRIC F47MI851110 USPP F47MI851110
FOXBORO 2AO-L2C-D USPP 2AOL2CD
ALLEN BRADLEY 1785-L40C/E USPP 1785L40CE
ALLEN BRADLEY 1336-B200-EOJ USPP 1336B200EOJ
BOSCH 1070075543-101 USPP 1070075543101
COOPER TOOLS 3BA-3B260A-2/3K2A-3ZA USPP 3BA3B260A23K2A3
ALLEN BRADLEY 1756-L63 FNFP 1756L63
MOTOMAN ROBOTICS RM6210 NSPP RM6210
ALLEN BRADLEY 1336VT-B075-EOT-L3 -S1 USPP 1336VTB075EOT
TRICONEX 4507 USPP 4507
GENERAL ELECTRIC 36D877001ACG01 USPP 36D877001ACG01
FANUC A06B-6041-H008 USPP A06B6041H008
SIEMENS 6ES5-955-3LF12 USPP 6ES59553LF12
ALLEN BRADLEY 1756-L55M14 FNFP 1756L55M14
GENERAL ELECTRIC DLP3512CDH USPP DLP3512CDH
FANUC A06B-6044-H312 NSFP A06B6044H312
ASEA BROWN BOVERI DPH-15051 NSFP DPH15051
COOPER TOOLS 2BA-2B150A-2/2K2A-2ZA USPP 2BA2B150A22K2A2
SIEMENS 6FX1-113-0AA02 USPP 6FX11130AA02
TAYLOR ELECTRONICS 6204BZ10101G USPP 6204BZ10101G
SEW EURODRIVE 31C370-503-4-00 NSFP 31C370503400
ALLEN BRADLEY 1785-L80E/E USPP 1785L80EE
GENERAL ELECTRIC L90-A00-HCH-F8A-H6C-LXX-N6B-SXX-U6H-W7
INDRAMAT DKS01.1-W100A-DL02-01.FW USPP DKS011W100ADL020
ALLEN BRADLEY 1395-A75-C4-P10-X1 USPP 1395A75C4P10X1
HONEYWELL 51305430-100 USPP 51305430100
SIEMENS 6FM1-470-7AA25 USPP 6FM14707AA25
ALLEN BRADLEY 1394-SJT10-C-RL NSFP 1394SJT10CRL
FANUC A06B-0303-B131 USPP A06B0303B131
ALLEN BRADLEY 1336VT-B100-EO2-L2 USPP 1336VTB100EO2L2
HONEYWELL 30731565-006 USPP 30731565006
DYNAMATIC 15-886-3 NSFP 158863
RELIANCE ELECTRIC 3RA2015 USPP 3RA2015
INDRAMAT RAC-3.5-100-460-A01-W1-220 USPP RAC35100460A01
SYMAX 8020-SCP-631 USPP 8020SCP631
SYMAX 8020-SCP-644 USPP 8020SCP644
SQUARE D 8639NSA4SSPL1SPL2 NSPP 8639NSA4SSPL1SPL
|