1 / 8
文档名称:

正点原子探索者stm32f407rtthread文件系统使用.pdf

格式:pdf   大小:350KB   页数:8页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

正点原子探索者stm32f407rtthread文件系统使用.pdf

上传人:鼠标 2023/6/8 文件大小:350 KB

下载得到文件列表

正点原子探索者stm32f407rtthread文件系统使用.pdf

文档介绍

文档介绍:该【正点原子探索者stm32f407rtthread文件系统使用】是由【鼠标】上传分享,文档一共【8】页,该文档可以免费在线阅读,需要了解更多关于【正点原子探索者stm32f407rtthread文件系统使用】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。正点原⼦探索者stm32f407rt-threa⽂d件系统使⽤
硬件说明:正点原⼦探索者stm32f407,板载SPI-FLASH  W25Q128
系统说明:RT-Thread  (以上的其他版本也可以)
在rt-thread-\rt-thread\bsp\stm32\stm32f407-atk-explorer下,打开env配置⼯具,
第⼀步:进⼊Hardware  Driver  Config--->Onboard  Peripheral  Drivers开启SPI  FLASH
第⼆步:进⼊Hardware  Driver  Config--->on-chip  Peripheral  Drivers开启SPI  BUS
第三步:进⼊RT-Thread  Components--->Device  virtual  file  system开启elm-chan  fatfs
第四步:配置elm-chan  fatfs
第五步:保存退出,使⽤pkgs  --update更新代码
然后使⽤scons  --target=mdk5⽣成Keil  mdk5⼯程⽂件

编译成功后,打开⼯程,编译代码,应该是正常编译,没有错误的。
⽂件
加⼊挂载⽂件系统的代码:
void  spiflash_test(void)
{
        rt_device_t  dev;
        dev  =  rt_device_find("W25Q128");
        RT_ASSERT(dev  !=  RT_NULL);
        if  (dev  !=  RT_NULL)
        {
                /*  Filesystem  Initialization  */
#if  defined(RT_USING_DFS)  &&  defined(RT_USING_DFS_ELMFAT)
                /*  mount  sd  card  fat  partition  1  as  root  directory  */
           需   要//格式化完后才可以
                if  (dfs_mount("W25Q128",  "/",  "elm",  0,  0)  ==  0)
                {
                        rt_kprintf("File  System  initialized!\n");
                }
                else
                {
                        rt_kprintf("File  System  initialzation  failed!\n");
                }
#endif  /*  RT_USING_DFS  &&  RT_USING_DFS_ELMFAT  */
        }
}
然后在main函数中调⽤即可
int  main(void)
{
        int  count  =  1;
        /*  set  LED0  pin  mode  to  output  */
        rt_pin_mode(LED0_PIN,  PIN_MODE_OUTPUT);
        spiflash_test();//测试⽂件系统代码
        while  (count++)
        {
                rt_pin_write(LED0_PIN,  PIN_HIGH);
                rt_thread_mdelay(500);
                rt_pin_write(LED0_PIN,  PIN_LOW);
                rt_thread_mdelay(500);
        }
        return  RT_EOK;
}
编译后,烧录程序到开发板中。
串⼝⼯具应该会有以下提⽰:
需要注意的是,我这⾥之前已经格式化过SPI-FLASH了,所以这⾥就直接挂载成功了。如果是第⼀次烧写,这⾥应该是挂载失败的。
挂载失败的话,我们需要重新格式化⼀次FLASH。
在串⼝终端输⼊命令:mkfs  -t  elm  W25Q128
然后输⼊reboot重启系统即可正常挂载
挂载好⽂件系统后,我们就可以使⽤⽂件系统相关的⼀些命令了。
RT_Thread的Finsh中⽀持以下跟⽂件系统相关的命令,这些命令对于熟悉Linux童鞋来说最简单不过了。
FinSH  命令 描述
ls 显⽰⽂件和⽬录的信息
cd 进⼊指定⽬录
cp 复制⽂件
rm 删除⽂件或⽬录
mv 将⽂件移动位置或改名
echo 将指定内容写⼊指定⽂件,当⽂件存在时,就写⼊该⽂件,当⽂件不存在时就新创建⼀个⽂件并写⼊
cat 展⽰⽂件的内容
pwd 打印出当前⽬录地址
mkdir 创建⽂件夹
mkfs 格式化⽂件系统
这⾥做⼀些简单的串⼝⽰范:
关于在程序中应⽤⽂件系统相关操作:
⽂件⽰例,在该⽰例代码中,⾸先会使⽤  open()  函数创建⼀个⽂件  ,并使⽤  write()  函数在⽂件中写⼊字符串“  RT-Thread
Programmer!\n,”然后关闭⽂件。再次使⽤ open()  函数打开    ⽂件,读出其中的内容并打印出来,最后关闭该⽂件。
加函数
static  void  readwrite_sample(void)
{
        int  fd,  size;
        char  s[]  =  "RT-Thread  Programmer!",  buffer[80];
        rt_kprintf("Write  string  %s  to  .\n",  s);
        以/* 创建和读写模式打开  /⽂t 件,如果该⽂件不存在则创建该⽂件  */
        fd  =  open("/",  O_WRONLY  |  O_CREAT);
        if  (fd>=  0)
        {
                write(fd,  s,  sizeof(s));
                close(fd);
                rt_kprintf("Write  done.\n");
        }
           以/*只  读模式打开  /⽂t 件  */
        fd  =  open("/",  O_RDONLY);
        if  (fd>=  0)
        {
                size  =  read(fd,  buffer,  sizeof(buffer));
                close(fd);
                rt_kprintf("Read  from  file    :  %s  \n",  buffer);
                if  (size  <  0)
                        return  ;
        }
    }
