|
本帖最后由 wbeast 于 2018-9-12 15:26 编辑 准备工作: 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工具打开 ![]() 5.设置 RT-ThreadComponents → Device virtual file system,如下图所示 ![]() 6. 设置elm-chan's FatFs, Generic FAT Filesystem Module 选项中修改关于长文件名支持的选项,否则在后面使用文件系统的过程中,创建的文件或者文件夹的名称不能超过 8 个字符。修改方式如下图所示: ![]() ![]() 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复用的管脚不同。 ![]() 修改如下: ![]() 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 */ 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"); break; } rt_thread_delay(50); } return 0; } 编译并下载,文件系统挂载成功 ![]() 15,可以通过ls 指令,可以查询当前文件系统下面的文件;通过cd 可以跳转目录; 通过cp可以拷贝数据;通过cat可以某个文件内容;rm删除特定文件;mkdir创建文件夹;mv移动文件 ![]() 通过cd 指令跳转目录 ![]() 通过cat 指令查看文件内容 ![]() 源码路径:: https://pan.baidu.com/s/1dGvafol 密码: c89k |
| 谢谢楼主分享 |
【福利三:雨露均沾·逢7狂欢】之四:用一个定时器同步另外两个定时器输出PWM
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
【逢7发帖赢大礼】全网最简单的Arduino_STM32开发环境搭建教程!
STM32F4中文用户手册
STM32F400、STM32F402 Cortex-M4超值单片机
SPI 高温读错最后一位?STM32F42xx 官方根治方案
微信公众号
手机版