1. 程式人生 > >mtd_debug:linux下直接讀寫flash扇區 及 交叉編譯mtd_utils

mtd_debug:linux下直接讀寫flash扇區 及 交叉編譯mtd_utils

mtd_debug是一個linux下直接讀寫flash扇區的工具,是mtd-utils的一個部件。具體用法如下:

./mtd_debug read <device><offset> <dest-filename> <len>

./mtd_debug write <device><offset> <source-filename> [len]

./mtd_debug erase <device><offset> <len>

具體使用舉例:./mtd_debug erase/dev/mtd/1 0x0 0xc00000  :表示擦寫了0x34300000 ~ 0x34f00000共12MB的空間。

以上命令格式中“device”是指/dev/mtd/0,1,2這種mtd char 裝置,不要操作/dev/mtdblock/0,1,2這種塊裝置。也就是說:mtd是字元裝置,mtdblock是塊裝置,它們對映的是同一個空間;但是我們在擦寫的時候就是操作字元裝置,這個請注意。

以上不管是write哪一塊,都建議先erase,再write,否則可能導致write失敗

mtd_debug的獲取或者說交叉編譯mtd_utils

1.獲得原始碼

 [email protected]:/home/# wget ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.2.0.tar.bz2

[email protected]:/home/# wget http://www.zlib.net/zlib-1.2.3.tar.gz
[email protected]:/home/# wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz
[email protected]:/home/# tar xzvf zlib-1.2.3.tar.gz
[email protected]:/home/# tar xzvf lzo-2.03.tar.gz
[email protected]:/home/# tar xzvf mtd-utils-1.2.0.tar.bz2

說明:zlib和lzo是編譯mtd-utils所需庫檔案,需提前交叉編譯完成,以供mtd-utils編譯時呼叫

2,編譯安裝zlib:
[email protected]:/home/# cd zlib-1.2.3
[email protected]:/home/zlib-1.2.3# CC=arm-linux-gcc ./configure --shared --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi   
[email protected]:/home/zlib-1.2.3# make
[email protected]:/home/zlib-1.2.3# make install
[email protected]:/home/zlib-1.2.3# cd ..


/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi 為交叉編譯器路徑


3,編譯安裝lzo:
[email protected]:/home/# cd lzo-2.03/
[email protected]:/home/lzo-2.03# CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi
[email protected]:/home/lzo-2.03# make
[email protected]:/home/lzo-2.03# make install
[email protected]:/home/lzo-2.03# 

4,編譯mtd-utils


1) 修改Makefile
CROSS=arm-linux-


2) make WITHOUT_XATTR=1
   在這裡會提示沒有定義AI_ADDRCONFIG,在檔案頭部加入定義#define AI_ADDRCONFIG    0x0020 就可以了
   
   到這裡還是有錯誤提示。不過沒有關係。mtd_debug已經出來了。靜靜的躺在arm-linux目錄下面鳥。

相關推薦

mtd_debug:linux直接flash 交叉編譯mtd_utils

mtd_debug是一個linux下直接讀寫flash扇區的工具,是mtd-utils的一個部件。具體用法如下: ./mtd_debug read <device><offset> <dest-filename> <len>

Linux直接物理地址內存

ann erro 分頁 .... gpio 細心 key 單位 開發 虛擬 轉 物理地址 virt_to_phys( *addr );物理 轉 虛擬地址 phys_to_virt( *addr ); 如: unsigned long pProtectVA;

linux文字:面向二進位制位元組流方式

第一步:先建立並寫入文字到檔案中。 示例程式碼如下:write.c #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <fcntl.h> #

linux硬碟速度測試

1. 測試讀取速度 haparm -Tt /dev/xxx 1.1 獲取硬碟裝置名稱: fdisk -l Disk /dev/xvdf: 365.0 GB, 365041287168 bytes 255 heads, 63 sectors/track, 44380 cyl

LinuxFLASH驅動——MTD裝置分析

  最近在學習驅動讀寫flash的程式碼部分。經歷了可笑的過程:開始我知道flash用通過spi口來讀寫。所以就到了driver/spi 下面看相關程式碼。發現有個spidev.c裡面有read/write/ioctl等函式。而且還有一個davinci_spi_