/* 导出到  msh命  令列表中  */
MSH_CMD_EXPORT(readwrite_sample,  readwrite  sample);
重新编译代码,烧写程序到开发板,然后串⼝⼯具输⼊以下命令:
⽂件名⽰例:程序会创建⼀个操作⽂件的函数  rename_sample()  并导出到  msh  命令列表。该函数会调⽤r ename()  函数,  将名为
  的⽂件改名为  。
static  void  rename_sample(void)
{
        rt_kprintf("%s  =>  %s",  "/",  "/");
        if  (rename("/",  "/")  <  0)
                rt_kprintf("[error!]\n");
        else
                rt_kprintf("[ok!]\n");
}
/* 导出到  msh命  令列表中  */
MSH_CMD_EXPORT(rename_sample,  rename  sample);
重新编译代码,烧写程序到开发板,然后串⼝⼯具输⼊以下命令:
3.  获取⽂件状态⽰例,程序会创建⼀个操作⽂件的函数 stat_sample()  并导出到  msh  命令列表。该函数会调⽤s tat()  函数获取    ⽂
件的⽂件⼤⼩信息。⽰例代码如下所⽰:
static  void  stat_sample(void)
{
        int  ret;
          struct  stat  buf;
          ret  =  stat("/",  &buf);
        if(ret  ==  0)
        rt_kprintf("  file  size  =  %d\n",  );
        else
        rt_kprintf("  file  not  fonud\n");
}
/* 导出到  msh命  令列表中  */
MSH_CMD_EXPORT(stat_sample,  show    stat  sample);
重新编译代码,烧写程序到开发板,然后串⼝⼯具输⼊以下命令:
更多的⽰例代码可参考

最近更新

苏教版四年级语文下册期末考试卷(最新) 7页

西师大版三年级数学(上册)期中试卷及答案一 5页

西师大版二年级数学上册期中考试卷及答案【最.. 6页

语文版一年级语文下册期末考试卷免费 4页

高中英语课时作业(译林版选修第三册)课时作.. 3页

语文版四年级语文(下册)期末试题(附参考答案).. 5页

语文版四年级语文下册期末调研题及答案 7页

部编人教版一年级语文上册二单元试卷及答案一.. 10页

部编人教版三年级数学(上册)期中质量检测题及.. 5页

部编人教版三年级语文上册期末考试卷及答案免.. 7页

部编人教版三年级语文下册期末试题审定版 6页

部编人教版二年级语文上册期中测试卷及答案【.. 5页

部编人教版二年级语文上册期末测试卷(汇总) 5页

部编人教版二年级语文下册期中卷 5页

部编人教版五年级语文下册期末考试题(全面) 8页

部编人教版四年级数学上册期中模拟考试(参考答.. 6页

幼儿园教育游戏-激发幼儿学习兴趣 28页

部编人教版四年级语文上册期末试卷(及参考答案.. 6页

部编人教版四年级语文下册期末试题(新版) 6页

部编版一年级上册语文《期中》测试卷及答案【.. 5页

部编版一年级数学(上册)期中试卷及答案(下载).. 6页

部编版一年级数学上册期中考试卷 5页

部编版一年级语文下册期中题 4页

造价工程师考试课件-建筑安装工程费用构成 30页

部编版三年级语文(下册)期末复习题及答案 6页

部编版三年级语文上册期末考试卷及答案【必考.. 7页

部编版二年级上册语文期末试卷及答案【汇总】.. 6页

部编版二年级语文上册一单元复习题及答案 4页

部编版二年级语文上册期中试卷【带答案】 4页

部编版二年级语文上册第一次月考试卷及答案(通.. 4页