int min=0x7FFFFFFE;
int max=0x80000003;
1) min > 0?
2) max > 0?
3) max > min?
4) max - min =?
5) max - min > 0?
2023年1月14日 星期六
[C] subtraction and comparison
2023年1月7日 星期六
GCC optimizations
? conditional (ternary) operators 和 if-else statements 的效能比較
參考
https://lirobo.blogspot.com/2009/07/gcc-inline-assembly.html
https://lirobo.blogspot.com/2013/12/inline.html
-O0 或預設
-O1, -O
-O2
-O3
-Os
-Ofast
-f
-Q --help=optimizers
http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
http://gcc.gnu.org/onlinedocs/gcc/Target-Builtins.html
http://gcc.gnu.org/onlinedocs/gcc/Pragmas.html
http://gcc.gnu.org/onlinedocs/gcc/Inline.html
2022年12月17日 星期六
M.2 interfce
M.2 是電腦內部擴充卡規格,可提供 PCIe、SATA 和 USB 等介面的裝置,如 Wi-Fi、SSD 等。
M.2 模組長方形,一端有雙面金手指接腳,另一端有半圓形孔,允許寬度有 12、16、22、和 30 mm,長度有 16、26、30、38、42、60、80、和 110 mm,例如模組碼 2280 代表 22 mm 寬、80 mm 長。接腳雙面共有 75 個位置,最多使用 67 pins,0.5 mm pitch、背面插中間。
考量 PCIe/SATA/USB 等各自介面的訊號和電氣特性不同,定義了多組的插槽防呆鍵位 (目前實體產品有 A/B/E/M key) 來避免誤插而導致運作不正常或損壞。
Wi-Fi/Bluetooth、GPS 或 NFC 介面卡等 M.2 模組,原先多屬於 USB 介面,主要採用 A/E key。
目前 M.2 SSD 大多是 M key 2280 模組,採用 NVMe PCIe x4。而 B+M 模組有 2242 和 2280,主要是 SATA、少數 PCIe x2。此外類似的有 mSATA、Apple 用的。
支援 M.2 SSD 插槽有兩種類型:B key (另稱socket 2) 和 M key (另稱socket 3)。
| 設備 | 插座 | Key | SSD 介面 | |
|---|---|---|---|---|
| 筆電 | 2 | B | 可能僅支援 SATA | PCIe ×2, SATA |
| 3 | M | PCIe or SATA | PCIe ×4, SATA |
| 插座 | Key | 大小 | 裝置 | |
|---|---|---|---|---|
| ? | A | 1630, 2230, 3030 | WiFi, Bluetooth, NFC and/or WiGig | 2 of PCIe ×1, USB 2.0, I2C and DP ×4 |
| Socket 1 | E | 1630, 2230, 3030 | WiFi, Bluetooth, NFC and/or GPS/GNSS | 2 of PCIe x1, USB 2.0, I2C, SDIO, UART, PCM and CNVi |
| Socket 2 | B | 3042, 2230, 2242, 2260, 2280, 22110 | 3G/LTE + GPS/GNSS or SSD | PCIe ×2, SATA, USB 2.0 and 3.0, audio, UIM, HSIC, SSIC, I2C and SMBus |
| Socket 3 | M | 2242, 2260, 2280, 22110 | SSD with PCIe or SATA interface | PCIe ×4, SATA and SMBus |
SATA SSD 是 B+M-keyed,可放在 B-keyed 或 M-keyed 插座
NVMe PCIe x4 SSD 是 M-keyed,不能放在 B-keyed 插座
| Pin | A | E | B | M | B 說明 |
|---|---|---|---|---|---|
| 1 | GND | GND | CONFIG_3 | CONFIG_3 | |
| 2 | 3.3V | 3.3V | 3.3V | 3.3 V | |
| 3 | USB D+ | USB D+ | GND | GND | |
| 4 | 3.3V | 3.3V | 3.3V | 3.3V | |
| 5 | USB D- | USB D- | GND | PERn3 | |
| 6 | LED1# | LED1# | FULL CARD POWER OFF# | N/A | 通知 Host |
| 7 | GND | GND | USB_D+ | PERp3 | |
| 8 | A | PCM_CLK/I2S SCK | W_DISABLE# | N/A | 通知 Host |
| 9 | SDIO CLK/SYSCLK | USB_D- | GND | ||
| 10 | PCM SYNC/I2S WS | GPIO_9/ DAS/DSS | DAS/DSS | ||
| 11 | SDIO CMD | GND | PETn3 | ||
| 12 | PCM_IN/I2S_IN | x | 3.3 V | ||
| 13 | SDIO DATA0 | PETp3 | |||
| 14 | PCM_OUT/I2S SD_OUT | 3.3 V | |||
| 15 | SDIO DATA1 | GND | |||
| 16 | LED2# | LED2# | 3.3V | ||
| 17 | A | SDIO DATA2 | PERn2 | ||
| 18 | GND | GND | 3.3 V | ||
| 19 | A | SDIO DATA3 | PERp2 | ||
| 20 | A | UART WAKE# | GPIO_5 | N/A | |
| 21 | A | SDIO WAKE# | CONFIG_0 | CONFIG_0 | |
| 22 | A | UART RxD | GPIO_6 | N/A | |
| 23 | A | SDIO_RESET#/ TX_BLANKING | GPIO_11 | PETn2 | |
| 24 | A | E | GPIO_7 | N/A | |
| 25 | A | DPR | PETp2 | 模組輸出 | |
| 26 | A | GPIO_10 | N/A | ||
| 27 | A | GND | GND | ||
| 28 | A | GPIO_8 | N/A | ||
| 29 | A | PERn1 / USB RX- /SSIC-RxN | PERn1 | or USB 3.0 RX- | |
| 30 | A | UIM-RESET | N/A | ||
| 31 | A | PERp1 / USB RX+ / SSIC-RxP | PERp1 | or USB 3.0 RX+ | |
| 32 | A | UART TxD | UIM-CLK | N/A | Host 輸出 |
| 33 | GND | GND | GND | GND | |
| 34 | A | UART CTS | UIM-DATA | N/A | |
| 35 | PETp0 | PETp0 | PETn1 / USB TX- / SSIC-TxN | PETn1 | or USB 3.0 TX- |
| 36 | A | UART RTS | UIM-PWR | N/A | Host 輸出 |
| 37 | PETn0 | PETn0 | PETp1 / USB TX+ / SSIC-TxP | PETp1 | or USB 3.0 TX+ |
| 38 | Vendor defined | Vendor defined | DEVSLP | DEVSLP | |
| 39 | GND | GND | GND | GND | |
| 40 | Vendor defined | Vendor defined | GPIO_0/SMB_CLK | N/A | |
| 41 | PERp0 | PERp0 | SATA-B+/PERn0 | SATA-B+/PERn0 | |
| 42 | Vendor defined | Vendor defined | GPIO_1/SMB_DATA | N/A | |
| 43 | PERn0 | PERn0 | SATA-B-/PERp0 | SATA-B-/PERp0 | |
| 44 | COEX3 | COEX3 | GPIO_2/ALERT# | N/A | |
| 45 | GND | GND | GND | GND | |
| 46 | COEX2 | COEX_RxD | GPIO_3 | N/A | |
| 47 | PEFCLKP0 | PEFCLKP0 | SATA-A-/PETn0 | SATA-A-/PETn0 | |
| 48 | COEX1 | COEX_TxD | GPIO_4 | N/A | |
| 49 | PEFCLKN0 | PEFCLKN0 | SATA-A+/PETp0 | SATA-A+/PETp0 | |
| 50 | SUSCLK | SUSCLK | PERST# | PERST# | |
| 51 | GND | GND | GND | GND | |
| 52 | PERST0# | PERST0# | CLKREQ# | CLKREQ# | Reference clock request signal |
| 53 | CLKREQ0# | CLKREQ0# | REFCLKN | REFCLKN | PCIe Reference Clock signals (100 MHz) |
| 54 | W_DISABLE2# | W_DISABLE2# | PEWAKE# | PEWAKE# | PCIe WAKE# Open Drain with pull up on platform. Active Low. |
| 55 | PEWake0# | PEWake0# | REFCLKP | REFCLKP | PCIe Reference Clock signals (100 MHz) |
| 56 | W_DISABLE1# | W_DISABLE1# | MFG1 | MFG1 | |
| 57 | GND | GND | GND | GND | |
| 58 | SMB_DATA | I2C_DATA | MFG2 | MFG2 | |
| 59 | Reserved | Reserved/PETp1 | ANTCTL0 | x | Host 輸出 |
| 60 | SMB_CLK | I2c_CLK | COEX3 | Host 輸出 | |
| 61 | Reserved | Reserved/PETn1 | ANTCTL1 | Host 輸出 | |
| 62 | ALERT# | ALERT# | COEX_TXD | Host 輸出 | |
| 63 | GND | GND | ANTCTL2 | Host 輸出 | |
| 64 | Reserved | Reserved | COEX_RXD | Host 輸出 | |
| 65 | Reserved | Reserved/PERp1 | ANTCTL3 | Host 輸出 | |
| 66 | UIM_SWP | UIM_SWP/PERST1# | SIM DETECT | 模組輸出 | |
| 67 | Reserved | Reserved/PERn1 | RESET# | N/A | 模組輸出 |
| 68 | UIM_POWER_SNK | UIM_POWER_SNK/ CLKREQ1# | SUSCLK | SUSCLK | Host 輸出 32.768 kHz |
| 69 | GND | GND | CONFIG_1 | CONFIG_1 | |
| 70 | UIM_POWER_SRC | UIM_POWER_SRC/ PEWAKE1# | 3.3V/VBAT | 3.3 V | |
| 71 | Reserved | Reserved/REFCLKp1 | GND | GND | |
| 72 | 3.3V | 3.3V | 3.3V/VBAT | 3.3 V | |
| 73 | Reserved | Reserved/REFCLKn1 | GND | GND | |
| 74 | 3.3V | 3.3V | 3.3V/VBAT | 3.3 V | |
| 75 | GND | GND | CONFIG_2 | CONFIG_2 |
CONFIG_x:Defines module type
DAS/DSS:Device Activity Signal / Disable Staggered Spinup
PERST#:PCIe reset
PERp0、PERn0、PETp0、PETn0、PERp1、PERn1、PETp1、PETn1、PERp2、PERn2、PETp2、PETn2、PERp3、PERn3、PETp3、PETn3:PCIe Lane
DEVSLP:Device Sleep,high 是 host 通知 SSD 進入 low power state.
MFGx:Manufacturing pin. Use determined by vendor.
參考
2022年12月3日 星期六
ASUS ExpertBook B1400CEAE
ASUS ExpertBook B1:1.45 公斤級 810H 軍規
B1400CEAE (i5-1135G7) $32880 (2022/?? 公司購買)
- i5-1135G7 2.4~4.2 GHz,8M Cache,4 cores,Iris Xᵉ Graphics
- 14吋 FHD (1920 x 1080) 16:9 IPS霧面/Anti-glare display/NTSC: 45%
- 16G DDR4 on board
- 512GB M.2 NVMe™ PCIe® 3.0 SSD (最高 1TG)
- HDD 擴充最多 2TG
- 32.34 x 21.56 x 1.92 cm, 1.45 kg
- I/O連接埠
- 1x USB 2.0 Type-A
- 1x USB 3.2 Gen 1 Type-C support display / power delivery
- 2x USB 3.2 Gen 2 Type-A
- 1x HDMI 1.4
- 1x VGA Port (D-Sub)
- 1x 3.5mm Combo Audio Jack
- 1x RJ45 Gigabit Ethernet
- 1x DC-in 65W
- 內建喇叭麥克風、WebCam
- Wi-Fi 6(802.11ax), BT5.2 (Dual band) 2*2
- Windows 11 專業版
- BIOS 版本 B1400CEAEY.318, 2022/6/17
- 長按電源鍵按鈕15秒強制關機。
- 20230718 安裝 Lubuntu 23.04 (Lunar Lobster 月光龍蝦)
- 20230719 由於編譯問題改安裝 Lubuntu 20.04.5
- Hibernate 沒作用
B1400CEPE (i5-1135G7) $35880
- 額外 MX330/2G 顯示
- 記憶體多 1 DIMM
- 多 2TB 5400RPM HDD
- USB-C 換 1x Thunderbolt™ 4,多 SD Card Reader
- 90W 電源
B1400CBA-0031A1235U 2022/11/09 $32990
- i5-1235U 1.3 GHz (12M Cache, up to 4.4 GHz, 10 cores)
- 14.0 吋 FHD (1920 x 1080) 16:9/LED Backlit/250nits//Anti-glare display/NTSC: 45%
- 16G DDR4 on board
- 512GB M.2 NVMe™ PCIe® 4.0 SSD
- HDD 擴充最大 2TG
- IO連接埠
- 1x USB 2.0 Type-A
- 1x USB-C Thunderbolt™ 4 40Gbps/顯示/電源
- 2x USB 3.2 Gen 2 Type-A
- 1x HDMI 2.0 (1.4?)
- 1x VGA Port (D-Sub)
- 1x 3.5mm Combo Audio Jack
- 1x RJ45 Gigabit Ethernet
- microSD
- 1x DC-in 65W
- ? 內建喇叭麥克風
- Wi-Fi 6(802.11ax) (Dual band) 2*2 + Bluetooth 5.2
- WebCam
- NumberPad、FingerPrint、Backlit Chiclet Keyboard
- MyASUS in WinRE
- Windows 11 Pro
- 3年國際保固/3年國內到府維修
Linux 安裝
- 備份原開機作業系統?https://lirobo.blogspot.com/2007/09/clonezilla-live.html
- 換 SSD?加硬碟?SATA 速度?PCIe 3.0 速度?Gen 4 或 Gen 4
- Crucial MX500 2TB SATAⅢ SSD 讀560M/寫510M/3D TLC/五年保 $4199, 1TB $2199
- Crucial BX500 2TB SATAⅢ SSD 讀540M/寫500M/3D TLC/三年保 $4180, 1TB $1999
- Kingston KC600 2TB SATA-3 2.5吋 SSD (SKC600/2048G) 讀550M/寫520M/3D TLC/五年保 $6888
- Micron Crucial P2 1TB M.2 2280 PCIe SSD 讀2400MB/s;寫1800MB/s;五年保 $2088
- Kingston NV1 1TB NVMe PCIe SSD 讀2100M/寫1700M/QLC/三年保 $1980
- Kingston NV2 1TB Gen4 PCIe SSD 讀3500M/寫2100M/三年保 $1980
- Kingston KC3000 1TB PCIe 4.0 NVMe M.2 SSD 讀7000M/寫6000M/3D TLC/五年保 $2988
- Kingston FURY Renegade 1TB PCIe 4.0 NVMe M.2 SSD 讀7300M/寫6000M/3D TLC/五年保 $3699
- 雙開機?https://lirobo.blogspot.com/2013/01/vaio-s13-ubuntu-1210.html
2022年11月19日 星期六
USB Hub
USB-C 充電,USB-C
HDMI
Ethernet
CX1 USB-C Gen2 10Gbps 十合一極速轉接器 (CX1G2) $2190
- 輸入端:USB3.1 Type C Male,線長 17 cm(不含 USB-C 端)
- USB-C PD3.0 Pass-through 充電,最高 100W。不支援資料傳輸,保留 15W 給外接裝置。保留足夠電力給硬碟。
- USB-C 3.1(3.2):SuperSpeed+ Gen2 傳輸速度最高達 10Gbps
- 2x USB-A 3.1(3.2):SuperSpeed+ Gen2 傳輸速度最高達 10Gbps
- USB-A 3.0:傳輸速度最高達 5Gbps
- HDMI 2.0:最高達 4K x 2K @ 60Hz,支援 HDCP2.3, HDCP2.2 和 HDCP1.4 加密協定,支援 HDR 高動態色深影像輸出。需要支持 DisplayPort 1.4 Alt Mode 的電腦才可傳輸 4K@60Hz 影像
- SD 和 MicroSD SD4.0/UHS-II 讀卡機,傳輸速度最高達 312MB/s。兩張卡片可同時互相讀寫 (Dual-LUN)。
- RJ45 網路口:10/100/1000Mbps
- 3.5mm 耳機埠:支援聲音輸出與麥克風輸出
- 127.5mm(長)x 56mm(寬)x 16mm(厚)
- 鋁合金 108g
- 保固:18 個月
CASA Hub X USB-C 十合一集線器 $2680
- USB-C 3.1 Gen 2 編織線長
- USB-C 3.1 Gen 1 5Gbps, PD 最高 100W。
- USB-C 3.1 Gen 1 5Gbps, 充電 7.5W
- 2x USB-A 3.1 Gen 1
- HDMI 4K @ 60Hz,電腦 DisplayPort 1.4 以上
- VGA 1080@60Hz
- SD 和 MicroSD
- RJ45 10/100/1000 Mbps
- 3.5mm 音源孔 48kHz 16-bit 立體輸出
- 258mm(長)x 50mm(寬)x 17mm(厚)
- 鋁合金 90g
- 保固:3 年
Thunderbolt 對 Gigabit 乙太網路轉換器 NT$990
Belkin Thunderbolt™ 4 多功能集線器 $14990
- Thunderbolt 4 上行
- Thunderbolt 4 下行
- USB-C 3.1 Gen2: 10Gbps, 20W PD, 兼容 QC4.0
- 2x USB-A 3.1 Gen2 10Gbps
- 2x USB-A 2.0 480Mbps
- 2x HDMI 2.0 4K@60Hz
- SD4.0
- 千兆乙太網路
- 3.5mm 音訊輸入/出
- 直通電源 (不能 USB?)
2022年11月5日 星期六
Thunderbolt
Intel 的 Thunderbolt™ 在第一代和第二代結合 Apple 的 Mini DisplayPort,第三代開始改結合 USB-C,能以雙向各 40 Gbit/s傳輸資料。Thunderbolt 4 以不變的 40 Gbps 頻寬支援電源、資料和視訊。而 USB 纜線、裝置和連接埠的資料速度範圍可能有限,而且不保證顯示器品質。
| \ | Thunderbolt 4 | Thunderbolt 3 | USB4 | USB3/DP |
|---|---|---|---|---|
| 線長達 2 米 | yes | - | - | - |
| 總頻寬 | 40Gb/s | 40Gb/s | 20Gb/s | 10Gb/s |
| 顯示 | 2x 4K @60Hz 1x 8K @30Hz | 至少 1x 4K | 1x | 1x |
| 資料速度 | PCIe 32Gb/s USB 3.2 - 10Gb/s | PCIe 16Gb/s USB 3.2 - 10Gb/s | USB 3.2 - 10Gb/s | USB 3.2 - 5Gb/s |
| 充電 | yes | - | - | - |
| 喚醒 | yes | - | - | - |
| 供電 | 15W | 15W | 7.5W | 4.5W |
| Thunderbolt networking | yes | yes | - | - |
| \ | Thunderbolt™ 4 | Thunderbolt™ 3 | USB4 | USB3/DP |
Thunderbolt 3 涵蓋 USB 3.1、DisplayPort 1.2 和 PCIe。
PCIe 可供你外接顯卡擴充效能?
參考:https://www.kocpc.com.tw/archives/382652
2022年10月21日 星期五
四軸quadcopter
空拍機 穿越機
光流定位:一種影像定位方式
室內無人機:定位方式 (機器視覺和紅外線),螺旋槳保護。大疆 Avata。
空拍
工具
CoDrone
Cetus Pro FPV 無刷馬達 $6500
- 多樣的模式。
- 定位系統:光流/氣壓計/激光
- 高度定位:激光/氣壓計
- 定位:光流(有效高度0.3-3m)
- 自動懸停精度:水平±0.2m,垂直±0.3m(無風環境下)
- 接收器協議:Frsky D8
- 飛控:Lite 1-2S Pro 無刷FC
- VTX:25mW
- 相機傾斜度:30°
- 相機:C02 FPV微型攝像機
- 發射機: Literadio2 SE 發射器
- TX模式:模式1&模式2可選
- 馬達: 1102-18000KV無刷電機
- 螺旋槳:40mm 3-blade 1.5mm 軸孔
- 起飛重量:33.19g(不含電池)
- 動力系統:1S
- 電池: BT2.0 450mah 1S 電池 (外部的)
- 飛行時間:4-5分鐘
- 飛行距離:80m(寬廣無干擾環境)
- 風鏡:VR02 FPV Goggles:300g 內建 2hr 3.7V/2000mAh 電池 USB-C 充電,4.3 inch 螢幕 800*480 300cd/m2 55° 視角,內建 5.8G 14DBI 天線,頻率搜尋功能。
https://hom-wang.gitbooks.io/quadcopter/content/
SIP header Via
所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...
-
網路界面驅動程式有兩種接收封包的方式 -- 中斷驅動和 NAPI。傳統是用中斷驅動,在中斷服務程式裡接收封包,但封包量大時會有中斷次數太多而效能變差的問題。NAPI (意思是 New API) 改成中斷服務程式只通知有封包,Kernel 再排程一次接收多個封包來提昇效能。 中...
-
busybox ntpd 是 NTP client,也可作為 NTP server。 參數 -d:Verbose -n:不常駐 -q:(quit) 時間設完後結束 -N:高優先權執行 -w:不設定時間,只是詢問 peers,隱含 -n -l:作為 NTP ser...
-
驅動程式除了 read()/write() 外,通常可以透過 ioctl() 系統呼叫進行一些控制或設定,如鎖門、退片、回報錯誤、改變 baud rate、或 self destruct 等。 在 user space 格式如下: #include <sys/ioctl...