1. 程式人生 > >s3c2140 開發板筆記

s3c2140 開發板筆記

small 信息 ann cmp flash div 一次 sha cannot

缺少文檔,以下信息是試出來的。。。

串口設置:115200/數據位8/奇偶校驗無/停止位1/流控無

正常開機:D4紅燈常亮,D1、D2、D5綠燈常亮

不正常開機1:D1、D2不亮

不正常開機2:D1、D2每秒一閃,每閃一次串口輸出網址

uart下載:D1、D2亮一秒滅一秒

原理圖補充說明

1: lcd, exbus, sdram, iis/uart/iic,

2: u1d(s3c2410), u2, u3

3: u4(E28F128J3A150, 3 Volt Intel StrataFlash), u28 (E28F128J3A150, 緩存), j1(3p)

4: u5, u6 (K4S561632C, 內存)

5: u1a(s3c2410), j2(6p)

6: u1c(s3c2410), d1, d2

7: u1b (s3c2410), u7, sd1

8: u8, u9, u10 (UDA1341TS,音頻編解碼), j6, j7(20p)

9: u11, u12 (MAX3232, uart)

10: u13, d3

11: u14(K9F1208, nand flash)

12: u15, u16(K9F1208, 電源管理), u27, j3(sw), j8(dc jack), j9(20p), sw[1..6], d11

13: con1a, con1b, con3 (usb), j10(6p)

14: u17, u18, u19 (SN74LVTH162245, 總線收發器)

15: j11(30p), j12(30p)

16: u20(TL5632, DC轉換), u21(VGAIN), u22, u29, u30(74LVXC3245, 電壓電平轉換)

17: u23(cs8900a), u24(HR601627, 網絡濾波), u25(RJ45), j5(3p)

18: j13(40p), j14(16p), j15(10p)

19: u26(EPM3032, cpld), j16(10p)

開機串口輸出

http://www.hfrk.net

Power on reset

Read chip id = ec76

Nand flash status = c0

Env.Os_Auto_Flag=1

NAND Flash Boot

Please select function :

0 : USB download file

1 : Uart download file

2 : Write Nand flash with download file

3 : Load Pragram from Nand flash and run

4 : Erase Nand flash regions

5 : Set boot params

6 : Run Wince

7 : Set AutoBoot parameter,1:linux 2:wince

8 : Test Power off

9 : test SDRAM Memory

4

Read chip id = ec76

Nand flash status = c0

Please select which region to erase : Esc to abort

0 : offset 0x0 , size 0x30000 [boot]

1 : offset 0x30000 , size 0x1d0000 [kernel]

2 : offset 0x200000 , size 0x600000 [rootfs]

3 : offset 0x800000 , size 0x800000 [ext-fs1]

4 : offset 0x1000000 , size 0x1000000 [ext-fs2]

5 : offset 0x2000000 , size 0x2000000 [ext-fs3]

以上分區設置為:

0 : offset 0x0 , size 0x30000 [boot] 0-192k,192k
1 : offset 0x30000 , size 0x1d0000 [kernel] 192k-2M,1856k
2 : offset 0x200000 , size 0x600000 [rootfs] 2M-8M,6M
3 : offset 0x800000 , size 0x800000 [ext-fs1] 8M-16M,8M
4 : offset 0x1000000 , size 0x1000000 [ext-fs2] 16M-32M,16M

5 : offset 0x2000000 , size 0x2000000 [ext-fs3] 32M-64M,32M

開發板硬件配置

(看器件上印刷的文字,到網上搜索得到的結果)

E28F128J3A150

Intel StrataFlash? Memory (J3)
k4s561632h-uc75

256Mb H-die SDRAM 兩條 (samsung)

k9f1208u0b

64M x 8 Bit NAND Flash Memory (samsung)

CS8900A

10Base-T (crystal)

HR601627

10BASE-TX Isolation Transformer Modules (hanrun)

lvth162245

