片上 flash作 U 盘
平台 stm32l475-atk-pandora
使能片上 flash

使能 fal 软件包

USB Device

使能大容量设备

fal_cfg.h
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2020-04-28 tyustli the first version
*/
#ifndef _FAL_CFG_H_
#define _FAL_CFG_H_
#include <rtthread.h>
#include <board.h>
extern const struct fal_flash_dev stm32_onchip_flash;
/* flash device table */
#define FAL_FLASH_DEV_TABLE \
{ \
&stm32_onchip_flash, \
}
/* ====================== Partition Configuration ========================== */
#ifdef FAL_PART_HAS_TABLE_CFG
/* partition table */
#define FAL_PART_TABLE \
{ \
{FAL_PART_MAGIC_WROD, "app", "onchip_flash", 0, 128 * 1024, 0}, \
{FAL_PART_MAGIC_WROD, "filesystem", "onchip_flash", 128 * 1024, 384 * 1024, 0}, \
}
#endif /* FAL_PART_HAS_TABLE_CFG */
#endif /* _FAL_CFG_H_ */
main.c
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2020-04-28 tyustli first version
*/
#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
#define LED0_PIN GET_PIN(E, 7)
#define FS_PARTITION_NAME "filesystem"
#include "fal.h"
int main(int argc, char *argv[])
{
fal_init();
struct rt_device *flash_dev = fal_blk_device_create(FS_PARTITION_NAME);
if (flash_dev == NULL)
{
rt_kprintf("Can't create a mtd device on '%s' partition.\n", FS_PARTITION_NAME);
}
else
{
rt_kprintf("Create a mtd device on the %s partition of flash successful.\n", FS_PARTITION_NAME);
}
return RT_EOK;
}
效果展示

本文介绍如何在STM32L475平台上使用片上Flash作为U盘,通过使能fal软件包和USBDevice,实现大容量设备的功能。代码示例展示了fal_cfg.h配置文件的设置,包括flash设备表和分区配置,以及main.c中fal初始化和创建文件系统分区的过程。

被折叠的 条评论
为什么被折叠?



