cherryUSB + msc( nor-flash) +fatfs 。如何实现即可U盘,也可以程序访问?
我用了msc的程序可以成为U盘.
#ifndef FS_REGION_START_ADDR
#error "Need to define file system start address!"
#endif
#define FS_ROOT “root”
/**
* @brief Mount fs.
*/
int mnt_init(void)
{
register_mtd_device(FS_REGION_START_ADDR, FS_REGION_SIZE, FS_ROOT);
if (dfs_mount(FS_ROOT, "/", "elm", 0, 0) == 0) // fs exist
{
rt_kprintf("mount fs on flash to root success\\n");
}
else
{
// auto mkfs, remove it if you want to mkfs manual
rt_kprintf("mount fs on flash to root fail\\n");
if (dfs_mkfs("elm", FS_ROOT) == 0)//Format file system
{
rt_kprintf("make elm fs on flash sucess, mount again\\n");
if (dfs_mount(FS_ROOT, "/", "elm", 0, 0) == 0)
rt_kprintf("mount fs on flash success\\n");
else
rt_kprintf("mount to fs on flash fail\\n");
}
else
rt_kprintf("dfs_mkfs elm flash fail\\n");
}
return RT_EOK;
}
INIT_ENV_EXPORT(mnt_init);
但两个地方访问的不是同一个文件。
但我看FLASH地址都是一样的。
#define MSC_BLOCK_SIZE 512
#define FLASH_MSC_START_ADDR (FS_REGION_START_ADDR)
#define FLASH_MSC_TOTAL_SIZE (FS_REGION_SIZE)
#ifndef SPI_NOR_SECT_SIZE
#define SPI_NOR_SECT_SIZE 4096
#endif