3.3-V ABT 16-BIT BUS TRANSCEIVERS WITH 3-STATE OUTPUTS (TI)

EPM3032A

Altera Corporation - Programmable Logic Device Family

參考文檔

hfrk2410_A1.1 電路原理圖

http://www.pudn.com/downloads169/sourcecode/embed/detail777772.html

hfrk2410開發板使用手冊

http://wenku.baidu.com/view/becb1907bcd126fff7050b6c.html

(註:該手冊錯字錯句特別多,有的地方代碼錯誤,不和A1.1開發板完全匹配。A1.1的手冊沒找到)

s3c2410 datasheet

http://www.pudn.com/downloads137/sourcecode/embed/detail586505.html

ARM 匯編指令參考手冊

http://www.pudn.com/downloads32/sourcecode/embed/detail101963.html

bin和elf文件的關系和區別

http://blog.163.com/zhangmaochu@126/blog/static/3736062220105299305566/

U-Boot啟動過程完全分析

http://www.cnblogs.com/heaad/archive/2010/07/17/1779829.html

S3C2410-2440 bios啟動流程

http://wenku.baidu.com/view/a7976e67f5335a8102d220bc.html

arm-linux啟動流程

http://blog.csdn.net/linyt/article/details/6582399

工具下載

dnw.exe 串口調試軟件(經常造成xp藍屏重啟,但是又找不到更好用的)

http://www.pudn.com/downloads63/sourcecode/windows/csharp/detail220105.html

bootusb usb驅動

http://www.pudn.com/downloads75/sourcecode/others/detail278486.html

ads1.2

http://download.csdn.net/detail/hivdg/1987511 (不是必須的)

sjf2410.exe jtag燒制工具

http://www.pudn.com/downloads37/sourcecode/embed/detail118295.html (不是必須的)

代碼下載

arm-linux-gcc3.4.1 (用來編譯linux-2.6.14和busybox-1.1.0)

http://www.pudn.com/downloads57/sourcecode/embed/detail202446.html

arm-linux-gcc3.3.2 (用來編譯u-boot-1.1.6)

http://download.csdn.net/detail/vkbbpfwxf/4187342 (用這個版本來編u-boot-1.1.6)
u-boot-1.1.6

ftp://ftp.denx.de/pub/u-boot/u-boot-1.1.6.tar.bz2

s3c2410 bios v2

http://www.pudn.com/downloads93/sourcecode/embed/detail367341.html

(註:copy_proc_beg函數的第三行cmpr0, r1應為cmpr0, r2,不改也能湊合用)

linux-2.6.14

http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2

(註:Floating point emulation配置中需選擇至少一項,否則內核加載後,用busybox制作的文件系統用戶空間程序啟動不了。我選的是NWFPE)
yaffs2

http://www.pudn.com/downloads125/sourcecode/unix_linux/detail530519.html

cs8900a驅動

http://www.pudn.com/downloads102/sourcecode/embed/detail417250.html

(註:文檔中網卡驅動指定的irq是IRQ_EINT9,而電路圖中是EINT8,以圖為準)

busybox-1.1.0

http://busybox.net/downloads/busybox-1.1.0.tar.bz2

安裝交叉編譯器

只要解壓到某個路徑即可

編譯kernel

1、首先修改Makefile

ARCH = arm
CROSS_COMPILE = /mnt/sdb1/arm/3.4.1/bin/arm-linux-

2、在內核中加入yaffs和cs8900a網卡支持,方法參考hfrk開發板手冊

3、配置內核

boot option: 選擇啟動命令,由於我將之後生成的文件系統安裝在nfs上,所以我的命令行是:

console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.55.2:/mnt/sdb1/arm/nfsroot rw ip=192.168.55.3:192.168.55.2:192.

168.55.1:255.255.255.0:hfrk2410:eth0:off init=/linuxrc

其中192.168.55.1是路由器地址,192.168.55.2是nfs服務器的地址,192.168.55.3是將要啟動的linux的地址。

