基于ARM11的嵌入式Linux NAND FLASH模擬U盤掛載分析與實現(xiàn)
1.2 Linux NAND FLASH分區(qū)原理
NAND FLASH作為存儲設(shè)備,存儲著嵌入式產(chǎn)品從開機(jī)到結(jié)束的所有代碼,所以做好存儲設(shè)備的分區(qū)是至關(guān)重要的問題,LINUX操作系統(tǒng)下,分區(qū)如圖2所示。本文引用地址:http://butianyuan.cn/article/148060.htm
其中:.name為分區(qū)名稱,定義為U_Strorage,.offset為起始地址,這個值需要結(jié)合該模塊前面的模塊的大小和起始地址算出;.size為定義的分區(qū)大小,為512 MB。
添加分區(qū)后重新編譯,可在文件系統(tǒng)的/etc下找到相應(yīng)盤符,如:mtdblock4。
2.2 配置內(nèi)核
內(nèi)核中實現(xiàn)NAND FLASH模擬U盤掛載的驅(qū)動是USB中的Gadget實現(xiàn)的,所以在實現(xiàn)這項功能時,首先在編譯內(nèi)核的時候,配置上Gadget功能。具體操作如下:
在內(nèi)核源代碼的根目錄下執(zhí)行#make menuconfig,這時將會看到內(nèi)核的菜單選項,選擇:
device driver-->
[*]usb support-->
*>usb gadget support
*>usb preipheral controller
將usb support功能選中,選擇編譯該功能進(jìn)內(nèi)核,并在usb support功能子目錄中選擇中usb gadget support和usb preipheral contro ller功能,選擇編譯進(jìn)內(nèi)核,做完這些操作后編譯內(nèi)核。
在shell窗口命令行中輸入:
#make zImage
#make modules
在driver/usb/gadget目錄下會生成g_file_storage.ko和s3c_udc_otg.ko.講這兩個模塊復(fù)制到目標(biāo)板的文件系統(tǒng)中。
注意:當(dāng)usb gadget support功能非作為模塊編譯進(jìn)內(nèi)核時,編譯過模塊后需要更新內(nèi)核。而當(dāng)usb gadget support功能作為模塊編譯進(jìn)內(nèi)核時,(選擇欄應(yīng)填“M>usb gadget support”,其中“M”代表模塊),在編譯生成模塊后,除了要加載g_file_storage.ko還要加載s3c_udc_otg.ko。
linux相關(guān)文章:linux教程
評論