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

rt-thread中使用usb官方自带的驱动问题记录

环境说明

  1. 开发环境clion
  2. 主控stm32f407zgt6(正点原子探索者V3.4)
  3. rtthread版本使用5.2.0
  4. 代码生成stm32cubemx(6.14)

问题现象

在这里插入图片描述

主程序测试代码

/********************************************************************************* @file           : main.c* @author         : shchl* @brief          : None* @version        : 1.0* @attention      : None* @date           : 25-6-7******************************************************************************
*/
#include "rtthread.h"
#include "main.h"
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>int main(void)
{rt_device_t p_dev = RT_NULL;rt_uint8_t data = 0;p_dev = rt_device_find("vcom");if (p_dev){if (RT_EOK != rt_device_open(p_dev, RT_DEVICE_OFLAG_RDWR)){return -RT_ERROR;}}while (1){if (1 == rt_device_read(p_dev, 0, &data, 1)){rt_kprintf("%d\r\n", data);}rt_thread_mdelay(10);}return RT_EOK;
}

clion中问题排查

触发报错机制(通过向usb接口发送数据)

在这里插入图片描述

通过观察stack_frame中pc寄存器的值

在这里插入图片描述

将调用栈进行反汇编

在这里插入图片描述
在这里插入图片描述

定位报错代码

在这里插入图片描述

通过分析在调用此rt_hw_serial_isr函数时出现问题;然后对此函数进行具体分析

重新Debug进行具体分析

在这里插入图片描述

总结

  1. 本篇作为刚学习集成usb过程中使用到的问题记录。
  2. 为啥出现空指针的情况需要分析usb注册过程是否未进行对应的内存分配。
  3. 网上查询相关资料给出的解决方案是可以将串口驱动的版本换位V2版本。
  4. 给大家提供一个我使用clion分析问题的一个思路
http://www.lqws.cn/news/471439.html

相关文章:

  • Compose笔记(二十八)--加水印
  • 【好用但慎用】Windows 系统中将所有 WSL 发行版从 C 盘迁移到 非系统 盘的完整笔记(附 异常处理)
  • 网络基础入门:从OSI模型到TCP/IP协议详解
  • Gartner《AI-Driven Methods for Cost-Efficiency》学习心得
  • SQL Server 数据库操作
  • 大模型的开发应用(十二):RAG 与 LlamaIndex基础
  • 【论文阅读】人工智能在直升机航空电子系统中的应用
  • 随机一道面试题1:Python是解释型语言or编译型语言?
  • 算法-Day04
  • SD-WAN 不是“裸跑”:聊聊怎么把网络安全绑在智能网关上
  • 2025zbrush雕刻笔记
  • DPO直接偏好函数的学习解读
  • C语言:最大公约数
  • 以AI赋能创意未来:即梦3.0与Seedance1.0Lite重磅登陆POE!
  • 操作系统内核态和用户态--2-系统调用是什么?
  • 新手如何利用AI助手Cursor生成复杂项目
  • LINUX621 NFS 同步 ;FTP;samba环境
  • 李宏毅2025《机器学习》第三讲-AI的脑科学
  • AI大模型学习之基础数学:微积分在AI大模型中的核心-梯度与优化(梯度下降)详解
  • FreeRTOS事件组(Event Group)
  • Rust调用 DeepSeek API
  • kibana和elasticsearch安装
  • Docker简单介绍与使用以及下载对应镜像(项目前置)
  • 《揭开CSS渲染的隐秘角落:重排与重绘的深度博弈》
  • 《Whisper:开启语音识别新时代的钥匙》
  • 【Redis】深入理解 Redis 事务:命令、应用与实战案例
  • SiteAzure:解决数据库服务器内存频繁吃满
  • 【Weaviate底层机制】分布式一致性深度解析:Raft算法与最终一致性的协同设计
  • PHP语法基础篇(五):流程控制
  • 给交叉工具链增加libelf.so