我的開發板自帶bootloader中可以指定啟動命令行,但是實際不起作用,我只能在內核編譯選項裏指定了。

Floating point emulation: 選擇NWFPE

device drivers->memory technology devices: 支持MTD

device drivers->network devices support->Ethernet (10 or 100Mbit): 支持cs8900

device drivers->character devices->serial drivers: 帶有s3c2410字樣的都選上

file system->network filesystem: 支持nfs(因為我要將文件系統安裝在nfs上)

file system->misc filesystem: 支持yaffs和cramfs

file system->pseudo filesystem: 有的文檔說需要加入devfs的支持,我沒有這樣做

4、編譯生成zImage,用來download到開發板內存中運行

制作文件系統

使用busybox, make menuconfig->build option,

選擇cross compiler的路徑和前綴

如果不選擇static binary,則編譯安裝完成後,需要將交叉編譯工具庫中的ld-linux.so.2 libc.so.6復制到目標文件系統的/lib目錄

配置nfs

root [ /mnt/sdb1/arm/u-boot-1.1.6 ]# cat /etc/exports
/mnt/sdb1/arm/nfsroot *(rw,sync,no_root_squash)

執行portmap和/etc/rc.d/init.d/nfs-server start

配置smb
root [ /mnt/sdb1/arm/u-boot-1.1.6 ]# cat /etc/samba/smb.conf
# Minimal client-only SAMBA configuration
[global]
workgroup = WORKGROUP
dos charset = cp437

unix charset = ISO-8859-1

security = share #


[download]
path = /mnt/sdb1/smb
read only = no

[uboot]
path = /mnt/sdb1/arm/u-boot-1.1.6
read only = no

[share]
path = /usr/share
read only = yes
執行smbd,停止killall smbd

下載新內核運行

建議使用usb下載,比串口快很多。DNW軟件的USB配置地址默認為0x30500000,無需修改。

開發板上電,按0下載剛才生成的Image,並在下載完成後按Y運行。

http://www.hfrk.net
Power on reset
Read chip id = ec76
Nand flash status = c0
Env.Os_Auto_Flag=1
NAND Flash Boot

Please select function :
0 : USB download file
1 : Uart download file
2 : Write Nand flash with download file
3 : Load Pragram from Nand flash and run
4 : Erase Nand flash regions
5 : Set boot params
6 : Run Wince
7 : Set AutoBoot parameter,1:linux 2:wince
8 : Test Power off
9 : test SDRAM Memory

使用u-boot

本人沒有清除nand flash上自帶的bootloader,因為JTAG燒錄器是並口的,而且淘寶上USB轉並口的線很多只能用於打印機,而不能用於接JTAG。我準備在nand上放兩個bootloader:一個是板子上原有的,很方便,但是功能少了點,另一個就是u-boot。

1、下載u-boot-1.1.6,修改Makefile

ifeq ($(ARCH),arm)
CROSS_COMPILE = /mnt/sdb1/arm/3.3.2/bin/arm-linux-

2、make smdk2410_config

3、make,順利生成u-boot.bin

4、下載u-boot.bin到開發板,運行。木有反應。

此時不能printf,又沒有仿真器,咋整?

想到開發板手冊中有一段測試匯編代碼,讓板上的LED燈閃爍的,可以拿來插入到u-boot的啟動代碼中,如果u-boot運行後燈閃了,說明已經運行到此處,如果不閃,則說明在此之前系統已經over了。

註意,手冊中這段代碼不支持GNU編譯器,且註釋中有很多錯誤。現修改為如下:

@============:
@ zLed32
@============:
#define rGPFCON 0x56000050
#define rGPFDAT 0x56000054
#define rGPFUP 0x56000058

.global zLed32
zLed32:
zLed32go:
mov r1, r0
mov r3, #32
zLoop:
/*show r2*/
cmp r3, #0x0
beq zLoopEnd
sub r3, r3, #2
mov r2, r1, lsr r3
and r2, r2, #3
bl zLedBlink
bl zLedShow
b zLoop
zLoopEnd:
mov ip,lr

