/dev/mtdN和/dev/mtdblockN的區別

1、/dev/mtdn是linux中的MTD架構中,系統自己實現的mtd分區所對應的字符設備,其里面添加了一些ioctl,支持很多命令,如MEMGETINFO,MEMERASE等。

???? 而mtd-util中的flash_eraseall等工具,就是以這些ioctl為基礎而實現的工具,實現一些關于flash的操作,比如,mtd工具中的flash_eraseall中的:

?

?if(ioctl(fd,MEMGETINFO,&meminfo) != 0)
?{
??perror("MEMGETINFO");
??close(fd);
??exit(1);
?}

?

其中,MEMGETINFO,就是linux mtd中的/drivers/mtd/nand/mtdchar.c中的:

?

?case MEMGETINFO:
??info.type?= mtd->type;
??info.flags?= mtd->flags;
??info.size?= mtd->size;
??info.erasesize?= mtd->erasesize;
??info.writesize?= mtd->writesize;
??info.oobsize?= mtd->oobsize;
??/* The below fields are obsolete */
??info.ecctype?= -1;
??info.eccsize?= 0;
??if (copy_to_user(argp, &info, sizeof(struct mtd_info_user)))
???return -EFAULT;
??break;

?

而/dev/mtdblockn,是NandFlash驅動中,驅動在用add_mtd_partitions()添加MTD設備分區而生成的對應的塊設備。根據以上內容也更加明白,為什么不能用nandwrite,flash_eraseall,flash_erase等工具去對/dev/mtdblockn去操作了,因為/dev/mtdblock中不包含對應的ioctl,不支持你這么操作。

?

2、mtd char設備的主設備號是90;而mtdblock設備的主設備號是31;

???? 此設備號定義在/include/linux/mtd/mtd.h中

?

3、mtd塊設備的大小可以通過查看分區信息來得到:

# cat /proc/partitions
major minor? #blocks? name

? 31??????? 0??????? 128 mtdblock0
? 31??????? 1??????? 128 mtdblock1
? 31??????? 2??????? 512 mtdblock2
? 31??????? 3?????? 2048 mtdblock3
? 31??????? 4????? 32768 mtdblock4
? 31??????? 5???? 486400 mtdblock5

?

上面顯示的塊設備的大小,是block的數目,每個block是1KB;

而每個字符設備,其實就是對應著上面的餓每個設備,即/dev/mtd0對應/dev/mtdblock0,以此類推,換句話說,mtdblockn的一些屬性,也就是mtdn的屬性,比如大小。

?

4、對每個mtd字符設備的操作,比如利用nandwrite去對/dev/mtd0寫數據,實際就是操作/dev/mtdblock0而這些操作里面涉及到得offset都指的是mtd分區內的偏移。比如向/dev/mtd1的offset為0的位置寫入數據,實際操作的物理偏移是offset=/dev/mtd0的大小=128KB。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253234.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253234.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253234.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

#define GPBCON (*(volatile unsigned *)0x56000010) 的理解

2019獨角獸企業重金招聘Python工程師標準>>> 對于不同的計算機體系結構,設備可能是端口映射,也可能是內存映射的。如果系統結構支持獨立的IO地址空間,并且是端口映射,就必須使用匯編語言完成實際對設備的控制&#xff…

三極管基本參數介紹與放大電路分析

全稱為半導體三極管,也稱雙極型晶體管、晶體三極管,是一種電流控制電流的半導器件,作用是把微弱信號放大成幅度值較大的電信號, 也用作無觸點開關。 兩個PN結的排列方式有兩種:PNP和NPN。 三個端點依序稱為射極&#…

Nand分區及nand erase簡解

