#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define fatal do while(0)
#define map_size 4096ul
#define map_mask (map_size - 1)
intmain
(int argc,
char
**ar**)
[ type [ data ] ]\n"
"\taddress : memory address to act upon\n"
"\ttype : access operation type : [b]yte, [h]alfword, [w]ord\n"
"\tdata : data to be written\n\n"
, ar**[0]
);exit(1
);} target =
strtoul
(ar**[1]
,0,0
);if(argc >2)
access_type =
tolower
(ar**[2]
[0])
;if((fd =
open
("/dev/mem"
, o_rdwr | o_sync))==
-1) fatal;
printf
("/dev/mem opened.\n");
fflush
(stdout);
/* map one page */
/* 對映一頁的起始位址*/
map_base =
mmap(0
, map_size, prot_read | prot_write, map_shared, fd, target &
~map_mask);if
(map_base ==
(void*)
-1) fatal;
printf
(, map_base)
;fflush
(stdout);
/* 實際使用的起始偏移的位址*/
virt_addr = map_base +
(target & map_mask)
;//使用的偏移位址限制到1頁之內
switch
(access_type)
printf
("value at address 0x%x (%p): 0x%x\n"
, target, virt_addr, read_result)
;fflush
(stdout);
if(argc >3)
printf
("written 0x%x; readback 0x%x\n"
, writeval, read_result)
;fflush
(stdout);
}if(munmap
(map_base, map_size)==-
1) fatal;
close
(fd)
;return0;
}
根據開發板上的試驗,devmem2 這個版本的相容行對arm平台不是很友好,適用於x86平台, 不適用與arm平台,busybox中提供的devmem對板卡的實用性更好,和相容性更好 Pytorch原始碼注釋
field類為可以由張量表示的常見文字處理資料型別建模。它包含乙個vocab物件,用於定義字段元素的可能值集及其對應的數字表示。field物件還包含與資料型別應如何數位化有關的其他引數,例如標記化方法和應生成的tensor型別。如果在資料集中的兩列之間共享字段 例如,qa資料集中的問題和答案 則它們...
redis原始碼注釋 簡述
second60 20180510 有些人會問 學習一門技術最快的方法是什麼?答案很簡單 就是站在巨人的肩膀上,多看多多抄多練。第一 可以省去我們造輪子,四處碰壁的時間 第二 可以學習巨人的精髓,使自已能力不斷的提公升 第三 多抄,可以使自已寫 的風格像巨人一樣,如火純青 這篇檔案不講技術,純屬非技...
lua原始碼注釋 1
最近讀了點lua的原始碼,打算記錄下來,將來也知道自己這一段幹了啥。其實我以前也試圖讀過lua原始碼,不過一直沒有找對下手方向,比如我一直試圖從main下手,這個是錯誤的,還沒有進行正題,就被一大堆初始化給搞暈了,加之決心不大,就這樣一直拖著沒有看。不過最近因為工作的原因,熟悉了lua的c api,...