zloop2:
b zloop2

zLedBlink:
ldr r4,=rGPFCON
ldr r5,=0x5000
str r5,[r4]
ldr r4,=rGPFUP
ldr r5,=0xffff
str r5,[r4]
ldr r4,=rGPFDAT

ldr r5,=0x00c0
str r5,[r4]
ldr r6,=0x200000
zBlinkDelay1:
sub r6,r6,#1
cmp r6,#0x0
bne zBlinkDelay1

ldr r5,=0x0000
str r5,[r4]
ldr r6,=0x200000
zBlinkDelay2:
sub r6,r6,#1
cmp r6,#0x0
bne zBlinkDelay2

mov pc,lr

zLedShow:
ldr r4,=rGPFCON
ldr r5,=0x5000
str r5,[r4]
ldr r4,=rGPFUP
ldr r5,=0xffff
str r5,[r4]
ldr r4,=rGPFDAT
eor r2, r2, #0x3
mov r5, r2, lsl #6
str r5,[r4]
ldr r6,=0x2000000
zShowDelay:
sub r6,r6,#1
cmp r6,#0x0
bne zShowDelay
mov pc,lr


經過本人多次測試,發現程序在此處掛住:

board/smdk2410/lowlevel_init.S文件->lowlevel_init函數->str r3, [r1], #4

為什麽會掛住呢?哥的思考結果如下:

在此之前把r0設置為SMRDATA-_TEXT_BASE,也就是SMRDATA在程序中的偏移量。為啥要這樣做,因為正常情況下,u-boot是燒寫在nand的最開始處,也就是0地址,執行這段代碼時,u-boot還未拷貝到RAM中,因此需要從nand內讀取需要的數據。而此時,程序是被原有的bootloader下載到內存中運行的,nand中的數據顯然不適合此處,我們需要從內存中讀取數據。那麽我們把r0的值保持為SMRDATA即可,註意,此處不能用原來代碼中的ldr r0, =SMRDATA,因為ldr指令裝載的是_TEXT_BASE+offset,而不是SMRDATA在當前內存中的真正位置(_start+offset),我們需要將這樣改成adr r0,SMRDATA,另外,註釋掉該行:sub r0, r0, r1 (如果不註釋,則從0+offset開始讀取)

註:在此之後,relocate(cpu/arm920t/start.S)程序會將內存中的uboot程序復制到_TEXT_BASE(0x33f80000),並將pc改為_start_armboot函數的地址:ldr pc, _start_armboot,此處用ldr而不是adr,就是讓cpu到正確的地方(連接時決定的邏輯地址)開始運行,而不是剛才uboot所在的任意內存區。

6、重新編譯u-boot,下載到任意地址(不要和本身的bootloader沖突),並運行,ok。現在把下載的內容寫到nand的第二個分區(之前被kernel占據),在老bootloader下按3,即可啟動u-boot。

http://www.hfrk.net
Power on reset
Read chip id = ec76
Nand flash status = c0
Env.Os_Auto_Flag=1
NAND Flash Boot

Please select function :
0 : USB download file
1 : Uart download file
2 : Write Nand flash with download file
3 : Load Pragram from Nand flash and run
4 : Erase Nand flash regions
5 : Set boot params
6 : Run Wince
7 : Set AutoBoot parameter,1:linux 2:wince
8 : Test Power off
9 : test SDRAM Memory
3
Read chip id = ec76
Nand flash status = c0
ú?t boot params = root=/dev/mtdblock2 load_ramdisk=0 init=/linuxrc console=ttyS0 mem=64M devfs=mount

U-Boot 1.1.6 (Oct 5 2013 - 13:29:50)