我的nand flash 32M,kernel 2.6.18, rootfs is emb linux, cramfs.nand flash分區如下:static struct mtd_partition nand_partitions[] {/* bootloader (UBL, U-Boot, BBT) in sectors: 0 - 14 */{.name "bootloader",.offset 0,.size 32…

eclipse啟動了tomcat,但是瀏覽器打不開歡迎頁

tomcat在eclipse中啟動成功,主頁卻打不開 癥狀: tomcat在eclipse里面能正常啟動,而在瀏覽器中訪問http://localhost:8080/不能訪問,且報404錯誤。同時其他項目頁面也不能訪問。 關閉eclipse里面的tomcat,在tomcat安裝目…

洛谷1011 車站

水題。題目描述有坑&#xff0c;可以先根據樣例手算試一試//Serene #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> using namespace std; const int maxn50; int f[50],…

三極管放大電路三種類型

根據三極管三個電極與輸入輸出端子的連接方式&#xff0c;可歸納為三種&#xff1a;共發射極電路、共基極電路和共集電極電路&#xff1b; 三種電路的共同點&#xff1a;各有兩個回路&#xff0c;一個輸入回路一個輸出回路&#xff0c;兩個回路有一個公共 端&#xff0c;而公…

ImportError: No module named 'chardet'

1.使用requsets出現這個錯誤&#xff0c;ImportError: No module named chardet 原因&#xff1a;requests依賴其他一些模塊 解決&#xff1a;依次使用pip安裝即可 pip install certifi pip install chardet pip install idna pip install urllib3轉載于:https://www.cnblogs.c…

各種組件的js 獲取值 / js動態賦值

jQuery獲取Select選擇的Text和Value:語法解釋&#xff1a;1. $("#select_id").change(function(){//code...}); //為Select添加事件&#xff0c;當選擇其中一項時觸發2. var checkText$("#select_id").find("option:selected").text(); //獲取…

Linux下/proc目錄簡介

1. /proc目錄 Linux 內核提供了一種通過 /proc 文件系統&#xff0c;在運行時訪問內核內部數據結構、改變內核設置的機制。proc文件系統是一個偽文件系統&#xff0c;它只存在內存當中&#xff0c;而不占用外存空間。它以文件系統的方式為訪問系統內核數據的操作提供接口。 用戶…

Mysql帶返回值與不帶返回值的2種存儲過程

過程1&#xff1a;帶返回值&#xff1a; 1 drop procedure if exists proc_addNum; 2 create procedure proc_addNum (in x int,in y int,out sum int) 3 BEGIN 4 SET sum x y; 5 end 然后&#xff0c;執行過程&#xff0c;out輸出返回值&#xff1a; 1 call proc_addNum(2,3,…

MOS管的米勒效應簡介

一、米勒平臺介紹 Mos管的三極都會存在以下 的三個電容,分別是:Cgs,Cgd,Cds。 米勒電容指的是Cgd。米勒效應在MOS驅動中臭名昭著,他是由MOS管的米勒電容引發的米勒效應,在MOS管開通過程 中,GS電壓上升到某一電壓值后GS電壓有一段穩定值(圖中t2~t3階段),過后Vgs電壓…

PopupWindow 使用詳解(二) Popwindow 制作常見花哨效果

帝都幾日降溫&#xff0c;終于被撂倒了。but 只要一息尚存就得不斷進步&#xff01;于是&#xff0c;寫出 《PopupWindow 使用詳解》的第二篇 筆記&#xff0c;先奉上 第一篇鏈接: 《PopupWindow 使用詳解&#xff08;一&#xff09; 中文API 文檔 贈送 ListPopupWindow 中文 A…

hbase replication原理分析

本文只是從總體流程來分析replication過程&#xff0c;很多細節沒有提及&#xff0c;下一篇文章準備多分析分析細節。replicationSource啟動過程org.apache.hadoop.hbase.regionserver.HRegionServer#startServiceThreads ->org.apache.hadoop.hbase.replication.regionserv…

8168

http://blog.csdn.net/crushonme/article/details/10287693 http://blog.csdn.net/yangxueble/article/details/10138763

Mysql查詢結果只有一條的情況下把值賦值給變量,再用if else 流程判斷

1 BEGIN 2 set n(SELECT count(day) from log where dayCURDATE()); 3 IF n0 THEN 4 call m_LogInsert(); 5 ELSE 6 call m_LoginCheck(); 7 end if; 8 end 轉載于:https://www.cnblogs.com/mengms/p/7629486.html

近距離無線通信技術對比

定義&#xff1a;無線通信是利用電磁波信號在自由空間中傳播的特性進行信息交換的一種通信方式。 優點&#xff1a;成本低、無物理線路&#xff0c;不受工業環境限制&#xff0c;環境適應能力強&#xff1b; 故障診斷簡單&#xff0c;可遠程診斷&#xff0c;擴展性強&#xff…

看不清的融資迷局 二線玩家字節跳動在打什么主意?

互聯網似乎對離經叛道者總是多一分關注&#xff0c;吃瓜心態隨著時間的推進越來越濃烈。 其中&#xff0c;今日頭條成了“看熱鬧”時代最佳的“演員”之一&#xff0c;供看客消遣&#xff1a;其母公司字節跳動一個融資傳聞從8月炒到了10月&#xff0c;即便是媒體通過信源確認這…

第3章-動態基礎分析實驗

Lab 3-1 Question: 1.先對文件使用PEID進行查殼,顯示文件被加殼處理過 2.使用Dependency Walker查看文件導入函數&#xff0c;文件只有一個DLL而且只有一個導入函數Exitprocess 3.使用Strings程序查看字符串&#xff0c;發現可疑字符串。 4.動態分析前期準備 4.1 對系統進行初始…

如何優化增強第三方庫?

開發中&#xff0c;我們不可避免要使用&#xff0c;別人花很多時間打磨好的輪子&#xff0c;輪子好用&#xff0c;但有時卻無法完全滿足我們的要去&#xff0c;這時我們不可避免的要去修改增強一下這個庫&#xff0c;如何增強&#xff1f; 我認為&#xff0c;一般有兩種修改的方…

C語言變長數組data[0]【總結】

C語言變長數組data[0]【總結】 1、前言 今天在看代碼中遇到一個結構中包含char data[0]&#xff0c;第一次見到時感覺很奇怪&#xff0c;數組的長度怎么可以為零呢&#xff1f;于是上網搜索一下這樣的用法的目的&#xff0c;發現在linux內核中&#xff0c;結構體中經常用到data…