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

Vela-OS: 记录一个class层,处理MSC协议的bug

一、关于USC-MSC类设备驱动层,处理SCSI指令的代码逻辑问题

1. 源文件
\nuttx\drivers\usbdev\usbmsc_scsi.c

2. 问题描述
对于INQUIRY指令,长度一般是6个字节,cdblen字段嵌入在CBW数据包中,如下:
命令阶段的CBW数据包:
55 53 42 43  60 2a c0 8b  24 00 00 00  0x80 0x0 [06] 12 ...


但是HOST也有可能下发12字节,比如在格式化盘符的时候:
命令阶段的CBW数据包:
55 53 42 43  60 2a c0 8b  24 00 00 00  0x80 0x0 [0C] 12 ...

3. 一般性处理方法
对比一般的U盘,设备端在数据阶段,直接返回数据。
-------------------------------------------------------------------------
30.2 31  OUT    55 53 42 43  20 5a 81 83  38 00 00 00  80 00 [0c] 12
                00 00 00 38  00 00 00 00  00 00 00 00  00 00 00
30.1 56  IN     00 80 06 02  1f 00 00 00  47 65 6e 65  72 69 63 20
                53 54 4f 52  41 47 45 20  44 45 56 49  43 45 20 20
                31 34 30 34  05 e3 07 51  47 45 4e 45  00 25 00 00
30.1 13  IN     55 53 42 53  20 5a 81 83  00

http://www.lryc.cn/news/338942.html

相关文章:

  • 跨框架探索:React Redux 和 Vuex 对比分析快速掌握React Redux
  • 第十五届蓝桥杯省赛C/C++大学B组真题及赛后总结
  • 【Qt踩坑】ARM 编译Qt5.14.2源码-QtWebEngine
  • SQL语法 case when语句用法讲解
  • Project Euler_Problem 193_Few Repeated Digits_欧拉筛+容斥公式
  • 排序算法-基数排序
  • ChatGPT在线网页版
  • 5.SpringSpringBoot八股
  • 0基础刷图论最短路 3(从ATcoder 0分到1800分)
  • k8s+docker一键安装过程
  • Python3+Appium+Android SDK+真机+实现app自动化测试-基于Red Hat7.9版本搭建环境及运行python脚本。
  • 深入理解MD5算法:原理、应用与安全
  • 架构师系列-搜索引擎ElasticSearch(三)- Java API
  • Ubuntu下配置Android NDK环境
  • 使用 vue3-sfc-loader 加载远程Vue文件, 在运行时动态加载 .vue 文件。无需 Node.js 环境,无需 (webpack) 构建步骤
  • stm32移植嵌入式数据库FlashDB
  • Ubuntu 安装Java、Git、maven、Jenkins等持续集成环境
  • 文件批量重命名并批量修改文件扩展名,支持随机大小写字母命名并修改扩展名字母
  • 【管理咨询宝藏70】MBB大型城投集团内外部环境分析报告
  • 服务器挖矿病毒解决ponscan,定时任务解决
  • 【鸿蒙开发】第二十一章 Media媒体服务(二)--- 音频播放和录制
  • 网络安全从入门到精通(特别篇I):Windows安全事件应急响应之Windows应急响应基础必备技能
  • 基于SpringBoot+Mybatis框架的私人影院预约系统(附源码,包含数据库文件)
  • 【SERVERLESS】AWS Lambda上实操
  • IDEA2023 开发环境配置
  • YOLOV5 + 双目相机实现三维测距(新版本)
  • 【计算机网络】(一)计算机网络概述
  • 前端npm常用命令总结
  • [尚硅谷flink] 检查点笔记
  • JVM虚拟机(五)强引用、软引用、弱引用、虚引用