U-Boot code: 33F80000 -> 33F97B58 BSS: -> 33F9C280
RAM Configuration:
Bank #0: 30000000 64 MB
Flash: 512 kB
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
SMDK2410 #
SMDK2410 #
SMDK2410 # bdinfo
arch_number = 0x000000C1
env_t = 0x00000000
boot_params = 0x30000100
DRAM bank = 0x00000000
-> start = 0x30000000
-> size = 0x04000000
ethaddr = 00:00:00:00:00:00
ip_addr = 10.0.0.110
baudrate = 115200 bps
SMDK2410 #

啟動u-boot後,發現完美支持cs8900a網卡,配置好地址就可以通過tftp直接下載linux內核了。

SMDK2410 # setenv ethaddr 00:11:22:33:44:55
SMDK2410 # setenv ipaddr 192.168.55.9
SMDK2410 # setenv serverip 192.168.55.1
SMDK2410 # tftpboot 32000000 zImage

但是,u-boot不支持啟動zImage鏡像,必須轉換為uImage才行。於是仿照go命令加了個新命令,用於執行zImage,不就是把PC指針指向下載zImage的物理內存地址麽,這個簡單,呵呵。(註意要設置r0,r1,r2三個寄存器,我只設置了前兩個(0,193),也能湊合啟動內核)。



zImage內核解壓後,掛住了。用點燈的方式,能看到在enable mmu後,系統就立刻玩完了,但是為啥呢,百思不得其解,折騰了好幾天,終於發現,是內核啟動參數的問題。。。)在2.6之前的內核中0x30000100是內核啟動參數的所在區域,其中命令行位於0x30000600。板子自帶的坑爹bootloader,把這塊區域頭寫了個00001000 00004000,哥用uboot的mw命令將其清零(mw.l 30000100 0 2),再啟動內核(go1 32000000)。這回總算OK了。zImage的解壓代碼貌似會分析30000100開頭的區域,並基於分析結果設置頁的大小和數量,2.6的參數區格式與2.4不一樣,2.4用的是struct param_struct,而2.6用的是tag,貌似不大兼容以前的格式,這段我沒有展開分析,總之系統起來了就OK,哥的側重點不在這。

cs8900網卡驅動

1. 將cs8900驅動源代碼文件拷貝至drivers/net/,修改drivers/net/Kconfig文件
config ARM_CS8900
tristate "CS8900 support"
depends on NET_ETHERNET && ARM && ARCH_SMDK2410
help
Support for CS8900A chipset based Ethernet cards. If you have a network (Ethernet)
card of this type, say Y and read the Ethernet-HOWTO, availablefrom
<http://www.tldp.org/docs.html#howto> as well as
<file:Documentation/networking/cs89x0.txt>. To compile this driver as a module, choose
M here and read <file:Documentation/networking/net-modules.txt>. The module will be
called cs8900.o.

2. 修改drivers/net/Makefile
obj-$(CONFIG_ARM_CS8900) += cs8900.o

3. 修改arch/arm/mach-s3c2410/mach-smdk2410.c
#define pSMDK2410_ETH_IO 0x19000000
#define vSMDK2410_ETH_IO 0xE0000000
#define SMDK2410_ETH_IRQ IRQ_EINT8

static struct map_desc smdk2410_iodesc[] __initdata = {
{vSMDK2410_ETH_IO, __phys_to_pfn(pSMDK2410_ETH_IO), SZ_1M, MT_DEVICE},
/* nothing here yet */
};

4. make menuconfig,選中該驅動
Device Drivers --> Network device support --> Ethernet(10 or 100Mbit) --> <*>CS8900 support

5. 重新編譯內核/模塊

MMC驅動

1. 修改arch/arm/mach-s3c2410/mach-smdk2410.c

static struct platform_device *smdk2410_devices[] __initdata = {
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c0,
&s3c_device_iis,
&s3c_device_sdi, //zws
};

2.修改drivers/mmc/host/s3cmci.c

