原创 C語言基礎 -41 函數_值傳參與地址傳參

值傳遞 book@100ask:~/C_coding/CH01$ cat swap.c #include <stdio.h> #include <stdlib.h> int print_value(int a,int b) { p

原创 PCIE解析筆記- 5.5 Physical Layer - Link Initialization and Training

一個8G device,進入正常工作狀態所經歷的過程爲例。路徑爲:Detect -- Polling -- configuration -- L0 -- Rocovery -- L0 別的L0s/L1/L2/Loopback/Hot

原创 C語言基礎 -36 指針_二維數組

a[i][j] = *(*(a+i)+j)    a的地址:0x7fff5594a0c0 a+1的地址:0x7fff5594a0cc p:在列上移動 a:在行上移動 a: 行指針;*(a+i): 行指針變列指針;*(a+i)+j

原创 C語言基礎 -38 指針_const與指針

const:把某些變量常量化 宏:只是宏名替換,編譯過程中不檢測語法錯誤。 #define PI 3.14 float pi = 3.14   //典型的類型//變量//值的用法。 const float pi = 3.14   //使p

原创 C語言基礎 -40 指針_多級指針

  多級指針就是指針的指針的指針...,實際上也沒那麼複雜,非常簡單。本節來看看如何理解多級指針。 假如定義了一個二級指針: int **q; q 的前面有兩個“*”,這個該如何理解呢?與一級指針的理解是一樣的。 int**q 可以把它

原创 C語言基礎 -39 指針_指針數組與數組指針的區別

行指針:就是數組指針的概念, 一個指針指向的內容並不是類似於整型值的基本數據類型,而是數組。 數組指針:終究是一個指針,這個指針指向數組 指針數組:當前數組的每個元素都是指針 數組指針與指針數組的定義,就差一個括號。 如果把數組名與*括

原创 C語言基礎 -32 指針_指針與變量

C++:引用傳參 C語言:沒有引用,使用指針傳參效率更高 sizeof:計算內容在內存中佔用的字節數 變量名:用戶對某一內存空間的抽象表示,即抽象出來的某塊空間的別名 指針:就是地址,指向某一個地址值 找一個變量將指針存起來的話,這個變

原创 C語言基礎 -37 指針_指針與字符數組

book@100ask:~/C_coding/CH01$ cat charpointer.c #include <stdio.h> #include <stdlib.h> int main() { char str[] = "I

原创 PCIE解析筆記- 4.2 DataLink Layer - ACK/NAK機制

TLP包在鏈路上的傳輸可靠性就是靠ACK/NAK機制保證的,像其它協議也有類似機制 A發到B的報文都會被分在replay buffer中,TLP先存buffer,buffer再從鏈路中發出去,然後逼着接收器去檢查sequence nu

原创 C語言基礎 -42 函數_如何定義一個函數

book@100ask:~/C_coding/CH02$ cat main.c #include <stdio.h> #include <stdlib.h> int main() { printf("Hello!\n"); ret

原创 PCIE解析筆記- 4.1 DataLink Layer - DLLP數據鏈路層包

處於事務層TLP與物理層中間,是PCIe鏈路的數據傳輸數據可靠性非常重要的保證。注意功能是生成傳輸數據鏈路層的包,以及ACK/NAK機制,保證了傳輸的可靠性。 DLLP幫TLP打包,爲每個報文頭部都會添加一個sequency numb

原创 PCIE解析筆記- 5.1 Physical Layer - Serdes背景知識

Serdes: 串行器+解串器 Tx端接收到並行數據,串行

原创 PCIE解析筆記- 5.2 Physical Layer - Gen1/Gen2物理層

Serdes架構不僅PCIe在用,對於其它串行協議,大同小異。8b/10b在低速總線中比較常見。 物理層分爲logical sub-block與electrical sub-block logical sub-block賦值將從dat

原创 PCIE解析筆記- 5.4 Physical Layer - Gen6的物理層

gen-6引入了PAM4,在一個UI內有4個電平。Gen5之前都是NRZ方式,只有2個bit 同樣32G UI,一個UI表示兩個bit,再不改變nyquist 頻率的情況下,實現速率翻倍。 缺點:SNR下降 爲了減少干擾,採用格雷碼,

原创 PCIE解析筆記- 5.3 Physical Layer - Gen3/4/5的物理層

PCIe3.0及以後,用128b/130b的編碼方式替換了原來的8b/10b編碼,8b/10b的缺點在於開銷太大,20% 2.5G 實際用到2G,5G實際用到4G PCIe 2.0到3.0,不把5Gbps直接翻倍到8b/10b的10G