如何给R128在FreeRTOS下配置/data目录

2023-10-23 17:12
文章标签 配置 data 目录 freertos r128

本文主要是介绍如何给R128在FreeRTOS下配置/data目录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在调试音频、usb等模块时,会发现SDK的根目录下没有/data该目录,导致无法存储所需要的文件,这就是因为/data目录没有配置好的原因。

1、选上配置

首先需要选上的配置:
运行mrtos_menuconfig,选上COMPONENT_LITTLEFS

-> System components-> thirdparty components[*] LittleFS Filesystem

选上littlefs只是支持了这个功能,另外还需要对分区进行配置。

2、确认分区表

通过命令cconfigs,跳转到方案配置目录,找到文件sys_partition.fex

这里需要注意,目录下可能会有多个分区文件,带着不同后缀的,比如说nor,xip等等的,因此需要确认用的是哪一个分区表,以免修改不生效

在方案已经编译完成之后,运行

pack

命令对方案进行打包,通过打包时打印出来的log信息,可以提取到用的是哪一个分区表,如下:

在这里插入图片描述

如图片,可以确认到打包示例中调用的分区表。

3、修改分区表

在分区表中加入以下配置代码:

[partition]name         = UDISKdownloadfile = "data_udisk.fex"user_type    = 0x8100

通过上述的代码,在打包固件调用的pack_img.sh脚本中,通过函数

function make_data_image()

会创建对应的分区。

4、挂载目录

分区已经建好的话,剩下就是通过littlefs将区分挂载到目录下了。

在方案的main.c函数中(这里只是举个例子,在系统启动时挂载目录即可,但是需要注意要在flash初始化完成之后才能挂载)

在main.c中,添加以下代码:

littlefs_mount("/dev/UDISK", "/data", true);

/dev/UDISK就是分区名字,由分区表产生的。
/data则是创建目录的名字及路径。

通过以上步骤,即可为方案新建一个/data目录,可以用于保存一些程序所需要用到的文件。

5、保存文件到data目录下

1.在SDK编译环境中存放文件
可以在编译时,所需要的文件放到UDISK分区。

存放文件到UDISK分区方法为:

直接将文件拷贝到编译环境对应的路径下:

{root_dir}/board/芯片名/方案名/data/UDISK

在SDK打包时就会将UDISK目录下的文件全部打包生成udisk的镜像,最终打包到image里。

在烧录时,就会udisk的镜像烧录到对应的分区里。系统启动,挂载分区之后,就直接可以通过/data目录访问到对应的文件了。

2.通过代码读写文件
FreeRTOS SDK中,通过fopen fwrite fread等POSIX接口,即可操作UDISK分区(/data目录)的文件。

以下做个示例:

static int save_to_file(void *str, void *start, int length)
{FILE *fp = NULL;fp = fopen(str, "wb+"); //save more framesif (!fp) {printf(" Open %s error\n", (char *)str);return -1;}if (fwrite(start, length, 1, fp)) {fclose(fp);return 0;} else {printf(" Write file fail (%s)\n", strerror(errno));fclose(fp);return -1;}return 0;
}
  • str: 路径名,若为/data目录的话,比如说写入一个a.txt,str可以定义为 /data/a.txt
  • start:所需要写入的数据起始地址
  • length:所需要写的数据的长度。

这篇关于如何给R128在FreeRTOS下配置/data目录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/269271

相关文章

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

SpringBoot线程池配置使用示例详解

《SpringBoot线程池配置使用示例详解》SpringBoot集成@Async注解,支持线程池参数配置(核心数、队列容量、拒绝策略等)及生命周期管理,结合监控与任务装饰器,提升异步处理效率与系统... 目录一、核心特性二、添加依赖三、参数详解四、配置线程池五、应用实践代码说明拒绝策略(Rejected

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、