NOR FLASH驅動程式

2021-08-20 14:54:18 字數 2730 閱讀 2779

測試1:通過配置核心支援nor flash

1. make menuconfig

-> device drivers

-> memory technology device (mtd) support

cfi flash device in physical memory map

(2) bank width in octets (new) // 位寬

2. make modules

cp drivers/mtd/maps/physmap.ko /work/nfs_root/first_fs

3. 啟動開發板

ls /dev/mtd*

insmod physmap.ko

ls /dev/mtd*

cat /proc/mtd

測試2: 使用自己寫的驅動程式:

1. ls /dev/mtd*

2. insmod s3c_nor.ko

3. ls /dev/mtd*

4. 格式化: flash_eraseall -j /dev/mtd1

5. mount -t jffs2 /dev/mtdblock1 /mnt

在/mnt目錄下操作檔案

nor flash識別過程:

do_map_probe("cfi_probe", s3c_nor_map);

drv = get_mtd_chip_driver(name)

ret = drv->probe(map); // cfi_probe.c

cfi_probe

mtd_do_chip_probe(map, &cfi_chip_probe);

cfi = genprobe_ident_chips(map, cp);

genprobe_new_chip(map, cp, &cfi)

cp->probe_chip(map, 0, null, cfi)

cfi_probe_chip

// 進入cfi模式

cfi_send_gen_cmd(0x98, 0x55, base, map, cfi, cfi->device_type, null);

// 看是否能讀出"qry"

qry_present(map,base,cfi)

.....

do_map_probe("jedec_probe", s3c_nor_map);

drv = get_mtd_chip_driver(name)

ret = drv->probe(map); // jedec_probe

jedec_probe

mtd_do_chip_probe(map, &jedec_chip_probe);

genprobe_ident_chips(map, cp);

genprobe_new_chip(map, cp, &cfi)

cp->probe_chip(map, 0, null, cfi)

jedec_probe_chip

// 解鎖

cfi_send_gen_cmd(0xaa, cfi->addr_unlock1, base, map, cfi, cfi->device_type, null);

cfi_send_gen_cmd(0x55, cfi->addr_unlock2, base, map, cfi, cfi->device_type, null);

// 讀id命令

cfi_send_gen_cmd(0x90, cfi->addr_unlock1, base, map, cfi, cfi->device_type, null);

// 得到廠家id,裝置id

cfi->mfr = jedec_read_mfr(map, base, cfi);

cfi->id = jedec_read_id(map, base, cfi);

// 和陣列比較

jedec_table

linux之NOR FLASH驅動程式

使用uboot體驗nor flash的操作 開發板設為nor啟動,進入uboot 先使用openjtag燒寫uboot到nor flash 1.讀資料 md.b 0 2.讀id nor手冊上 往位址555h寫aah 往位址2aah寫55h 往位址555h寫90h 讀0位址得到廠家id c2h 讀1位...

S3C2440 nor flash驅動程式

20150418 s3c2440 nor flash驅動程式 2015 04 18 lover雪兒 和前面的nandflash差不多,我們此處來重新學習一下norflash驅動。1 2 參考 drivers mtd maps physmap.c3 45 include 6 include 7 inc...

驅動程式之 2 塊裝置 5 Nor Flash 3

nor flash的驅動框架與nand flash類似,協議層基本一樣,都是分配乙個mtd info結構體,主要區別在於硬體層,nor flash和nand flash的位址 匯流排位寬不同 nor flash可以像記憶體一樣讀,但不能像記憶體一樣寫,寫操作類似nand flash,協議層提供讀寫介...