|
本帖最后由 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 |
| 谢谢楼主分享 |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版