fatfs中dir_clear函数说明

从ADS到HighTec:英飞凌AURIX TC3xx开发环境切换实战(附完整源码移植步骤) 本文详细介绍了从ADS开发环境迁移到HighTec环境的完整流程,特别针对英飞凌AURIX TC3xx系列微控制器。内容涵盖开发环境架构差异分析、工程结构迁移步骤、关键组件适配调试等核心技术要点,并提供完整的源码移植方案,帮助嵌入式开发工程师高效完成环境切换。 阅读详情

//清零一个蔟
//首先将win同步
//然后根据蔟号得到蔟的首扇区号
//清空win
//如果使能堆中申请内存
//则申请空间、清零空间、写入到磁盘对应扇区、释放空间
//如果没有使能堆,或申请空间失败
//则使用win空间,每次清零1个扇区,注意win空间为一个扇区大小
//整个蔟擦除则返回成功,否则返回失败。

static FRESULT dir_clear (	/* Returns FR_OK or FR_DISK_ERR */
	FATFS *fs,//文件系统对象。/* Filesystem object */
	DWORD clst//蔟号。该蔟用来存储根目录。/* Directory table to clear */
)
{
	LBA_t sect;
	UINT n, szb;
	BYTE *ibuf;

	if (sync_window(fs) != FR_OK) //将win同步
		return FR_DISK_ERR;	//同步失败,磁盘错误。/* Flush disk access window */
	sect = clst2sect(fs, clst);//通过蔟号得到首扇区号。	/* Top of the cluster */
	fs->winsect = sect;//配置扇区号。/* Set window to top of the cluster */
	memset(fs->win, 0, sizeof fs->win);//清空win缓冲区。/* Clear window buffer */
#if FF_USE_LFN == 3//在堆上申请内存空间。/* Quick table clear by using multi-secter write */
	/* Allocate a temporary buffer */
	//如果每蔟扇区数*每扇区字节数大于等于MAX_MALLOC
	//则szb使用MAX_MALLOC
	//否则使用每蔟扇区数*每扇区字节数
	//如果szb等于每扇区字节数,则没必要使用堆内存,直接使用win即可
	//如果szb小于每扇区字节数,则申请内存不够一个扇区大小,直接使用功能win
	//如果szb太大,申请失败了,则将szb减半再申请
	for (szb = ((DWORD)fs->csize * SS(fs) >= MAX_MALLOC) ? MAX_MALLOC : fs->csize * SS(fs), ibuf = 0; \
		 szb > SS(fs) && (ibuf = ff_memalloc(szb)) == 0; \
		 szb /= 2) ;
	if (szb > SS(fs)) {//buf申请成功。/* Buffer allocated? */
		memset(ibuf, 0, szb);//清空buf
		szb /= SS(fs);	//计算申请空间是扇区大小的多少倍	/* Bytes -> Sectors */
		//csize表示每蔟扇区数,n从0到csize - 1
		//步进值为szb
		//每次写的大小为szb个扇区
		for (n = 0; n < fs->csize && disk_write(fs->pdrv, ibuf, sect + n, szb) == RES_OK; n += szb) ;	/* Fill the cluster with 0 */
		ff_memfree(ibuf);//释放空间
	} else
#endif
	{
		ibuf = fs->win; //ibuf指向win缓冲区
		szb = 1;	/* Use window buffer (many single-sector writes may take a time) */
		//csize:每蔟扇区数。
		//sect为蔟中首扇区号。
		//将ibuf中数据写入磁盘sect + n号扇区,每次写一个扇区
		for (n = 0; n < fs->csize && disk_write(fs->pdrv, ibuf, sect + n, szb) == RES_OK; n += szb) ;	/* Fill the cluster with 0 */
	}
	return (n == fs->csize) ? FR_OK : FR_DISK_ERR;//n等于每蔟扇区数,则说明整个蔟全部清零完了
}
基于RT-Thread与NUC980的SPI OLED驱动及Bad Apple动画播放实践 SPI(串行外设接口)是一种广泛应用于嵌入式系统的同步串行通信协议,以其全双工、高速、引脚少的特性成为连接微控制器与各类外设(如存储器、传感器、显示屏)的主流方案。其工作原理基于主从模式,通过时钟线同步,在主设备控制下完成数据交换。在嵌入式图形显示领域,SPI常用于驱动OLED、TFT等屏幕,实现高效的点阵数据传输。掌握SPI驱动开发,对于构建具备人机交互能力的嵌入式产品至关重要。本文以国产实时操作系统RT-Thread和NUC980工业级微处理器为平台,深入剖析SPI OLED(以SSD1306驱动芯片为 阅读详情

相关推荐

LVGL V8.3嵌入式GUI实战:从字体图片到动态表盘的完整开发指南

在嵌入式系统开发中,图形用户界面(GUI)的实现是提升产品交互体验的关键。其核心原理在于通过轻量级图形库在资源受限的MCU上驱动屏幕,完成图形渲染与事件处理。这项技术的价值在于为智能穿戴、工业HMI等设备提供美观、流畅的视觉交互,而无需依赖高性能处理器。常见的应用场景包括智能手表表盘、设备状态显示屏等。本文聚焦于LVGL这一流行的开源嵌入式图形库,深入探讨其在实际项目中的工程实践。针对开发中的高频需求,文章详细解析了**字体处理**的优化方案,例如如何通过字符集裁剪显著减少资源占用;并系统介绍了**图片集成

weixin_34347651的博客 370

FATFS里的DIR结构体

/* Directory object structure (DIR) */ typedef struct { FFOBJID obj; /* Object identifier */ DWORD dptr; /* Current read/write offset */ DWORD clust; /* Current cluster */ DWORD sect; /* ...

魏波 2151

FatFS文件系统的使用(STM32)

分享关于FatFS在STM32平台的上的使用及注意事项

weixin_38743772的博客 6697

[转]FatFS文件系统 ,详解每个API用法

转自:http://blog.chinaunix.net/uid-20766895-id-2827635.html FatFS文件系统 分类: C/C++ 2011-09-13 20:01:42     FATFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块。FatFs 的编写遵循ANSI C,并且完全与磁盘I/O层分开。因此,它独立...

unsv29的专栏 5481

FatFs源码分析

#include "ff.h" #include "diskio.h" /* 扩展字符范围 */ #define _DF1S 0x81 #define _DF1E 0xFE #define _DS1S 0x40 #define _DS1E 0x7E #define _DS2S 0x80 #define _DS2E 0xFE /* 字符类型相关宏定义 */ #define IsUpper(c) (((c)>='A')&&((c)<='Z')) #define IsLower(.

lushoumin的博客 1370

智慧城市项目实战:如何将你的地理数据从城市坐标系(如上海2000)转换到国家CGCS2000?

本文详细介绍了智慧城市项目中地理数据坐标系转换的全流程解决方案,重点讲解如何将城市坐标系(如上海2000)转换到国家CGCS2000。通过七参数布尔莎模型、ArcGIS Pro、QGIS开源方案及Python编程实现,帮助实施团队解决坐标系不统一的技术难题,确保空间分析精度。

weixin_28725949的博客 306

fatfs文件系统中dir_sdi函数说明

fatfs文件系统中dir_sdi函数说明

csdn_ndsc 1732

机器人关节电机发热难题:从工程化角度拆解热管理解决方案(下)

摘要:本文系统分析了机器人关节电机与驱动系统的热管理方案,重点解决局部热点问题。针对不同功率场景提出了热管/均热板散热(适用于中小功率)和液冷散热(适用于高功率)的具体实施方案,详细比较了结构参数、材料选择、安装工艺和散热效果。特别强调了电机-驱动协同热管理的重要性,提出"工况联动+热路径共享"的核心理念,包括一体化散热结构设计和动态控制策略。最后介绍了热仿真与测试验证方法,确保方案的有效落地。通过系统级热管理,可显著降低温升(热点区域降温30-60℃),同时优化体积和能耗。

bother3000的博客 3329

fatfs递归输出路径和文件名 递归删除文件和目录

递归输出目录和文件名函数 递归删除目录和文件名函数

swd22的博客 1835

KEPServerEX与三菱iQ-R系列PLC通讯

KEPServerEX与三菱iQ-R系列PLC通讯Mitsubishi Ethernet北京东方鼎晨科技有限公司目 录1. 前言2. 三菱PLC端相关设置3. Kepware端相关设置KEPServerEX是美国PTC Kepware公司生产的具有行业性的连接平台,KEPServerEX支持150多种通讯协议,用于向您的所有应用程序提供单一来源的工业自动化数据。该平台的设计使用户能够通过一个直观的用户界面来连接、管理、监视和控制不同的自动化设备和软件应用程序。KEPServerEX利用OPC(自动化产业的互

qq_28768521的博客 8096

基于FPGA的PCIe核系列:FPGA root模式生成工程例子分析(1)

一、 PCIE系统架构 1.1 PCIE分层结构 PCIE结构 1.2 TLP包 四种TLP类型。 Memory (内存空间操作) IO (IO空间操作) Configuration (配置操作) Message (信息操作) 四种类型TLP,如果有需要响应,称为Non-Posted TLP,如果没有需要响应,称为Posted TLP。 TLP包类型 1.2.1 TLP结构 TLP数据格式 1.2.2 Header各个字段的含义 Header格式 ...

huangshanhu的博客 3433

FATFS函数浅谈 看完学会FATSFS,建议收藏

FSTF函数说明

Lushengshi的博客 4656

5 分钟上手 Kimi Work:安装、配置、跑通第一个任务

这篇文章提供了Kimi Work的快速入门指南,帮助用户在5分钟内完成从安装到运行第一个任务的全过程。主要内容包括: 安装步骤: macOS用户下载.dmg文件并拖入Applications Windows用户下载.exe安装包,需注意中文路径问题 初始设置: 使用现有Kimi账号登录 检查任务配额和文件访问权限 首个任务推荐: 建议从简单的本地文件整理开始(如按类型分类桌面文件) 详细说明了任务执行流程和审批机制 常见问题: 计划生成卡顿的解决方法 文件无变化的排查步骤 进阶建议: 提供难度递增的后续任务

sg_knight的专栏 2782

fatfs文件系统中目录代码分析

fatfs文件系统代码分析1

csdn_ndsc 1444

Selenium|通过更改亚马逊amazon的配送地获取当地的cookie

如果我们需要拿到国外配送地的商品信息,这个时候就需要用到selenium或者pypputeer自动化的方法去更改配送地,拿到当地的cookie信息,之后,携带当地的cookie使用requests发送请求,就可以拿到国外配送地的商品数据信息。一般来说,我们访问亚马逊,亚马逊的配送地一般显示的是国内,但是国内的商品信息和国外的商品信息其实是存在很大差别的,比如你在搜索框输入某个关键词,看到的

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 993

【OpenClaw从入门到精通】第19篇:OpenClaw电商实战:从零搭建比价+库存监控+自动调价全自动化系统(2026实测附完整代码)

2026年OpenClaw成为全球最火开源项目,电商行业因其场景高频、数据标准化成为其核心落地领域。本文针对电商从业者面临的比价繁琐、库存混乱、调价滞后三大痛点,基于OpenClaw的“接入层-执行层-决策层”三层架构,从零拆解智能比价、多平台库存监控、动态自动调价三大核心场景的实现逻辑。文中包含完整的环境配置、技能安装、代码实现(含Python脚本与YAML配置)、执行结果验证,同时补充关键算法原理与避坑指南,兼顾新手入门与进阶提升。读者可直接参考本文实操流程,快速搭建属于自己的电商自动化系统,实现7×2

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2238

FatFs-目录下文件扫描

FatFs - 通用的FAT文件系统模块 FatFs是用于小型嵌入式系统的通用FAT/exFAT文件系统模块。FatFs模块是按照ANSI C (C89)编写的,完全独立于磁盘I/O层。因此它是独立于平台的。在资源有限的情况下,可以集成到小型微控制器中,如8051、PIC、AVR、ARM、Z80、RX等。这里也提供了用于微型微控制器的Petit FatFs模块。 官方网站:http://el......

xfxuezhang.cn 2万+

DDR5 的 PI: DIMM 上 PMIC,正在制造一批“新型 EMI 问题”

DDR5 的 PI,不再只是“供电设计”,而是一次“噪声管理设计”。电压稳定本地调节高频噪声EMI 风险系统不确定性DDR5 真正难的地方,不是跑起来,而是——在最差条件下,它还能不能一直跑。而 DIMM 上那颗 PMIC,正是你绕不开的关键角色。

weixin_43199439的博客 181

【STM32】FATFS文件系统f_mkfs卡死

复盘猜想,大概是因为调试时,没有正确退出调试状态,在SPI Flash读写的时候下电,无意中破坏了创建好的文件系统,但也没法正确进行格式化。全片擦除之后再进行初始化操作就正常了,就是全片擦除速度很慢,128MB大概要30s。昨天晚上调通了,今天早上再调试,发现f_mount返回FR_NOFILESYSTEM。依据网上所说,对磁盘格式化f_mkfs,卡死在FATFS库的ff.c->f_mkfs()的某个for循环里。最后对SPI Flash进行了全片擦除命令,之后就可以正常操作了。

tobeyttd的博客 3611

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

STM32利用FATFS文件系统删除SD卡中的文件夹

STM32利用FATFS文件系统删除文件夹

原野拓荒的博客 7400

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

FatFs 删除目录下所有文件

/*删除目录下的所有文件*/ FRESULT delete_files ( char* path /* Start node to be scanned (***also used as work area***) */ ) { FRESULT res; DIR dir; UINT i; static FILINFO fno; re...

qq_21162393的博客 5372

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

FatFS文件系统 (每条指令讲的都很细)

来源:http://blog.chinaunix.net/uid-20766895-id-2827635.html FATFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块。FatFs 的编写遵循ANSI C,并且完全与磁盘I/O层分开。因此,它独立(不依赖)于硬件架构。它可以被嵌入到低成本的微控制器中,如AVR, 8051, PIC

limanjihe的专栏 7万+

FATFS-f_deldir-删除文件夹(删除子文件夹及文件连同其本身)

//==================================================================================================== //函 数 名 : f_deldir //函数功能 : 移除一个文件夹,包括其本身和其子文件夹,子文件 //输 入 : const TCHAR *path---指向要移除的空结尾字符串对象

我在学C语言 1万+

在uC-OSII多个任务中使用FATFS的重入问题

FATFS文件系统,在多个任务都存在文件处理时,可能会因为任务调度导致在f_open函数执行过程中被其他任务抢断,导致文件系统中的FATFS fs变量的值会与当前任务处理文件的初始值不匹配,导致异常发生。 f_open打开文件操作 FRESULT f_open ( FIL* fp,/* Pointer to the blank file object...

梦想启航 3547

在我的工程中移植文件系统--FATFS v14

1.环境概述 开发环境:MDK5.26,V5编译器,使用芯片为STM32F103VCT6,48K RAM+256K ROM 使用SPI1(复用),注意 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); //关闭JTAG功能 GPIO_PinRemapConfig (GPIO_Remap_SPI1,ENABLE);//完全重映射 使用25Q80,大小为8Mbit = 1MByte,存储映像如下 工程本身提供如下函数接口;

qq_35451217的博客 905
上一篇: fatfs相关宏定义说明
下一篇: fatfs文件系统创建或扩展蔟链create_chain
freedomAfish
博客等级 码龄15年 19粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值