littleFS在RT1052移植笔记
环境:rt1052单片机+16G tf卡
为什么使用littleFS?
- NXP官方SDK支持!
- 先进的损耗平衡功能(wear leveling)可提供最长的快闪及内存寿命及最大的使用量。因为FALSH的擦除/写次数有限制,通常是10万次。
- RAM和FLASH用的少,也就是内存和代码和精简。
4. 掉电保护,设备突然断电,文件系统不会损坏。
对比FATFS, fatfs使用固定的块做文件系统管理,多次读写后,整个系统就坏了,但是其他块其实没用多少次。本人并不建议大家在flash上使用fatfs !
移植使用
- 将lfs四个源文件和刚刚创建的两个文件添加到工程,直接编译。
测试lfs源码是否能编译通过。 
修改动态内存最大长度, #define Heap_Size, 因为要是有标准函数malloc,见源码函数:static inline void *lfs_malloc(size_t size)
添加实际的驱动函数到结构体变量lfs_config。
struct lfs_config lfs_cfg= {
// block device operations
.read = lfs_TFCard_read,
.prog = lfs_TFCard_prog,
.erase = lfs_TFCard_erase,
.sync = lfs_TFCard_sync,
// block device configuration
.read_size = LFS_READ_SIZE,
.prog_size = LFS_PREG_SIZE,
.block_size = LFS_BLOCK_SIZE, block_count = LFS_BLOCK_COUNT,.lookahead = LFS_LOOKAHEAD,};
初始化:
sd_card_t *card = &g_sd;
/* 初始化SD外设时钟 */
BOARD_USDHCClockConfiguration();
card->host.base = SD_HOST_BASEADDR;
card->host.sourceClock_Hz = SD_HOST_CLK_FREQ;
/* SD主机初始化函数 */
if (SD_HostInit(card) != kStatus_Success)
{
PRINTF("\r\nSD主机初始化失败\r\n");
return -1;
}
/* 初始化SD卡 */
if (SD_CardInit(card))
{
PRINTF("\r\nSD初始化失败\r\n");
return -1;
}
5.挂载测试
err = lfs_mount(lfs, &lfs_cfg); //挂载
6.文件操作
err = lfs_file_open(lfs, &g_lfs_file, "update.bin", LFS_O_RDWR);
//打开bin文件,LFS_O_RDWR,读写方式
其他功能后续补充,本次就到这里,做个记录。
- 将lfs四个源文件和刚刚创建的两个文件添加到工程,直接编译。
littleFS在RT1052移植笔记的更多相关文章
- tslib移植笔记(1)【转】
本文转载自:https://blog.csdn.net/zijie_xiao/article/details/50740950 tslib移植笔记(1)2016-04-25 tslib背景[摘自百度] ...
- STemWin5.22移植笔记【转】
来自:http://www.openedv.com/posts/list/27697.htm STemWin5.22移植笔记 网上关于emwin的资料很少,我在移植的时候查了很多资料,对我一个感觉是好 ...
- JZ2440 u-boot-2016.11、linux-4.17和busybox-1.28.4移植笔记
2018年5月份开始在JZ2440上陆续移植了u-boot-2016.11.u-boot-spl-2016.11.linux-4.17和busybox-1.28.4,其中linux-4.17和busy ...
- FreeRTOS学习及移植笔记之二:在IAR和STM32F103VET上移植FreeRTOS
上一次,我们简单的测试了FreeRTOS的基于IAR EWARM v6.4和STM32F103VET6平台的Demo,对其有了一个基本认识.接下来我们开始自己移植FreeRTOS的过程. 1.创建一个 ...
- FreeRTOS学习及移植笔记之一:开始FreeRTOS之旅
1.必要的准备工作 工欲善其事,必先利其器,在开始学习和移植之前,相应的准备工作必不可少.所以在开始我们写要准备如下: 测试环境:我准备在STM32F103平台上移植和测试FreeRTOS系统 准备F ...
- rt—移植笔记2(Lwip)
首先参考f107已经有的目录结构添加Lwip这一组,添加各种.c文件及.文件. 还有drive下边的很重要的eth.c 到此,工程编译通过.(刚开始,小编是一个一个 的比对...一个一个错误排查... ...
- rt—移植笔记1
将rtt源码往stm32f407移植的时候,源码串口打印引脚设置有误,以下是源码引脚配置. 以下是原理图 可见配置有误.
- i2c设备驱动移植笔记(二)
说明:上一篇博客写了我在移植android驱动之TEF6606的苦逼遭遇,即驱动层向应用层提供接口支持,查找了两天的资料,不得不放弃,转而进行IIC下移植RTC设备的实验. 第一步:查找设备的数据手册 ...
- 三种嵌入式web服务器(Boa / lighttpd / shttpd)的 linux移植笔记
一:移植Boa(web服务器)到嵌入式Linux系统 一.Boa程序的移植 1.下载Boa源码 下载地址: http://www.boa.org/ 目前最新发行版本: 0.94.13 ...
随机推荐
- html5的 embed元素 和 object元素
html5的 embed元素 和 object元素 一.总结 一句话总结: embed定义嵌入的内容,比如插件,比如flash object定义定义一个嵌入的对象,用于包含对象,比如图像.音频.视频. ...
- CheatEngine查看PE header
先打开进程,炉石传说. 然后选择MemoryViewer 在MemoryViewer界面,Tools菜单,然后选择Dissect PE headers 然后查看mono.dll的信息 0x357A0是 ...
- qt 应用程序版本设置方法
pro 增加 VERSION = 1.2.3.4 DEFINES += APP_VERSION=\\\"$$VERSION\\\" 应用程序中用 APP_VERSION 宏就可以获 ...
- 常见的医学基因筛查检测 | genetic testing | 相癌症早筛 | 液体活检
NIPT, Non-invasive Prenatal Testing - 无创产前基因检测 (学术名词) NIFTY,胎儿染色体异常无创产前基因检测 (注册商标)华大的明显产品 新生儿耳聋基因检测 ...
- 创建加载bean的实例
一.创建实例 工程的结构如下图 1.创建接口 public interface Person { public void setName(String name); public String say ...
- eclipse如何配置tomcat
依次点击Window->Show View->Other 找到Server,点击OK,看到控制台旁边已有Server了. 点击server下面的链接,依次选择Apache,根据自己 ...
- MQTT 客户端应用及常见问题(C#)
https://blog.csdn.net/dengyaan/article/details/51752327 最近因为工作需要,需要使用C# 语言编写一个通过MQTT协议 ,上传数据到云端的工具.因 ...
- Grafana 在添加邮件和钉钉报警之后不报警的原因是没有重启grafana 不生效重启。
即使在grafana页面上面添加也需要重启.配置邮件配置文件更需要重启. systemctl restart grafana-server.service
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_38、源码编译安装Redis4.x
笔记 2.源码编译安装Redis4.x 简介:使用源码安装Redis4.x和配置外网访问 1.快速安装 https://redis.io/download#installation ...
- Dart自定义库、系统库和第三方库
/* 前面介绍Dart基础知识的时候基本上都是在一个文件里面编写Dart代码的,但实际开发中不可能这么写,模块化很重要,所以这就需要使用到库的概念. 在Dart中,库的使用时通过import关键字引入 ...