飛凌FL 2440開發板上實現模擬U盤

2021-06-29 10:59:24 字數 2797 閱讀 3246

飛凌fl-2440開發板上實現模擬u盤

開發板脫離window時,它執行資料採集程式,把採集到的資料寫成檔案儲存在nand flash中。window系統需要讀取開發板採集的資料時,只需通過usb線把開發板和window電腦連線起來,此時開發板就相當於乙個u盤,window像訪問u盤一樣訪問開發板上nand flash的資料檔案。

這裡我們先不**模擬u盤的實現原理,只是告訴大家的移植步驟,開發板模擬u盤的實現原理我們後續再專門討論。

本次開發的軟硬體環境配置如下:

硬體環境: 飛凌fl2440開發板

軟體環境:  linux-3.6.30.9    busybox-1.15.2

編譯器版本:arm-linux-gcc 4.3.2

桌面linux版本: ubuntu 8.10版本

嵌入式linux環境下實現模擬u盤主要分為一下幾個步驟:修改核心配置,配置核心支援模擬u盤;製作fat32檔案系統映像;修改busybox配置,配置mount命令支援loopback;增加模擬u盤模組到核心中;具體實現操作步驟如下:

一、修改核心配置,配置核心支援模擬u盤功能

1. 配置linux 2.6.30.9 支援模擬u盤功能,

將配置選項

usb gadget drivers  

和file-backed storage gadget  

配置為模組編譯方式,同時在

usb peripheral controller

選擇s3c2410 usb device controller,

表示我們選擇的

s3c2410 usb

裝置控器。

如下圖所示:

2. 配置linux檔案系統支援fat32檔案系統,如下圖所示:

3.修改drivers/usb/gadget/file_storage.c

static void start_transfer(struct fsg_dev *fsg, struct usb_ep *ep, struct usb_request *req, int *pbusy,   enum fsg_buffer_state *state)

將mod_data的初始化修改為:

mod_data = ;

4. 重新編譯核心和模組

#make zimage 

#make modules

編譯完成後,在目錄drivers/usb/gadget下生成g_file_storage.ko

這樣我們就完成了核心的配置與編譯,新生成的核心支援模擬u盤功能。

二、 修改 busybox配置

修改busybox的配置,配置busybox的mount命令支援loopback, 如下圖所示:

重新編譯busybox.

#make

#make install

將新生成的busybox 檔案替換原來根檔案系統的busybox 檔案。這樣開發板上的mount命令就支援loopback功能。

三、製作fat32檔案系統映像

製作fat32檔案系統映像的步驟如下:

1. 在ubuntu目錄下執行如下命令,建立fat32映像,大小為32m:

#dd if=/dev/zero of=udisk32m.img  bs=1k  count = 32768

#mkfs.vfat udisk32m.img

2. 將製作好的fat32檔案系統映像複製到系統的根檔案系統中,重新製作根檔案系統;

3.燒寫重新編譯好的核心和根檔案系統到fl2440開發板中;

四、啟動系統,載入u盤模擬模組到核心中

開發板上電啟動系統 1.

2.在開發板的控制終端上執行如下命令載入g_file_storage.ko模組到核心中;

#insmod g_file_storage.ko file=udisk32m.img stall=0 removable=1

#mknod /dev/loop0  b  7  0

#mount -o loop /home/udisk32m.img  /tmp

這樣我們就講fat32檔案系統映像udisk32m掛載到 /tmp目錄下。

fat32檔案系統映像udisk32m就相當於我們的模擬u盤,容量為32m.

五、測試模擬u盤是否正常工作

為了測試我們的模擬u盤是否能正常工作,我們測試在開發板和xp系統是否能正常進行資料交換。 1)

開發板往模擬u盤寫檔案,xp系統上可以訪問該檔案;

在開發板上往 /tmp目錄寫 mdev.conf 檔案,命令如下

cp ./etc/mdev.conf ./tmp

在xp系統上重新插拔連線開發板的usb線,在行動硬碟j中我們可以看到mdev.conf  檔案,可以在xp系統上訪問。從而驗證開發板往模擬u盤寫檔案,xp系統上可以訪問該檔案。

2)xp系統往模擬u盤寫檔案,開發板可以訪問該檔案;

在xp系統上網u盤寫wwtarm.txt檔案,重新掛載檔案系統映像到 /tmp目錄

#umount tmp

#mount -o loop /home/udisk32m.img  /tmp

在開發板上可以在 /tmp目錄下訪問剛才xp系統寫到u盤的wwtarm.txt 檔案。

到此,我們基於飛凌fl2440開發板在嵌入式linux系統下的模擬u盤功能就驗證完成了。

**

fl2440開發板上移植dropbear的過程

背景 開發板fl2440與pc的securecrt連線的傳統方式是用串列埠轉usb線連線,但是我在使用的過程中發現串列埠轉usb線有時連線不穩定,另外串列埠也需要用於收發資料,所以我在開發板上移植 輕量級的ssh軟體dropbear,一根網線輕鬆解決開發板與securecrt連線,話不多說,進入正題...

FL2440開發板Jlink操作

fl2440開發板主控晶元為s3c2440。h halt,停止cpu執行 j link hspeed 設定 j link的速率 j link speed 12000loadbin 從本地硬碟載入檔案到記憶體中去 sram和sdram j link loadbin d bin 0 載入bootstra...

控制fl2440開發板led燈亮滅,蜂鳴器發聲

led燈亮滅,蜂鳴器發聲是通過設定相應暫存器的值來控制的,主要有gpbcon gpbdat gpbup等,gpbcon有gpb0 10,每乙個gpbi設定不同的值來表示輸入輸出等,設定gpbdat的每一位表示高低電平,gpbup設定gpbi是否有效,通過對這三個暫存器的設定則可實現led燈和蜂鳴器。...