当前位置: 首页 > ops >正文

sd调试记录(标准库 + keil + RL-FlashFS):

裸机,RL-FlashFS,调试SD卡,几份很重要的资料:

1.  https://shequ.stmicroelectronics.cn/thread-600358-1-1.html,提供了一份pdf步骤说明;

2. 硬汉的两个文件夹:提供样例

a. RL-FlashFS+SD卡(裸机长文件名综合实现)文件夹;
b. RTX5 RL-USB FL-FlashFS RL-TCPnet emWin6.x(V1.1) 文件夹;

3. RL-ARM User's Guide (MDK v4): RL-FlashFS  keil 的官网说明;

可以分别去找,也可以在csdn中下载:sd卡嵌入式stm32RL-FlashFS移植资料资源-CSDN文库

安装资料1的步骤操作:

1)拷贝、设置相关文件;

2)根据自己的硬件(407),修改驱动;

3)测试SD卡;

一切还要,可以加载SD卡、卸载SD卡,但是:

1.执行写SD卡:fwrite、fprintf、fputs函数时没有写入SD卡,而是把数据写入到串口输出上了;

2.执行读SD卡:fread、fscanf、fgets函数时读SD卡时,程序卡滞了,但是没有死机;

问题发现,RL-FlashFS使用不能使用MicroLIB,printf、scanf需要通过retarget.c重定向两个函数int sendchar(int ch),int getkey (void)。由于程序bsp_uart_fifo.c中有四个函数:int sendchar(int ch),int getkey (void)、int fputc(int ch, FILE *f)、int fgetc(FILE *f);无论执行读写sd,还是执行读写串口(printf),都重定向为这两组函数:nt fputc(int ch, FILE *f)、int fgetc(FILE *f);使得都是对串口进行操作,故出现1,2的问题,解决问题的方式有两种:

1. 删掉这两组函数,使得串口操作,比如printf重定向为:_sys_write函数,调用sendchar函数,写SD卡不知道是怎样重定向的;

2. 或者在原有的fputc函数添加if语句:

int fputc(int ch, FILE *f)
{/* 采用阻塞方式发送每个字符,等待数据发送完毕 *//* 使用了RL-TCPnet网络协议栈,这里特别调整下 */if (f == &__stdout) {  if (ch == '\n')  // 如果是换行符,凑齐 \r\n{sendchar('\r');  // 发送回车符/* 等待发送结束 */}sendchar(ch);  // 发送字符}return ch;}
int fgetc(FILE *f)
{if (f == &__stdin) { /* 等待串口1输入数据 */return ((int)getkey());}return EOF;  // 如果不是标准输入流,返回EOF}

方法2,解决了sd卡读写不会对串口进行操作,但是写sd卡的时候,内容还是空,原因没有找到。

方法1,可以实现对sd卡的准确操作。

http://www.xdnf.cn/news/14174.html

相关文章:

  • 算法题:一个数组,找出其中最小连续的子数组,是的这个子数组排序后,整体数组...
  • [直播推流] 编译 librtmp 库
  • 【QT】控件一(QWidget、Button、Label)
  • 设计模式汇总
  • 从易用性出发的教育场景音量调节技术方案
  • Dify 本地化部署教程(含常见问题与解决方案)
  • 【Day48】
  • [Android] 水电工手册 25.5版本
  • 《A Gentle Introduction to Graph Neural Networks》
  • CQF预备知识:Python相关库 -- 核密度估计 scipy.stats
  • 【后端高阶面经:实战篇】59、Java面试高频考点深度解析:从基础到架构师必备
  • 在 LaTeX 文档中htbp是什么,! 是什么意思
  • 基于区块链的去中心化身份验证系统:原理、实现与应用
  • JavaScript基础-阻止事件冒泡
  • 生产者消费者消息流转和基本实操
  • PG靶机复现 MZEEAV
  • JavaScript基础-事件对象
  • Oracle索引
  • Vue 事件修饰符详解
  • Linux集市采购指南[特殊字符]:yum和apt的“抢货”大战!
  • 数据结构 学习 队列 2025年6月14日 11点22分
  • 吴恩达机器学习笔记(2)—单变量线性回归
  • 检测 AI 生成的真实世界模拟视频
  • AI绘画能发展到企业大规模使用的地步么?
  • SD和comfyui常用模型介绍和下载
  • NLP学习路线图(四十六):可解释性
  • 制品构建与管理 - Docker 镜像的最佳实践
  • 【Ubuntu 22.04 推荐的 apt 包管理方式详解】
  • 人工智能学习17-Pandas-查看数据
  • MySQL从库复制延迟的监测