[Win32] 直接磁盤(磁盤絕對

ref return rac cpp sig i/o phy 類型 表示 ??本博文由CSDN博主zuishikonghuan所作,版權歸zuishikonghuan全部。轉載請註明出處:http://blog.csdn.net/zuishikonghuan/artic

SSD和HDDLinux系統的速度

文章目錄 機械硬碟 測試磁碟寫速度 測試磁碟讀速度 固態硬碟 測試磁碟讀速度: 結論

嵌入式 Linux 對記憶體的直接(devmem)

https://blog.csdn.net/xy010902100449/article/details/47028497【摘要】 在Linux開發中著實用到的除錯工具並不是很多。devmem的方式是提供給驅動開發人員,在應用層能夠偵測記憶體地址中的資料變化,以此來檢測驅動中對記憶體或者相關配置的正確性驗證

Linux環境mysql分離以及主從配置(不錯可以的)

記下File及Position下的值。以備在配置從伺服器時使用。 注:File:當前binlog的檔名,每重啟一次mysql,就會生成一個新binlog檔案       Position:當前binlog的指標位置 三、從伺服器配置 1、配置mysql.cnf # vi /etc/my.cnf (1)修改

Linux:使用鎖使線程同步

解釋 -s write des 返回值 沒有 enter red bubuko 基礎與控制原語 讀寫鎖 與互斥量類似,但讀寫鎖允許更高的並行性。其特性為:寫獨占,讀共享。 讀寫鎖狀態: 一把讀寫鎖具備三種狀態: 1. 讀模式下加鎖狀態 (讀鎖)

MACNTFS方案解決

TE 不存在 volume finder des 分區 需要 span led 1 mount查看磁盤掛載情況 $ mount 2 卸載掛載 $ sudo umount /Volumes/Untitled/ 3 重新掛載 $ sudo mount -t ntfs

linux為firfox安裝flash player

ria pap tar.gz tar hit was files other iat 1.去官網下載×.tar.gz包,如:flash_player_npapi_linux.x86_64.tar.gz 2.解壓 tar -zxvf flash_player_npapi_l

linux驅動中硬體暫存器(例如__raw_writel)

   __iomem原始碼位置:include/linux/compiler.h # define __force    __attribute__((force)) //變數可以進行強制轉換 # define __nocast &

Qt Windows 快速Excel指南

另一篇文章:Qt中使用QAxObject操作Excel     轉載:https://blog.csdn.net/czyt1988/article/details/52121360 原始檔:github 或者本地資料夾為名:czyBlog-master.zip .

Android使用chmod改變安卓專案檔案執行的許可權

最初我們可以看到private.txt檔案 當前使用者具有可讀可寫許可權,當前使用者所在組具有可讀可寫許可權,其他使用者沒有任何許可權,下面我們就要利用chmod指令對private.txt許可權進行修改。 首先用開始按鈕+R開啟執行,輸入cmd進入終端頁面,輸入adb shell回車,然

Linux檢視磁碟

---------- 檢視磁碟讀寫--------- iostat -k 1 SQL> ho iostat Linux 2.6.32-279.el6.x86_64 (server-92)  08/16/2013  _x86_64_ (24 CPU) avg-cpu:

FPGAFlash模組 Verilog程式設計

採用黑金Spartan6的開發板,板內的硬體電路設計如圖 電路嚴格按照datasheet的規定連線。 按照上圖 控制FLASH晶片僅需要控制QSPI_MIS0、QSPI_MIS1、QSPI_MIS2、QSPI_MIS3以及QSPI_CS、QSPI_CLK 按照程式實

Linux使用makefile一個進度條,以及對\r 和\n,緩衝區的簡單瞭解

1.’\r’和‘\n’的區別 \r:表示回車:它只會回到這一行的最前邊 \n:表示回車換行。它會回到這一行的最前邊,然後跳到下一行  。 2.緩衝區 c函式如printf(),在輸出時,shell預設將資料輸出到標準輸出如顯示器,而printf()在

Java 自動判斷配置檔案是否已經存在,如果不存在自動建立,如果存在直接

try {     pro.load(new BufferedInputStream(new FileInputStream("config.ini"))); } catch (FileNotFoundException e) {     pro.put("GuestDefaultFloor", "10");

關於linux標準入read和fgets和scanf的區別

測試程式碼如下 #include "../tcpiplib.h" int main(int argc, char **argv) { ssize_t n; size_t len; char buf[10]; //memset(buf, 0, sizeof(buf