1. 打印單個寄存器
(1) 啟動linux內核, 進入shell界面
(2) 執行”cd /sys/class/sunxi_dump”
(3) 執行”echo 0xf1c20000 > dump”
(4) 執行"cat dump", 查看寄存器值:
2. 打印一段連續寄存器
(1) 啟動linux內核, 進入shell界面
(2) 執行”cd /sys/class/sunxi_dump”
(3) 執行”echo 0xf1c20004,0xf1c20058 > dump”
(4) 執行"cat dump", 查看寄存器值:
說明:
1) ”echo 0xf1c20004,0xf1c20058 > dump”中, 逗號緊接着數字, 前后不能有空格或其他字符.
2) 為方便查看, 每行從16字節對齊的地址開始打印, 多余位置以空格補齊(如上圖).
3. 比較單個寄存器值
假設需要比較0xf1c20010寄存器值與期望值是否一致. 則:
(1) 啟動linux內核, 進入shell界面
(2) 執行”cd /sys/class/sunxi_dump”
(3) 執行”echo 0xf1c20010 0x03006007 0x03000007 > compare”.
(4) 執行"cat compare"查看比較結果.
參數說明:
1) 三個數字的含義:
0xf1c20010: 寄存器虛擬地址.
0x03006007: 用戶期望的寄存器值.
0x03000007: 掩碼, 表明用戶關心的位. 比如0x03000007表示用戶只關心bit0, bit1, bit2, bit24, bit25,
其他的位不影響比較結果。
2) 數字之間有且僅有一個空格, 不能有多余字符.
如“echo 0xf1c20010,0x03006007 0x03000007 > compare”,
”echo 0xf1c20010 0x03006007 0x03000007 > compare”均不正確.
執行結果:
(1) reg, expect, actual, mask, result欄分別對應寄存器地址, 期望值(用戶輸入), 實際值(程序讀取), 掩碼
(用戶輸入), 比較結果(程序計算出).
(2) 關於result: 若(expect&mask) == (actual&mask), 則result為OK, 表示寄存器值與期望相符;
否則result為ERR.
4. 比較一組寄存器值
假設需要比較0xf1c20010, 0xf1c20020, 0xf1c20028三個寄存器值. 則:
(1) 啟動linux內核, 進入shell界面
(2) 執行”cd /sys/class/sunxi_dump”
(3) 執行”echo 0xf1c20010 0x03006207 0x03006207,0xf1c20020 0x00001000 0x00001000,
0xf1c20028 0x80000000 0x80000000 > compare”.
(4) 執行"cat compare"查看比較結果.
參數說明:
1) 相鄰兩組參數之間用逗號隔開, 逗號前后不能有多余空格或其他字符.
如”echo 0xf1c20010 0x03006207 0x03006207, 0xf1c20020 0x00001000 0x00001000 ,0xf1c20028
0x80000000 0x80000000 > compare”不正確. 因為逗號前后有空格.
2) 和上節一樣, 同組參數內相鄰數字之間有且僅有一個空格, 不能有多余字符.
如”echo 0xf1c20010 0x03006207 0x03006207,0xf1c20020 0x00001000 0x00001000,0xf1c20028
0x80000000 0x80000000 > compare”不正確. 因為紅色標記處有兩個空格.
3) 和上節一樣, 同組參數內三個數字分別表示寄存器地址, 期望值, 掩碼.
執行結果:
5. 寫單個寄存器值
假設需要將0xf1c20800寄存器寫0x00000031. 則:
(1) 啟動linux內核, 進入shell界面
(2) 執行”cd /sys/class/sunxi_dump”
(3) 執行”echo 0xf1c20800 0x00000031 > write”。
(4) 執行”cat write”查看寫結果.
參數說明:
1) 數字含義:
0xf1c20800: 寄存器虛擬地址.
0x00000031: 待寫的值.
2) 數字之間有且僅有一個空格, 不能有多余字符. 如”echo 0xf1c20800,0x00000031 > write”,
”echo 0xf1c20800 0x00000031 > write”均不正確.
reg, to_write, after_write分別對應寄存器地址, 寫入的值, 寫完讀出的值.
6. 寫一組寄存器值
假設需要將0xf1c20800,0xf1c20818寄存器分別寫0x00000031,0x55555555. 則:
(1) 啟動linux內核, 進入shell界面
(2) 執行”cd /sys/class/sunxi_dump”
(3) 執行”echo 0xf1c20800 0x00000031,0xf1c20818 0x55555555 > write”.
相鄰兩組參數之間用逗號隔開, 逗號前后不能有多余空格或其他字符.
如”echo 0xf1c20800 0x00000031, 0xf1c20818 0x55555555 > write”不正確. 因為逗號前后有空格.
(4) 執行”cat write”查看寫結果.
執行結果:
reg, to_write, after_write分別對應寄存器地址, 寫入的值, 寫完讀出的值.