基于NAND Flash的RL-FlashFS实现

【易开嵌入式】rt-thread+stm32f407+tf卡(spi接口),实现RL-FLASHFS文件系统移植 前文:【易开嵌入式】rt-thread+stm32f407+nandflash,实现RL-FLASHFS文件系统移植 【易开嵌入式】rt-thread+stm32f407,实现RL-TCPnet网络协议栈 版权声明:本版面文章皆为原创、或参考其他技术网站、博客后自己动手做实验所得,转载请注明出处。 鸣谢:感谢eric硬汉 商务合作:lz_kwok@163.com 易开嵌入式工作室 前面博文,针对rt-thread操作系统下,关于nandflash的... 阅读详情

RL-ARM版本:4.22
NAND Flash芯片:K9F1208U0C
处理器:STR912FAW4x
软件平台:裸奔
编译环境:MDK-ARM Professional Version: 4.23
目标:基本文件系统操作

RL-FlashFS是RL-ARM的一部分,它可以脱离RTX内核独立运行,所以为了降低调试难度,我采用了裸奔的方式。

1. 添加RL-FlashFS函数库

将\Keil\ARM\RV31\LIB下的FS_ARM_L.lib复制出来,并添加到MDK项目中。

2. 添加并修改File_Config.c

从\Keil\ARM\RL\FlashFS\Config目录复制File_Config.c,并修改。下图是对该文件的配置,只修改了与处理器和K9F1208相关的内容,其它的保持默认:

3. 添加Retarget.c并预定义STDIO宏

从\Keil\ARM\RL\FlashFS\Config目录复制Retarget.c。

为了使用printf等标准输入输出功能,需要预定义STDIO宏。

在MDK中右击Retarget.c,选择“Options for File 'Retarget.c' ...”,然后选择“C/C++”标签,在“Define”中填入STDIO,如下图:

当然,也可以直接在Retarget.c中修改:

/* The following macro definitions may be used to translate this file:

  STDIO - use standard Input/Output device
          (default is NOT used)
 */
#define STDIO


4. 编写sendchar和getkey函数

这两个函数在Retarget.c中调用。

int sendchar(int ch) {
    while (UART_GetFlagStatus(UART0, UART_FLAG_TxFIFOFull) == SET);
    UART_SendData(UART0, (u8)ch);
    return ch;
}
int getkey(void) {
    while (UART_GetFlagStatus(UART0, UART_FLAG_RxFIFOEmpty) == SET);
    return (UART_ReceiveData(UART0));
}


5. 配置启动代码中的heap大小

RL-FlashFS使用了动态内存分配来缓存数据,手册给的堆空间最小值是0x1000,这里我用了大一点的值:

修改STR91x.s:

Heap_Size       EQU     0x00002000


6. 编写NAND Flash芯片驱动

这一步是实现文件系统的关键,也是相对有难度的地方,因为这里需要搞清楚NAND Flash芯片的操作。Keil的例子可作为参考,位置在\Keil\ARM\RL\FlashFS\Drivers目录。

不过如果已经将NAND Flash芯片使用于其它文件系统,那问题就比较简单了,将原来的驱动贴过来稍微改一下就可以了。

此外,驱动函数中的NAND_DRV_CFG *cfg参数的作用是为了同一类型

嵌入式GUI开发:RL-FlashFS与emWin实现BMP图像显示 嵌入式系统中的图形界面开发常涉及外部存储图像的处理。文件系统作为数据存储的核心组件,通过标准化接口实现存储介质访问,而图形库则负责图像解码与渲染。RL-FlashFS作为Keil MDK集成的轻量级文件系统,支持FAT格式并与emWin图形库无缝配合,形成高效的图像处理流水线。这种技术组合特别适合ARM Cortex-M系列微控制器的嵌入式应用,能够实现低内存消耗的流式图像处理。在实际工业HMI等场景中,该方案已验证可支持从SD卡流畅加载BMP等格式图像,满足嵌入式GUI开发中对性能与资源的平衡需求。 阅读详情

相关推荐

W25QXX系列Flash存储器模块驱动代码

正点原子代码移植

m0_75090944的博客 1812

【实战解析】RT-Thread下STM32F4驱动NAND Flash,RL-FlashFS移植避坑指南

本文详细解析了在RT-Thread操作系统下,如何为STM32F4系列MCU移植RL-FlashFS文件系统以驱动NAND Flash存储器的实战经验。文章从硬件选型、底层驱动实现到系统适配与性能优化,全面介绍了移植过程中的关键步骤和常见问题解决方案,特别针对NAND Flash的坏块管理和掉电保护等特性提供了实用建议。

weixin_30847063的博客 384

STM32 FSMC挂载NOR Flash与FlashFS文件系统方案实战

在嵌入式系统设计中,代码执行与数据存储往往需要兼顾速度与可靠性。NOR Flash凭借随机读取快、支持片上执行(XIP)的特点,成为关键场景的理想选择,但传统SPI接口带宽受限。STM32的FSMC外设可并行访问外部存储器,将NOR Flash映射到内存地址空间,实现接近总线频率的读操作。配合FlashFS文件系统,无需底层管理扇区与磨损均衡,即可通过标准文件接口读写配置参数和日志数据。本文以STM32F103VE通过FSMC连接S29GL128 16MB NOR Flash为例,剖析硬件接线、FSMC时序

