色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

ADB框架介紹與體驗

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-13 10:55 ? 次閱讀

1. ADB 框架

圖片

ADB 全稱為"Android Debug Bridge",Android 調(diào)試橋。在純 Linux 系統(tǒng)中也可以使用。它是 client-server 架構,由三部分組成:

  • adbclient:我們運行的 adb 命令就屬于 adbclient,比如我們運行以下命令adb push d:1.txt /root時,它就是一個 adbclient,它通過 adbserver 把windows 下的文件 "d:1.txt" 推送到開發(fā)板的 /root 目錄
  • adbserver:作為一個后臺程序運行運行于 PC,它負責管理 PC 和開發(fā)板之間的通信,完成 adbclient 的請求
  • adbd:運行于開發(fā)板的守護進程,它通過底下的 Gadget 跟 adbserver 通信

實際上,adbclient 和 adbserver 都是同一個應用程序:比如 Windows 下的 adb.exe,使用不同的參數(shù)來啟動時就可以作為 adbclient 或者 adbserver。我們第 1 次執(zhí)行 adb 命令時,它會幫我們啟動一個 adb 程序作為 adbserver。

2. 體驗ADB

2.1 在 Windows 安裝軟件

解壓 GIT 倉庫如下文件:

圖片

確認里面的 adb.exe 所在目錄,把這個目錄添加進 Windows 的 Path 環(huán)境變量里。

2.2 在 STM32MP157 上實驗

STM32MP157 的出廠系統(tǒng)已經(jīng)安裝好了 adbd,可以直接連接 USB 線進行測試。

比如在 Windows 上執(zhí)行命令:

adb  devices  # 列出adb設備
adb  push  d:1.txt  /root  # 上傳文件到開發(fā)板/root目錄
adb  shell   # 啟動adb命令行

IMX6ULL 的出廠系統(tǒng)還沒安裝 adbd,等移植 ADB 時再進行實驗。

3. functionfs

我們關注的是 Gadget 部分:

使用 legacy 的方法時,我們需要在驅(qū)動程序里指定設備信息(比如設備描述符、配置描述符等等),還需要在驅(qū)動程序里實現(xiàn)數(shù)據(jù)的傳輸功能,這都在驅(qū)動程序里限定死了。

使用 configfs 時,我們可以靈活地指定設備信息、靈活地選擇各種 function。但是,還不夠靈活:你必須選擇某個 function,這個 function 里已經(jīng)實現(xiàn)實現(xiàn)了數(shù)據(jù)的傳輸功能,你無法更改。

我們能否把 Gadget 設備的端點暴露給用戶程序?讓用戶程序自己操作端點來傳輸數(shù)據(jù)?可以!這就是 functionfs。

functionfs 是一種文件系統(tǒng),它的使用分為兩步:

  • 內(nèi)核態(tài):注冊 functionfs
  • 用戶態(tài):掛載 functionfs

抓住這兩點來分析代碼。

3.1 注冊 functionfs

以 legacy 的方式來分析,只要安裝 g_ffs.ko 驅(qū)動程序:

insmod g_ffs.ko

就會觸發(fā)以下調(diào)用過程:

# driversusbgadgetlegacyg_ffs.c
gfs_init
 usb_get_function_instance("ffs");
  try_get_usb_function_instance
   fi = fd- >alloc_inst();
    # driversusbgadgetfunctionf_fs.c
    ffs_alloc_inst
     dev = _ffs_alloc_dev();
      ret = functionfs_init();
       ret = register_filesystem(&ffs_fs_type);

使用 configfs 方式的話,需要執(zhí)行以下命令:

modprobe libcomposite
mount -t configfs none /sys/kernel/config

mkdir -p /sys/kernel/config/usb_gadget/g1
mkdir  -p /sys/kernel/config/usb_gadget/g1/functions/ffs.adb

可以看到提示信息:

圖片

執(zhí)行命令cat /proc/filesystems可以看到 functionfs。

3.2 掛載 functionfs

這時就可以掛載 functionfs 了,執(zhí)行如下命令:

