RT-Thread 学习记录(二)SFUD挂载W25Q128,使用EasyFlash

一、前言

学习记录,已建好工程。FAL、SFUD、硬件SPI、W25Q128、EasyFlash。

二、步骤

一)配置Cube MX

双击 “Cube Mx Settings”(或“cubemx”->“cubemx.ioc”)打开Cube Mx,配置硬件SPI,选择hal库,点击生成。

二)配置RT-thread Settings

双击 “RT-Thread Settings”打开配置页面,添加软件包和组件。

1、添加组件FAL

使能组件“FAL”,并使能“使用SFUD驱动”,更改“设置使用FAL的设备名称”为“W25Q128”。

2、添加组件SPI

在组件“设备驱动程序”里使能“SPI驱动”,并使用“SFUD”,设置总线最大速度(自行更改)。

设置好后,图形配置界面会点亮这两个驱动。

3、EasyFlash

添加软件包“EasyFlash”,并配置。调试日志在测试完成后可关闭。

三)配置工程

1、排除构建

打开工程中“cubemx”文件夹,除“cubemx.ioc”外,其余全部排除构建。

2、复制生成的SPI相关函数

在软件左上角的“导航器”中选择项目,并将“cubemx”文件夹中“spi.c”文件的“MX_SPI1_Init”、“HAL_SPI_MspInit”、“HAL_SPI_MspDeInit”函数复制到“drivers”文件夹中“board.c”文件末尾。

3、配置board.h文件

将SPI外设在“board.h"文件中打开宏定义。

4、配置stm32f1xx_hal_conf.h

在生成程序时,提示将“stm32f1xx_hal_conf.h”备份,并在“drivers”文件夹新建了“stm32f1xx_hal_conf_bak.h”文件,但是众多文件中调用的还是改名前的文件,所以会报错,这里选择将新建文件改为原来的名字(不知是否应这样处理)。

打开此文件,打开使能SPI模块宏。

5、添加fal_cfg.h

将“rt_thrread”->“components”->“fal”->“samples”->“porting”->“fal_cfg.h”文件移动到“drivers”->“include”文件夹中。

并在此文件中对设备名称、类型、空间分配函数进行更改。

#define NOR_FLASH_DEV_NAME             "W25Q128"   //设备名称,必须与fal设置一致

/* ===================== Flash device Configuration ========================= */
extern const struct fal_flash_dev stm32f2_onchip_flash;
extern struct fal_flash_dev nor_flash0;

/* flash device table */
//#define FAL_FLASH_DEV_TABLE                                          \
//{                                                                    \
//    &stm32f2_onchip_flash,                                           \
//    &nor_flash0,                                                     \
//}
#define FAL_FLASH_DEV_TABLE                                          \
{
     
                                                                         \
    &nor_flash0,                                                     \
}
/* ====================== Partition Configuration ========================== */
#ifdef FAL_PART_HAS_TABLE_CFG
/* partition table */
//#define FAL_PART_TABLE                                                               \
//{                                                                                    \
//    {FAL_PART_MAGIC_WORD,        "bl",     "stm32_onchip",         0,   64*1024, 0}, \
//    {FAL_PART_MAGIC_WORD,       "app",     "stm32_onchip",   64*1024,  704*1024, 0}, \
//    {FAL_PART_MAGIC_WORD, "easyflash", NOR_FLASH_DEV_NAME,         0, 1024*1024, 0}, \
//    {FAL_PART_MAGIC_WORD,  "download", NOR_FLASH_DEV_NAME, 1024*1024, 1024*1024, 0}, \
//}
#define FAL_PART_TABLE                                                               \
{
     
                                                                                         \
    {
     
     FAL_PART_MAGIC_WORD, "easyflash", NOR_FLASH_DEV_NAME,         0, 1024*1024, 0}, \
    {
     
     FAL_PART_MAGIC_WORD,  "download", NOR_FLASH_DEV_NAME, 1024*1024, 1024*1024, 0}, \
    {
     
     FAL_PART_MAGIC_WORD,  "datafile", NOR_FLASH_DEV_NAME, 2*1024*1024, 8*1024*1024, 0}, \
}
#endif /* FAL_PART_HAS_TABLE_CFG */

6、添加fal_flash_sfud_port.c

将“rt_thrread”->“components”->“fal”->“samples”->“port

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值