static struct s3c24xx_mci_pdata s3cmci_def_pdata = {
/* This is currently here to avoid a number of if (host->pdata)
* checks. Any zero fields to ensure reaonable defaults are picked. */
/*zws
.no_wprotect = 1,
.no_detect = 1,
*/
.use_dma = 0,
.gpio_detect = S3C2410_GPG(10),
.gpio_wprotect = S3C2410_GPH(8),
.set_power = NULL,
.ocr_avail = MMC_VDD_32_33,
};

3. make menuconfig

device driver -> mmc/sd/sdio card support,選中

MMC block device driver

Use bounce buffer for simple hosts(這個也許可以不選,我沒試過)

Samsung S3C SD/MMC Card Interface support

file systems -> DOS/FAT/NT Filesystems,選中

VFAT (Windows-95) fs support

file systems -> Native language support,選中

Codepage 437 (United States, Canada)

NLS ISO 8859-1 (Latin 1; Western European Languages)

4.重新編譯內核/模塊

5.加載模塊

insmod mmc_core.ko
insmod mmc_block.ko

insmod s3cmci.ko

會有以下輸出:

s3c-sdi s3c2410-sdi: powered down.

s3c-sdi s3c2410-sdi: mmc0 - using pio, sw SDIO IRQ

6.創建node文件

/ # ls /dev -l
crw--w--w- 1 0 4 5, 1 Sep 27 2013 console
brw-rw-rw- 1 0 0 31, 0 Sep 27 2013 mtdblk0
brw-rw-rw- 1 0 0 31, 1 Sep 27 2013 mtdblk1
brw-rw-rw- 1 0 0 31, 2 Sep 27 2013 mtdblk2
brw-rw-rw- 1 0 0 31, 3 Sep 27 2013 mtdblk3
brw-rw-rw- 1 0 0 31, 4 Sep 27 2013 mtdblk4
brw-rw-rw- 1 0 0 31, 5 Sep 27 2013 mtdblk5
crw-rw-rw- 1 0 0 1, 3 Sep 26 2013 null
brw-r--r-- 1 0 0 179, 0 Feb 26 2014 sd
brw-r--r-- 1 0 0 179, 1 Feb 27 2014 sd1

如果有卡,就可以直接mount -t vfs /dev/sd1 /mnt/sd



USB驅動

註意:以下工作(特別是內核選項)很多應該是不必要的,尚待精簡驗證。

1. 修改arch/arm/mach-s3c2410/mach-smdk2410.c

#include <linux/delay.h>

#include <mach/regs-gpio.h>
#include <mach/regs-clock.h>

#include <plat/usb-control.h>

//...

static struct s3c2410_hcd_info usb_s3c2410_info = { /*zws*/
.port[0] = {
.flags = S3C_HCDFLG_USED
},
.port[1] = {
.flags = S3C_HCDFLG_USED
}
};
int __init s3c2410_init_usb(void) /*zws*/
{
unsigned long upllvalue;
printk("USB Control, (c) 2006 pc104/n");
s3c_device_usb.dev.platform_data = &usb_s3c2410_info;


s3c2410_modify_misccr(S3C2410_MISCCR_USBSUSPND0 |
S3C2410_MISCCR_USBSUSPND1, 0x8);


upllvalue = (0x78<<12)|(0x02<<4)|(0x03);
while(upllvalue!=__raw_readl(S3C2410_UPLLCON))
{
__raw_writel(upllvalue,S3C2410_UPLLCON);
mdelay(1);
}
return 0;
}

//...

static void __init smdk2410_init(void)
{
s3c_i2c0_set_platdata(NULL);
platform_add_devices(smdk2410_devices, ARRAY_SIZE(smdk2410_devices));
smdk_machine_init();
s3c2410_init_usb();/*zws*/
}

2. make menuconfig

general setup->

Configure standard kernel features (for small systems)

除去Do an extra kallsyms pass,都選上

device drivers->

Block devices->Low Performance USB Block driver

SCSI device support->

SCSI device support

legacy /proc/scsi/ support

SCSI disk support

SCSI generic support

Probe all LUNs on each SCSI device