# mkdir -p /dev/usb-ffs/adb
# mount -t functionfs adb /dev/usb-ffs/adb  # 上面創(chuàng)建了 functions/ffs.adb, 掛載時 dev 就要指定為 adb
# ls /dev/usb-ffs/adb/
ep0

有了 ep0 端點后,用戶態(tài)程序就可以通過它跟主機通信了。

3.3 ep0 的驅(qū)動程序

ep0 對應的驅(qū)動程序,分析如下:

  • 掛載 functionfs 時,會導致一個函數(shù)被調(diào)用:

圖片

  • ffs_sb_fill 中,會在 functionfs 的根目錄下創(chuàng)建名為 ep0 的文件,并給它提供file_operations 結構體:

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5089

    文章

    19169

    瀏覽量

    306769
  • Linux
    +關注

    關注

    87

    文章

    11335

    瀏覽量

    210094
  • adb
    adb
    +關注

    關注

    1

    文章

    36

    瀏覽量

    10453
收藏 人收藏

    評論

    相關推薦

    【DragonBoard 410c試用體驗】ADB與無線ADB教程

    輸入CMD打開命令行,里面輸入如下命令查看設備連接情況cd /cd adbadb devices顯示如上面的設備名稱則成功,下面介紹不連接手機數(shù)據(jù)線的情況下進行無線ADB的方法首先在開發(fā)板背面的啟動開關
    發(fā)表于 08-20 11:09

    ADB驅(qū)動

    電子發(fā)燒友網(wǎng)站提供《ADB驅(qū)動.zip》資料免費下載
    發(fā)表于 11-14 14:02 ?16次下載

    android fastboot/adb 驅(qū)動調(diào)試工具

    android fastboot/adb 驅(qū)動調(diào)試工具,用于fastboot燒錄和adb調(diào)試android
    發(fā)表于 11-04 16:01 ?12次下載

    android框架與應用開發(fā)介紹

    android框架與應用開發(fā)介紹
    發(fā)表于 10-24 09:35 ?7次下載
    android<b class='flag-5'>框架</b>與應用開發(fā)<b class='flag-5'>介紹</b>

    adb是什么意思_adb的組成及主要功能

    adb是什么意思? adb的全稱為AndroidDebugBridge,譯為android調(diào)試橋,就是在android系統(tǒng)中起到調(diào)試橋的作用。通過adb我們可以在Eclipse中方便通過DDMS來
    發(fā)表于 11-15 09:03 ?8.3w次閱讀

    adb工作方式及常用命令

    adb的全稱為AndroidDebugBridge,譯為android調(diào)試橋,就是在android系統(tǒng)中起到調(diào)試橋的作用。通過adb我們可以在Eclipse中方便通過DDMS來調(diào)試Android程序
    發(fā)表于 11-15 09:33 ?3.8w次閱讀

    adb的使用方法

    ,說白了就是debug工具。 adb是一個客戶端-服務器端程序,其中客戶端是你用來操作的電腦,服務器端是android設備。 下面詳細介紹adb的使用方法 在您的設備上啟用adb調(diào)試
    發(fā)表于 11-15 10:22 ?1.6w次閱讀

    為什么現(xiàn)在推ADBADB在美國被禁原因是什么?

    歐洲和日本的汽車廠商、一線供應商和光源技術供應商已經(jīng)開始涌入新興的自適應遠光燈(ADB)市場。“前車燈”聽起來也許像是一種比較“古老”的技術,但其實如果沒有配備先進駕駛輔助系統(tǒng)(ADAS)汽車的迅速走紅,ADB就不會出現(xiàn)。
    發(fā)表于 05-03 13:00 ?1.2w次閱讀

    Firefly-RK3288ADB主板介紹

    ADB 使用 前言 adb,全稱 Android Debug Bridge,是 Android 的命令行調(diào)試工具,可以完成多種功能,如跟蹤系統(tǒng)日志,上傳下載文件,安裝應用等。 準備連接
    的頭像 發(fā)表于 10-28 19:22 ?2368次閱讀
    Firefly-RK3288<b class='flag-5'>ADB</b>主板<b class='flag-5'>介紹</b>

    fireflyAIO-3288C主板ADB調(diào)試工具介紹

    adb,全稱 Android Debug Bridge,是 Android 的命令行調(diào)試工具,可以完成多種功能,如跟蹤系統(tǒng)日志,上傳下載文件,安裝應用等。
    的頭像 發(fā)表于 12-16 14:58 ?1834次閱讀
    fireflyAIO-3288C主板<b class='flag-5'>ADB</b>調(diào)試工具<b class='flag-5'>介紹</b>

    fireflyAIO-3399J主板ADB使用介紹

    adb,全稱 Android Debug Bridge,是 Android 的命令行調(diào)試工具,可以完成多種功能,如跟蹤系統(tǒng)日志,上傳下載文件,安裝應用等。
    的頭像 發(fā)表于 12-24 10:59 ?1457次閱讀

    fireflyAIO-3288J主板ADB使用介紹

    adb,全稱 Android Debug Bridge,是 Android 的命令行調(diào)試工具,可以完成多種功能,如跟蹤系統(tǒng)日志,上傳下載文件,安裝應用等。
    的頭像 發(fā)表于 12-26 14:48 ?1787次閱讀

    adb常用命令的工作原理及使用介紹

    adb命令是調(diào)試控制手機過程中用的比較多工具。adb是一個C/S架構的應用程序
    的頭像 發(fā)表于 07-24 16:44 ?8496次閱讀
    <b class='flag-5'>adb</b>常用命令的工作原理及使用<b class='flag-5'>介紹</b>

    Google系列Android手機使用adb命令解決無法聯(lián)網(wǎng)問題

    手機通過USB線連接上電腦,如果電腦沒有安裝adb驅(qū)動,此時可以安裝"驅(qū)動人生"或"驅(qū)動精靈",然后在"驅(qū)動人生"或"驅(qū)動精靈
    的頭像 發(fā)表于 09-21 09:32 ?9410次閱讀
    Google系列Android手機使用<b class='flag-5'>adb</b>命令解決無法聯(lián)網(wǎng)問題

    adb是什么軟件 adb調(diào)試干什么用的

    ADB是Android Debug Bridge的縮寫,是一種用于與安卓設備通信的命令行工具。它的作用非常廣泛,可以在計算機上操作和控制連接的設備,該工具由Android SDK提供。 ADB調(diào)試
    的頭像 發(fā)表于 02-02 11:03 ?3989次閱讀
    主站蜘蛛池模板: 欧美18在线| 性夜夜春夜夜爽AA片A| 性夜夜春夜夜爽AA片A| 单亲妈妈3韩国电影免费观看| 色cccwww| 北岛玲手机在线观看视频观看| 福利一区福利二区| 女人被躁到高潮嗷嗷叫69| 97草碰在线视频免费| 男男被强bl高h文| 97午夜伦伦电影理论片| 欧美16一17sex性hd| JAPANRCEP老熟妇乱子伦视频| 国产精品第3页| 跳蛋按摩棒玉势PLAY高H| 俄罗斯老妇女BBXX| 色欲AV久久综合人妻蜜桃| 国产WW久久久久久久久久| 十次啦中文网| 国产精品自在拍在线播放| 亚洲精品成人AV在线观看爽翻| 超碰免费视频caoporn| 欧美在线看费视频在线| 爱穿丝袜的麻麻3d漫画acg| 手机在线观看无码日韩视频| 国产精品免费大片| 亚洲一区精品伊人久久伊人| 久久性色AV亚洲电影无码| 91精品乱码一区二区三区| 欧美一夜爽爽爽爽爽爽| 国产电影午夜成年免费视频| 亚洲精品欧美精品中文字幕| 久久秋霞理伦片| 超级最爽的乱淫片免费| 雪恋电影完整版免费观看| 精品国产在线手机在线| 99久久国产综合精品| 我解开了岳的乳第一个女人| 久久国产高清视频| www.精品视频| 亚洲欧美日韩精品自拍|