如何给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

相关文章

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr

史上最全nginx详细参数配置

《史上最全nginx详细参数配置》Nginx是一个轻量级高性能的HTTP和反向代理服务器,同时也是一个通用代理服务器(TCP/UDP/IMAP/POP3/SMTP),最初由俄罗斯人IgorSyso... 目录基本命令默认配置搭建站点根据文件类型设置过期时间禁止文件缓存防盗链静态文件压缩指定定错误页面跨域问题

nginx负载均衡及详细配置方法

《nginx负载均衡及详细配置方法》Nginx作为一种高效的Web服务器和反向代理服务器,广泛应用于网站的负载均衡中,:本文主要介绍nginx负载均衡及详细配置,需要的朋友可以参考下... 目录一、 nginx负载均衡策略1.1 基本负载均衡策略1.2 第三方策略1.3 策略对比二、 nginx配置2.1

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H