SCSI low-level drivers

HID Devices->

Generic HID support

USB Human Interface Device (full HID) support

USB support->

Support for Host-side USB

USB device filesystem (DEPRECATED)

OHCI HCD support

USB Mass Storage support 及其子項全選

3. 重新編譯內核、模塊

4. 用新內核啟動,並加載模塊

insmod scsi_mod.ko
insmod scsi_wait_scan.ko
insmod sg.ko
insmod sd_mod.ko

insmod nls_base.ko

insmod fat.ko
insmod vfat.ko
insmod nls_cp437.ko
insmod nls_iso8859-1.ko


insmod usbcore.ko
insmod ohci-hcd.ko
insmod usb-storage.ko
insmod ums-alauda.ko
insmod ums-cypress.ko
insmod ums-datafab.ko
insmod ums-freecom.ko
insmod ums-isd200.ko
insmod ums-jumpshot.ko
insmod ums-karma.ko
insmod ums-onetouch.ko
insmod ums-sddr09.ko
insmod ums-sddr55.ko
insmod ums-usbat.ko
insmod ub.ko
insmod usbhid.ko

輸出:

SCSI subsystem initialized
nls_base: exports duplicate symbol load_nls_default (owned by kernel)
insmod: cannot insert `nls_base.ko‘: Invalid module format (-1): Exec format error
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
ohci_hcd: USB 1.1 ‘Open‘ Host Controller (OHCI) Driver
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
usb 1-1: new full speed USB device using s3c2410-ohci and address 2
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usb 1-1: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
usbcore: registered new interface driver ums-alauda
usbcore: registered new interface driver ums-cypress
usbcore: registered new interface driver ums-datafab
usbcore: registered new interface driver ums-freecom
usbcore: registered new interface driver ums-isd200
usbcore: registered new interface driver ums-jumpshot
usbcore: registered new interface driver ums-karma
usbcore: registered new interface driver ums-onetouch
usbcore: registered new interface driver ums-sddr09
usbcore: registered new interface driver ums-sddr55
usbcore: registered new interface driver ums-usbat
usbcore: registered new interface driver ub
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
/zws # scsi 0:0:0:0: Direct-Access Generic- SD/MMC 1.00 PQ: 0 ANSI: 0 CCS
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 0:0:0:0: [sda] 996352 512-byte logical blocks: (510 MB/486 MiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
sda:
sda1
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI removable disk

5. 創建設備文件

/ # ls /dev/ -l
crw--w--w- 1 0 4 5, 1 Sep 27 2013 console
brw-rw-rw- 1 0 0 31, 0 Sep 27 2013 mtdblk0
brw-rw-rw- 1 0 0 31, 1 Sep 27 2013 mtdblk1
brw-rw-rw- 1 0 0 31, 2 Sep 27 2013 mtdblk2
brw-rw-rw- 1 0 0 31, 3 Sep 27 2013 mtdblk3
brw-rw-rw- 1 0 0 31, 4 Sep 27 2013 mtdblk4
brw-rw-rw- 1 0 0 31, 5 Sep 27 2013 mtdblk5
crw-rw-rw- 1 0 0 1, 3 Sep 26 2013 null
brw-r--r-- 1 0 0 179, 0 Feb 26 2014 sd
brw-r--r-- 1 0 0 179, 1 Feb 27 2014 sd1
brw-r--r-- 1 0 0 8, 0 Feb 28 2014 sda
brw-r--r-- 1 0 0 8, 1 Feb 28 2014 sda1
brw-r--r-- 1 0 0 8, 16 Feb 28 2014 sdb
brw-r--r-- 1 0 0 8, 17 Feb 28 2014 sdb1
/ # mount -t vfat /dev/sda1 /mnt/sda1
/ # ls /mnt/sda1
360 anjuke613.apk
4779.zip atadspgresu.txt
Android baidu
BaiduMap bluetooth

hquKi?5V????

s3c2140 開發板筆記