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