[u-boot: v2013.04]
[Author: Bo Shen ]
1. Source Code
此文件中定义了四个命令:fatload,fatls,fatinfo是定义"#define CONFIG_CMD_FAT"后就包括了。而fatwrite是需要再定义"#define CONFIG_FAT_WRITE"才会出现。
2. Usage
在使用FAT相关命令的时候,一定会有FAT文件系统的存储设备,此处举例使用U盘。
U-Boot>fatinfousb 0
Interface: USB
Device 0: Vendor: Kingston Rev: PMAP Prod: DataTraveler G3
Type: Removable Hard Disk
Capacity: 7441.6 MB = 7.2 GB (15240576 x 512)
Filesystem: FAT32 "KINGSTON "
U-Boot>fatlsusb 0
166 autorun.inf
39334 tbi.png
43134 tbi_2.png
43006 tms.png
55191 tck.png
57357 rtck.png
53981 tdo.png
7 file(s), 0 dir(s)
U-Boot>fatloadusb 0 0x20000000 tbi.png
reading tbi.png
39334 bytes read in 161ms (244.3 KiB/s)
3. Source Code go through
3.1 fatls --> do_fat_ls --> do_ls --> fs_set_blk_dev --> fs_ls --> return 0;
3.1.1 fs_set_blk_dev --> get_device_and_partition --> (callback: fstype_info->probe)
3.1.2 fs_ls --> fs_get_info --> (callback: fstype_info->ls)
3.2 fatinfo --> do_fat_fsinfo --> get_device_and_partition --> fat_set_blk_dev --> file_fat_detectfs
3.2.1 fat_set_blk_dev --> disk_read
3.2.2 file_fat_detectfs --> dev_print --> read_bootsectandvi
3.3 fatload --> do_fat_fsload --> do_load --> fs_set_blk_dev < fs/fs.c> --> fs_read (callback: fstype_info->read)