你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

WB-STM32F407之RT-Thread文件系统

[复制链接]
wbeast 发布时间:2018-9-12 15:24
本帖最后由 wbeast 于 2018-9-12 15:26 编辑 2 \9 z6 ~. K, o5 @1 p
* j' t: a& A- p
准备工作:
1.     下载rt_thread源码http://github.com/RT-Thread/rt-thread
2.     下载ENV工具: https://pan.baidu.com/s/1cg28rk
3.     硬件STM32F407VET6+w25q16
4.     打开rt_thread源码路径下的BSP/stm32f4xx-HAL文件夹,用ENV工具打开
. I( C8 u, \' ~: H6 e
5.设置 RT-ThreadComponents → Device virtual file system,如下图所示
6.     设置elm-chan's FatFs, Generic FAT Filesystem Module 选项中修改关于长文件名支持的选项,否则在后面使用文件系统的过程中,创建的文件或者文件夹的名称不能超过 8 个字符。修改方式如下图所示:

( o  ~3 e( R7 c8 C3 ~
7.   因为要使用一些 C 库函数,所以需要打开 libc 功能:
8.     在 RT-Thread Components → Device Drivers 界面中选中 Using SPI Bus/Device device drivers 以及 Using Serial Flash Universal Driver 选项,如下图所示:
9.     为了方便地使用 shell 命令,我们在 RT-ThreadComponents → Command shell 选项中开启 Usingmodule shell选项,如下图所示:
10.  在主界面设置,如下图所示
1.     Device type,设置MCU型号,我们用的事STM32F407VET6
2.     (25000000)HSE Value,晶振大小
3.     (168000000)MCU频率
4.     (38)SPI NOR flash ce pin index ,是SPI的CS管脚,第38个管脚
RT-ThreadKernel路径,将内核时间片设置到1000
11.  保存配置,scons --target=mdk5,生成工程。全编译后,烧到板子上。可以看到系统启动成功,但是flash没有读取成功,原因软件配置生成的代码SPI2的管脚与开发板的SPI2复用的管脚不同。
, [* q9 S( R/ s2 J4 W: ^
修改如下:
12.重新编译,下载。Flash读取成功
12.  通过 list_device指令,查看当前系统中的设备
13, 可以使用 sf  prode norspi命令对该设备做 benchmark 测试。如下图
14,通过mkfs –t mle flash0指令,挂载文件系统
挂载文件系统,在mian.c文件,添加以下代码
intmain(void)
{
       rt_device_t dev;
    /* user app entry */

* X7 z7 g: |, _+ l4 {
       while(1)
       {
              dev = rt_device_find("flash0");
              if (dev != RT_NULL)
              {
                     if(dfs_mount("flash0", "/", "elm", 0, 0) == 0)
                     {
                            rt_kprintf("spiflash mount to /spi !\n");
                     }
                     else
                            rt_kprintf("spiflash mount to /spi failed!\n");

4 i3 C. [# D$ p! c
                     break;
              }
              rt_thread_delay(50);
       }

- Q' g  `0 B5 w, Q, p
    return 0;
}
编译并下载,文件系统挂载成功
15,可以通过ls 指令,可以查询当前文件系统下面的文件;通过cd 可以跳转目录;
通过cp可以拷贝数据;通过cat可以某个文件内容;rm删除特定文件;mkdir创建文件夹;mv移动文件
通过cd 指令跳转目录
通过cat 指令查看文件内容
5 _) Z( r- F* ~8 l
源码路径:https://pan.baidu.com/s/1dGvafol 密码: c89k
收藏 1 评论1 发布时间:2018-9-12 15:24

举报

1个回答
STMCU-管管 回答时间:2018-9-17 15:00:53
谢谢楼主分享
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版