




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第三天課程(kchng)FLASH設備(shbi)驅動程序 嵌入式Linux文件子系統 共三十一頁日程安排FLASH設備(shbi)驅動程序共三十一頁Flash芯片(xn pin)介紹Flash 芯片類型NOR Flash直接總線接口(ji ku)讀寫類似于RAM可直接執行程序NAND Flash I/O讀寫接口讀寫類似于硬盤不能直接執行程序,需要加載到內存共三十一頁Flash芯片(xn pin)比較共三十一頁典型(dinxng)FLASH芯片典型(dinxng)NOR Flash芯片AMD Flash 系列Intel Strata Flash 系列典型NAND Flash 芯片芯片芯片類NA
2、ND Flash :如Samsung K9S1208 SamsungSMC 卡:SmartMediaCard SmartMediaCardDiskOnChip DiskOnChip共三十一頁NOR FLASH讀:直接按總線地址讀 讀寫: 寫:通過向特定地址寫某種序列(xli)實現寫功能AMD Flash ,Intel Flash 的命令序列即相應地址有所不同不同NOR Flash 的扇區的扇區扇區類型: 啟動扇區(大小一般32K/16K/8K )普通扇區(大小一般為64K)共三十一頁NAND FLASH芯片組織:分頁和塊對K9S1208:每頁512 16 字節,一塊32頁=16K+512讀寫以
3、頁為單元,擦除以塊為單位通過CLE引腳寫命令, ALE引腳寫地址讀寫方式先通過CLE發命令再通過ALE寫地址再讀寫數據(shj)詳見芯片手冊如K9S1208代碼可見JFlash或vivi 中的相應代碼 (如arch/s3c2410/nand_read.c)共三十一頁NAND FLASHNAND Flash 壞塊工藝難以保證完全可靠型壞塊分類:固有壞塊使用時壞塊壞塊管理空閑區第6個字節不為0 xffFlash讀寫代碼(di m)需要檢測壞塊讀寫空閑區:drivers/mtd/nand/smc_core.c:nand_read_oob共三十一頁MTD設備(shbi)驅動MTD技術全稱:Memory
4、 Technology Device實現對內存設備支持的統一接口,尤其是Flash內核源碼位置: drivers/mtd 提供Flash設備到字符設備驅動和塊設備驅動的轉換包含(bohn)對各種不同類型NOR Flash、NAND Flash等的支持共三十一頁MTD層次結構 Flash 硬件(yn jin)驅動層提供對不同Flash 硬件的驅動:NOR Flash在drivers/mtd/chips目錄下,NAND Flash 在drivers/mtd/nand 目錄下MTD原始設備層提供統一的MTD設備描述mtd_info提供對分區等的支持MTD設備層提供MTD 字符設備和塊設備應用層設備節
5、點和建立在MTD上的文件系 上共三十一頁MTD字符(z f)設備 主設備(shbi)號均為90 ,從設備號根據分區依次為0,2,4, 奇數1,3,5 等表示只讀。設備名: /dev/mtd0, /dev/mtd1共三十一頁MTD塊設備(shbi)主設備(shbi)號均為31,從設備根據分區依次為0,1, . 。設備名: /dev/mtdblock0, /dev/ mtdblock1共三十一頁數據結構(sh j ji u):mtd_info描述MTD原始設備,每個MTD原始設備都有一個(y )mtd_info結構,定義了關于MTD的數據和操作函數。u_char type; MTD 類型u_int
6、32_t size; MTD 大小u_int32_t t erasesize; MTD 的主擦除大小u_int32_t uoobblock; OOB塊大小,如512u_int32_t oobsize; OOB 空閑區大小,如16MTD回調函數: erase:擦除函數 read:讀 write:寫 read_ecc :讀ECC,位于空閑區,每256字節產生一個ECC write_ecc :寫ECC read_oob :讀OOB 數據數據 write_oob :寫OOB 數據共三十一頁數據結構(sh j ji u)map_infoFlash映射信息結構(include/linux/mtd/map.
7、h)char *name; Map 名稱名稱unsigned long size; Map 大小大小int int buswidth h; ; 總線(zn xin)寬度,以8為單位unsigned long map_priv_1/2; 映射的虛擬地址回調函數組: read8/16/32 等,write8/16/32映射信息由芯片驅動調用,主要目的為查找特定的芯片共三十一頁數據結構(sh j ji u)mtd_partition表示MTD原始設備分區的結構,其中包含了mtd_info,因為每一個分區都是被看成一個MTD原始設備加在mtd_table中的。char *name;分區名u_int32
8、_t size; 分區大小u_int32_t offset; 分區相對其主MTD設備的偏移, 特殊偏移:MTDPART_OFS_APPEND (緊接上一分區),MTDPART_SIZ_FULL (直到設備尾)u_int32_t mask_flags; 屏蔽(pngb)標志,如只讀等共三十一頁芯片(xn pin)驅動:mtd_chip_drivermtd_chip_driver 結構struct mtd_info *(* probe)(struct map_info *map); 芯片探查函數char *name; 名稱struct list_head list; 構成鏈表不同(b tn)的芯片
9、驅動AMD 類型flash 驅動:drivers/mtd/chips/amd_flash.c等Intel類型flash驅動:drivers/mtd/chips/cfi*等共三十一頁NOR Flash MTD 映射(yngsh)驅動功能:實現(shxin)Flash芯片在特定處理器上的讀寫以及Flash 分區內核源碼位置: drivers/mtd/maps 可根據已有的程序進行修改:如sa1100-flash.c 定義Flash 起始地址和大小WINDOW_ADDR、WINDOW_SIZE ,以及總線寬BUSWIDTH。實現map_info 結構確定分區結構數組mtd_partition ,每個
10、結構表示相應的mtd 分區修改Config.in和 Makefile 文件以加入新增的MTD分區編譯選項共三十一頁日程安排嵌入式Linux文件(wnjin)子系統 共三十一頁嵌入式Linux文件(wnjin)子系統概述 文件系統指文件存在的物理空間。在Linux系統中,每個分區都是一個文件系統,都有自己的目錄層次結構。Linux的最重要特征之一就是支持多種文件系統,這樣它更加靈活,并可以和許多其它(qt)種操作系統共存。由于系統已將Linux文件系統的所有細節進行了轉換,所以Linux核心的其它部分及系統中運行的程序將看到統一的文件系統。共三十一頁虛擬(xn)文件系統VFS為不同的文件系統提供
11、統一(tngy)的接口標準塊設備驅動緩沖系統(Cache )文件系統共三十一頁數據結構(sh j ji u)-超級塊超級塊super block(include/linux/fs.h)存放(cnfng)文件信息和Inode信息一般位于塊設備起始位置共三十一頁數據結構(sh j ji u)-inodeinode 結構(見include/linux/fs.h)可理解為VFS內的文件標識通過(tnggu)Inode與具體的文件系統驅動程序通信共三十一頁數據結構(sh j ji u)file_operations主要針對文件(wnjin)的讀寫等操作典型回調函數打開、關閉: open ,release
12、 讀寫: read, write控制: ioctl,fsync,fasync,lock 內存映射:mmap共三十一頁典型(dinxng)的Linux 文件系統標準Linux 文件系統:ext2,ext3 Windows下文件系統:fat,vfat ,ntfs Flash 文件系統:cramfs ,romfs,jffs2,yaffs內存(ni cn)文件系統:ramfs,tmpfs系統proc文件系統:proc 設備文件系統:devfs 的文件系統共三十一頁常用(chn yn)的Flash 文件系統Romfs 只讀文件系統,未壓縮。多用于NOR Flash 和較低速的CPU(如無MMU CPU)
13、Cramfs 只讀文件系統,壓縮,可用于較高速的CPU CPUJFFS2 可讀寫文件系統,可支持壓縮或不壓縮,較適用(shyng)于Nor Flash和容量較小的Nand Flash Yaffs 可讀寫文件系統,未壓縮。較適用于Nand Flash共三十一頁Flash文件系統內核(ni h)編譯選項選擇(xunz)File systems 合適的文件系統合適的文件系統Journalling Flash File System (JFFS) support :JFFS支持Journalling Flash File System v2 (JFFS2) suppor:JFFSV2支持Compres
14、sed ROM file system support:cramfs支持持ROM file system support:romfs支持YAFFS file system support:yaffs支持共三十一頁文件系統構建(u jin)先在主機上完成文件系統設計采用相應的工具將其生成(shn chn)對應的image cramfs:可采用mkcramfs工具jffs2:可采用mkfs.jffs2 工具romfs:可采用genromfs工具具yaffs :可采用mkyaffsimage 工具工具共三十一頁JFFS2文件系統 JFFS2 是一個開放源碼的項目()。 它是在閃存上使用非常廣泛的讀/寫文件系統。JFFS2 是一個日志結構的文件系統,包含數據和原數據的節點在閃存上順序的存儲。JFFS2的缺點:掛載時間(shjin)過長磨損平衡的隨意性 很差的擴展性 共三十一頁文件(wnjin)和進程結構struct file *file;可采用(ciyng)file-private_data來區分設備。共三十一頁謝謝(xi xie)大家問題(wnt)建議反饋共三十一頁內容摘要第三天課程。讀:直接按總線地址讀 讀。對K9S1208:每頁512 16 字節,一塊32頁=16K+512。讀寫以頁為單元,擦除以塊為單位。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒工作計劃 個人
- 2025股權轉讓專項法律服務合同
- 2025版辦公室裝修合同范本
- 2025二手商品交易合同書模板
- 混凝土強度驗收
- 2025設備租賃合同示范文本
- 寶馬三系改色施工方案
- 凍品采購合同樣本
- 行業發展計劃推動技術創新
- 低價沙發轉讓合同樣本
- 傳染病防治知識和技能培訓計劃
- 【MOOC】書法鑒賞-浙江傳媒學院 中國大學慕課MOOC答案
- 水利工程資料員培訓課件
- 《史記》《漢書》第九-整本書閱讀《經典常談》名著閱讀與練習
- 環衛設施設備更新實施方案
- 機械制造技術基礎(課程課件完整版)
- 江西省南昌市高三二??荚嚨乩碓囶}
- 廣東省高州市2023-2024學年高一下學期期中考試數學
- 2024年高等教育文學類自考-06050人際關系心理學考試近5年真題附答案
- 福建省公路水運工程試驗檢測費用參考指標
- CBL聯合情景模擬人文護理查房
評論
0/150
提交評論