weixin_32770423的博客 336

RL_ARM源码4.12

RL-ARM是Keil MDK自带的Real-Time Library,其中包括RTX 内核(Real-Time eXecutive,实时操作系统)、RL-FlashFS(文件系统)、RL-TCPnet(TCP/IP协议栈)、RL-CAN(CAN总线函数库)和RL-USB(USB总线函数库)。还有一个中文的说明文档。

RL-FlashFS V6.X文件系统模板 基于STM3单片机的VFreeRTOS + RL-FlashFS V6.X + NAND.zip

RL-FlashFS V6.X文件系统模板 基于STM3单片机的VFreeRTOS + RL-FlashFS V6.X + NAND.zip

电力市场小白必看:手把手教你用Matlab实现市场出清电价计算(附完整代码)

本文为电力市场初学者提供了使用Matlab计算市场出清电价的完整指南。通过Yalmip和Matpower工具包,详细讲解了从环境配置到模型构建、求解及结果分析的整个过程,帮助读者快速掌握节点电价计算的核心技术。

weixin_30379531的博客 73

KITTI数据集下载及解析

KITTI数据集下载及解析 版本 更新时间 更新内容 作者 1 V 1.0 xxx 完成主体内容 W. Xiao 2 文章目录KITTI Dataset1 简介1.1 数据采集平台1.2 坐标系2 数据解析2.1 image文件2.2 velodyne文件2.3 calib文件2.4 label文件3 KITTI可视...

u013086672的博客 5万+

【学习笔记】人群归因分数 PAF 以及combined PAF(更新)

在此推荐2篇发表在lancet以及jama子刊上的paf文章,这两篇文章套路是一样的,只是在不同国家进行。希望对大家学习PAF有所帮助,后面有新内容也会继续分享,也欢迎大家分享使用R语言计算PAF的经验~~~的时候,先建立了相关矩阵,再做主成分分析,得到communality。详细信息大家可翻阅原文。

weixin_53499537的博客 1497

5分钟搞定:用Ollama在MacBook上本地运行Qwen3大模型(附避坑指南)

本文详细介绍了如何在MacBook上使用Ollama快速部署和运行Qwen3大模型,包括安装步骤、性能优化技巧及常见问题解决方案。Ollama作为一款轻量级工具,特别适合M系列芯片的Mac用户,支持多种量化版本,显著降低资源消耗,提升推理速度。

sql99的博客 822

【26美赛B题】2026美赛数学建模(MCM/ICM)思路解析及代码分享

2026美赛数学建模B题解析与备赛指南:本文针对B题"数据+预测+决策优化"的特点,提出通用建模路线图,包含数据预处理、特征工程、预测模型构建、策略优化和稳定性验证等关键环节。提供赛题拆解方法、Python/Matlab双实现方案、AI辅助建模技巧及论文写作模板。适用于2026美赛B题参赛者及其他数学建模竞赛选手,帮助掌握从数据到决策的闭环建模流程,特别强调逻辑严谨性和结果可视化呈现。订阅者可获取历年真题解析和持续更新的备赛资源。

一键难忘的博客 2109

SAP 系统间 SSO 的真正价值,从 SM59 到可信 RFC 的安全设计

SAP S/4HANA系统间Single Sign-On(SSO)的核心价值在于集中管理通信身份与信任关系,而非仅减少密码输入。传统固定账号密码方式在系统规模扩大后会面临密码管理、审计追踪等挑战。通过SM59配置可信RFC目标系统,结合SSL证书或SAP Trusted System等强认证机制,能有效降低安全凭据暴露风险。SSO配置需配合授权对象、角色管理等建立清晰的信任边界,实现系统间安全通信的同时保持可审计性。这种方案特别适用于Fiori前端与S/4HANA后端等场景,通过可信RFC传递用户身份,避免

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1063

得物(毒)App潮鞋价格波动监控系统实战:从爬虫开发到数据可视化完整指南

本文将带领您从零开始构建一套完整的得物潮鞋价格监控系统,涵盖爬虫开发、数据存储、价格波动分析和可视化展示等全流程技术。我们将使用最新的Python技术栈,包括异步爬虫框架、智能代理池、反爬虫绕过技巧,以及基于机器学习的时间序列预测模型。无论您是想要追踪特定鞋款价格的潮流爱好者,还是希望构建商业级监控系统的开发者,这篇文章都将为您提供切实可行的解决方案。

2201_76125261的博客 2505

华为OD机试真题 新系统 2026-04-26 Python&JS 实现【最大化游戏试玩资格分发】

新研发了一台游戏设备可以面向用户接受试玩。现有 n 个试玩申请,每个试玩有开始时间和结束时间。作为协调员,为了能让更多人体验到游戏,你需要对试玩申请进行选择,使得:

MISAYAONE的博客 290

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: 现在的软件还真的挺方便
下一篇: 基于DM9161的RL-TCPnet实现
zoogar
博客等级 码龄19年 37粉丝 19原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值