RK3588平臺 USB框架與USB識別流程

一.USB的基本概念

在最初的標準里,USB接頭有4條線:電源,D-,D+,地線。我們暫且把這樣的叫做標準的USB接頭吧。后來OTG出現了,又增加了miniUSB接頭。而miniUSB接頭則有5條線,多了一條ID線,用來標識身份用的。

熱插拔(hot-plugging或Hot Swap)即帶電插拔,熱插拔功能就是允許用戶在不關閉系統,不切斷電源的情況下取出和更換損壞的硬盤、電源或板卡等部件,從而提高了系統對災難的及時恢復能力、擴展性和靈活性等。

二.Linux內核USB驅動框架

Linux內核支持兩種主要類型的USB驅動程序:宿主(host)系統上的驅動程序和設備(device)上的驅動程序。從宿主的USB驅動程序控制插入其中的USB設備,而USB設備的驅動程序控制該設備如何作為一個USB設備和主機通信。

主機側:?

從主機側去看,在Linux驅動中,處于USB驅動最底層的是USB主機控制器硬件,在其上的是USB主機控制器驅動,在主機控制器驅動上的為USB核心層,再上層為USB設備驅動層。因此,在主機側的層級結構中,要實現的USB驅動包括:USB主機控制器驅動和USB設備驅動。

USB核心層(USB core)向上為USB設備驅動提供編程接口,向下為USB主機控制器驅動提供編程接口,維護整個系統的USB設備信息,完成設備熱插拔控制、總線數據傳輸控制等。

USB設備驅動(USB Devices driver)負責驅動具體的設備,例如U盤,鼠標等設備。

三.USB設備檢測流程

在主機端控制器驅動加載的過程中,注冊了根集線器,然后匹配了相應的hub驅動程序,同時完成了對Hub的輪詢函數和狀態處理函數的設置。這樣,一旦hub集線器的狀態發生變化,就會產生相應的中斷,主機端控制器就會執行相應的中斷處理函數。Hub集線器主要是用于USB的匹配識別。

?

在系統初始化的時候在usb_init函數中調用usb_hub_init函數,就進入了hub的初始化

在usb_hub_init函數中完成了注冊hub驅動,并且利用函數kthread_run創建一個內核線程。該線程用來管理監視hub的狀態,所有的情況都通過該線程來報告。

四.USB插拔log分析

待更新。。。。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/168186.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/168186.shtml
英文地址,請注明出處:http://en.pswp.cn/news/168186.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

9. Mysql 模糊查詢和正則表達式

一、模糊查詢 1.1 LIKE運算符 在MySQL中,可以使用LIKE運算符進行模糊查詢。LIKE運算符用于匹配字符串模式,其中可以使用通配符來表示任意字符或字符序列。 示例代碼 SELECT * FROM table_name WHERE column_name LIKE pattern;table_name&#xff1a…

最新AIGC創作系統ChatGPT網站源碼,Midjourney繪畫系統,支持GPT-4圖片對話能力(上傳圖片并識圖理解對話),支持DALL-E3文生圖

一、AI創作系統 SparkAi創作系統是基于OpenAI很火的ChatGPT進行開發的Ai智能問答系統和Midjourney繪畫系統,支持OpenAI-GPT全模型國內AI全模型。本期針對源碼系統整體測試下來非常完美,可以說SparkAi是目前國內一款的ChatGPT對接OpenAI軟件系統。那么如…

2023亞太杯數學建模B題完整原創論文講解

大家好呀,從發布賽題一直到現在,總算完成了2023亞太地區數學建模競賽B題玻璃溫室的微氣候調控完整的成品論文。 本論文可以保證原創,保證高質量。絕不是隨便引用一大堆模型和代碼復制粘貼進來完全沒有應用糊弄人的垃圾半成品論文。 論文共6…

第4章 C++多線程系統編程精要

第4章 C多線程系統編程精要 4.1 引言 學習多線程編程面臨的最大的思維方式的轉變有以下兩點: 當前線程可能隨時會被切換出去,或者說被搶占(preempt)了多線程程序中事件的發生順序不再有全局統一的先后關系 多線程程序的正確性…

軟著項目推薦 深度學習 opencv python 實現中國交通標志識別

文章目錄 0 前言1 yolov5實現中國交通標志檢測2.算法原理2.1 算法簡介2.2網絡架構2.3 關鍵代碼 3 數據集處理3.1 VOC格式介紹3.2 將中國交通標志檢測數據集CCTSDB數據轉換成VOC數據格式3.3 手動標注數據集 4 模型訓練5 實現效果5.1 視頻效果 6 最后 0 前言 🔥 優質…

游覽器緩存講解

瀏覽器緩存是指瀏覽器在本地存儲已經請求過的資源的一種機制,以便在將來的請求中能夠更快地獲取這些資源,減少對服務器的請求,提高頁面加載速度。瀏覽器緩存主要涉及到兩個方面:緩存控制和緩存位置。 緩存控制 Expires 頭&#…

Javascript每天一道算法題(十六)——獲取除自身以外數組的乘積_中等

