環境:
pc: debian-7.6.0
arm cpu: s3c2416
linux: 3.6.0
busybox: busybox-1.20.2
最終目的是:arm採集資料,按日期寫到某個資料夾中,完了通過usb線纜連線pc,把資料拷到pc。
實現流程如下:
1、配置核心,使其支援虛擬u盤
2、配置busybox,使
mount命令支援loopback(busybox預設支援該功能,為保無虞,檢視哈)
3、製作u盤檔案系統映象檔案
4、燒寫到開發板,進行測試
1、配置
linux
3.6.0
核心使其支援虛擬u盤
注:在
linux
3.6.0版本中,虛擬
u盤的實現不再是使用
g_file_storage.ko模組,
而是g_mass_storage.ko模組
。 如果載入
g_file_storage.ko
note: this driver is deprecated.
consider using g_mass_storage instead.
file_storage.c的int __init fsg_bind(struct usb_gadget *gadget)函式。
配置項如下:
修改核心相關檔案:drivers/usb/gadget/file_storage.c
/* use this for bulk or interrupt transfers, not ep0 */
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 = ;
2、配置
編譯好之後,替換原檔案系統的相關檔案
3、製作
u盤檔案系統映象檔案
dd if=/dev/zero of=udisk32m.img bs=1k count=32768
mkfs.vfat udisk32m.img
將該檔案製作到檔案系統中,或者系統啟動後複製到檔案系統
4、燒寫到開發板,進行測試
檔案存放位置:
g_mass_storage.ko:/lib/modules/
udisk32m.img:/home/
載入模組:
insmod /lib/modules/g_mass_storage.ko file=/home/udisk32m.img stall=0 removable=1
掛載u盤:
mount -o loop /home/udisk32m.img /tmp
此命令有個前提:在/dev目錄下存在
/dev/loop節點,否則需要建立(mknod /dev/loop b 7 0)
資料測試:
1)s3c2416到pc機:
cp /home/test.file /tmp
用usb線連線arm到pc機,在pc機上顯示我們的u盤,開啟它可以看到
test.file檔案,檢視裡面的資料
2)pc機
到s3c2416:
複製檔案到u盤,在arm板上重新掛載:
umount /tmp
mount -o loop /home/udisk32m.img /tmp
即可看到從pc機寫入的檔案
skyeye模擬s3c2410 linux下程式
在前面的基礎上,下面開始利用skyeye自帶的testsuites中的資源來執行自己的程式的方法 2.使用skyeye模擬板子s3c2410執行某個linux 首先進入解壓完的目錄,然後 cd linux s3c2410 s3c2410x 2.6.14 skyeye c skyeye.conf e ...
S3C6410同步 非同步時鐘配置
在配置s3c6410的時鐘時有乙個叫other的暫存器,位址為0x7e00 f900 其中syncmode配置同步或非同步模式,syncmuxsel選擇hclk是由mpll提供還是apll提供。這裡就有乙個問題了,那什麼時候選同步模式,什麼時候選非同步模式呢?s3c6410手冊裡沒找到答案,不過另乙...
S3C2440 Linux驅動移植 NAND驅動
開發板 tq2440 核心 linux 2.6.32 pc os ubuntu 11.04 本文將對nand驅動的移植進行簡單介紹。其中,將對nand控制器所需要的引數進行詳細說明。開啟檔案arch arm plat s3c24xx common smdk.c,修改mtd partition結構體陣...