文章目錄 1、問題2、示例3、解決方法(1)方法1 總結 1、問題 給你一個整數數組 nums,返回 數組 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘積 。 題目數據 保證 數組 nums之中任意元素的全部前綴元素和后綴…

RAM模型從數據準備到pretrain、finetune與推理全過程詳細說明

提示:RAM模型:環境安裝、數據準備與說明、模型推理、模型finetune、模型pretrain等 文章目錄 前言一、環境安裝二、數據準備與解讀1.數據下載2.數據標簽內容解讀3.標簽map內容解讀 三、finetune訓練1.微調訓練命令2.load載入參數問題3.權重載入4.數據加載…

使用new Vue()的時候發生了什么?

前言 Vue.js是一個流行的JavaScript前端框架,用于構建單頁面應用(SPA)和用戶界面。當我們使用new Vue()來創建一個Vue實例時,Vue會執行一系列的初始化過程,將數據變成響應式,編譯模板,掛載實例…

RabbitMQ之發送者(生產者)可靠性

文章目錄 前言一、生產者重試機制二、生產者確認機制實現生產者確認(1)定義ReturnCallback(2)定義ConfirmCallback 總結 前言 生產者重試機制、生產者確認機制。 一、生產者重試機制 問題:生產者發送消息時&#xff0…

分布式事務總結

文章目錄 一、分布式事務基礎什么是事務?本地事物分布式事務分布式事務的場景 二、分布式事務解決方案全局事務可靠消息服務TCC 事務 三、Seata 分布式事務解決方案3.1 Seata-At模式3.2 秒殺項目集成 Seata啟動 Seata-Server項目集成seata配置AT模式代碼實現 3.3 Se…

openstack(2)

目錄 塊存儲服務 安裝并配置控制節點 安裝并配置一個存儲節點 驗證操作 封裝鏡像 上傳鏡像 塊存儲服務 安裝并配置控制節點 創建數據庫 [rootcontroller ~]# mysql -u root -pshg12345 MariaDB [(none)]> CREATE DATABASE cinder; MariaDB [(none)]> GRANT ALL PR…

1、Docker概述與安裝

相關資源網站: ● docker官網:http://www.docker.com ● Docker Hub倉庫官網: https://hub.docker.com/ 注意,如果只是想看Docker的安裝,可以直接往下拉跳轉到Docker架構與安裝章節下的Docker具體安裝步驟,一步步帶你安…

82基于matlab GUI的圖像處理

基于matlab GUI的圖像處理,功能包括圖像一般處理(灰度圖像、二值圖);圖像幾何變換(旋轉可輸入旋轉角度、平移、鏡像)、圖像邊緣檢測(拉普拉斯算子、sobel算子、wallis算子、roberts算子&#xf…

【Rust日報】2023-11-22 Floneum -- 基于 Rust 的一款用于 AI 工作流程的圖形編輯器

Floneum -- 基于 Rust 的一款用于 AI 工作流程的圖形編輯器 Floneum 是一款用于 AI 工作流程的圖形編輯器,專注于社區制作的插件、本地 AI 和安全性。 Floneum 有哪些特性: 可視化界面:您無需任何編程知識即可使用Floneum。可視化圖形編輯器可…

oled的使用 動態的變量 51

源碼均在IIC手寫程序中 外部中斷實現變量加一 #include "reg52.h" #include "main.h" #include <intrins.h> #include "OLED.h" #include "bmp.h" #include "Delay.h" sbit LED1 P1^0; sbit LED2 P1^1; sbit LED3…

【LeetCode每日一題】525. 連續數組

題目&#xff1a; 給定一個二進制數組 nums , 找到含有相同數量的 0 和 1 的最長連續子數組&#xff0c;并返回該子數組的長度。 媽的 連題目都沒有讀懂&#xff01;本來看成是找到兩個連續子數組&#xff0c;兩個連續子數組的 0 1 個數分別相同&#xff0c;我說怎么看著如此…

Python報錯:AttributeError(類屬性、實例屬性)

Python報錯&#xff1a;AttributeError&#xff08;類屬性、實例屬性&#xff09; Python報錯&#xff1a;AttributeError 這個錯誤就是說python找不到對應的對象的屬性&#xff0c;百度后才發現竟然是初始化類的時候函數名寫錯了 __init__應該有2條下劃線&#xff0c;如果只有…

構建未來:云計算 生成式 AI 誕生科技新局面

目錄 引言生成式 AI&#xff1a;開發者新伙伴云計算與生成式 AI 的無縫融合亞馬遜云與生成式 AI 結合的展望/總結我用亞馬遜云科技生成式 AI 產品打造了什么&#xff0c;解決了什么問題未來科技發展趨勢&#xff1a;開發者的機遇與挑戰結合實踐看未來結語開源項目 引言 2023年…

SpectralGPT: Spectral Foundation Model 論文翻譯1

遙感領域的通用大模型 2023.11.13在CVPR發表 原文地址&#xff1a;[2311.07113] SpectralGPT: Spectral Foundation Model (arxiv.org) 摘要 ? 基礎模型最近引起了人們的極大關注&#xff0c;因為它有可能以一種自我監督的方式徹底改變視覺表征學習領域。雖然大多數基礎模型…