<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      痞子衡嵌入式:可通過USB Device Path來唯一指定i.MXRT設備進行ROM/Flashloader通信


        大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是通過USB Device Path來唯一指定i.MXRT設備進行ROM/Flashloader通信

        i.MXRT系列高性能微控制器從2018年發布至今已有2年多了,如今這個家族系列已經完全開枝散葉了(RT500/600/1010/1020/1050/1060/1170),型號從入門到高階鋪得挺齊全(當然仍在繼續發展),很多i.MXRT客戶項目也已經處于量產階段了。

        關于量產,除了使用第三方獨立Flash燒錄器/編程器之外,也可以使用恩智浦官方提供的配套上位機GUI工具軟件(Mfgtool2 / MCUBootUtility / MCUBootFlasher / MCUX Secure Privisioning Tool 等)連接i.MXRT芯片進行在線量產。但是呢,還是有一些客戶會選擇自己設計量產腳本進行定制化批量下載操作。

        說到定制化批量下載操作就離不開恩智浦官方提供的i.MXRT配套命令行工具(sdphost/blhost),借助這兩個命令行工具,我們就可以通過UART/USB口與I.MXRT ROM/Flashloader進行數據通信完成應用程序下載了,不需要額外硬件。

        如果是串口下載,那板卡批量操作倒不會有什么問題,畢竟每個串口設備在PC上都會被分配到唯一的COM號。但是UART速度不太高,所以我們往往會選擇USB高速下載,i.MXRT的USB下載主要支持USB-HID協議,配套命令行工具如果僅通過vid,pid來識別設備,那多塊板卡操作肯定沒法同時進行,因為所有板卡的vid,pid都是一樣的,那該怎么辦?痞子衡今天要介紹的USB Device Path就是解決這個問題的。

      一、sdphost/blhost使用方法

        i.MXRT系列中均有BootROM,BootROM里集成了上位機通信協議(i.MXRT1xxx是SDPHost協議,i.MXRTxxx是blhost協議),i.MXRT1xxx下載還需搭配Flashloader(Flashloader里上位機通信協議是blhost協議),因此與i.MXRT進行量產下載通信離不開sdphost/blhost工具。

        關于sdphost/blhost工具用法,痞子衡寫過詳細介紹文章:《sdphost使用方法》《blhost使用方法》。如果是單塊板卡的操作,那么僅需vid,pid信息即可完成命令行操作,畢竟在PC端通過提供的vid,pid可以找到唯一的i.MXRT設備。

      命令格式:sdphost.exe -u vid,pid -- command arg
      命令示例:sdphost.exe -u 0x1fc9,0x0130 -- write-file 0x20002000 flashloader.bin
      
      命令格式:blhost.exe -u vid,pid -- command arg
      命令示例:blhost.exe -u 0x15a2,0x0073 -- write-memory 0x60000000 bt_image.bin
      

        但是如果是多塊板卡同時操作,僅僅vid,pid信息就不夠用了,因為這些板卡的vid,pid是一樣的,PC端沒法具體識別腳本里的命令對應的是哪塊板卡(所以可能會隨機指定,但這樣失去了意義,我們做不到精確控制下載每一塊板卡),此時我們需要給命令行工具提供usb device path來代替usb vid,pid:

      命令格式:sdphost.exe/blhost.exe -u device_path -- command arg
      

      二、什么是USB Device Path?

        Windows操作系統通過一個“設備路徑”來唯一“標識”接入系統中的USB設備/接口,這個"設備路徑"就是USB Device Path。USB Device Path 常常被傳入 Win32 的API函數 CreatFile() 來與USB設備建立通信。更多解釋參見 Windows USB Device Path

      三、獲取USB Device Path的方法

        現在的問題就是如何找到這個USB Device Path,我們以MIMXRT1020-EVK板卡為例來實戰,將板卡調成SDP啟動模式,將USB連接到PC后可在設備管理器里看到新枚舉的 HID-compliant vendor-define device 設備,這就是BootROM里集成的USB通信功能在起作用。

      3.1 借助pywinusb庫

        第一種方式是借助Windows經典的WinUSB庫,WinUSB是從XP-SP2起微軟提供的一個類似libusb與usb設備通信的中間件,通過它我們就不需要再費奏折的研究和編寫USB驅動了。為了簡便起見,我們不直接用C版本的WinUSB,而用下面的Python版本庫pywinusb來替代:

        安裝好Python以及pywinusb庫后,執行下面非常簡單的幾句代碼便可找到USB Device Path:

      import pywinusb.hid as hid
      
      vid = 0x1fc9
      pid = 0x0130
      
      _filter = hid.HidDeviceFilter(vendor_id = vid, product_id = pid)
      hid_device = _filter.get_devices()
      
      if len(hid_device) > 0:
          print(hid_device[0].device_path)
      

      3.2 通過MCUBootFlasher工具

        如果你不熟悉Python,覺得上一種方法麻煩,那么推薦你第二種方法,直接使用一次 MCUBootFlasher 工具,這個工具就是借助 USB Device Path 進行的多板卡量產操作。我們可以在工具GUI后面的控制臺窗口里看到實際的命令序列,序列里有你想要的USB Device Path值:

      3.3 看設備管理器和系統注冊表

        如果你覺得第二種方法還是麻煩,不想額外安裝軟件,得了,那就直接在Windows里查看吧。打開設備管理器,找到vid,pid是0x1fc9,0x0130(其他i.MXRT型號可能不是這個,具體查看芯片參考手冊System Boot章節)的設備,右擊屬性里找到 Device instance path,別急,這還不是全部的USB Device Path。

        在系統命令行里輸入 "regedit" 打開系統注冊表,在里面搜索 "HumanInterfaceDevice",可以找到 {4d1e55b2-f16f-11cf-88cb-001111000030},這是Windows本身對HID設備的類型標識(這個其實是確定的,記住就好,不用每次都查找一次)。

        最終 USB Device Path 組成格式是:\\?\(第一部分,固定的), hid#vid_1fc9&pid_0130#a&2eb8245&0&0000(第二部分,即Device instance path,\用#替換), #{4d1e55b2-f16f-11cf-88cb-001111000030}"(第三部分,HID類型標識值前加個#)。另外注意在腳本里寫入此參數時需要用雙引號括起來,即如下:

      "\\?\hid#vid_1fc9&pid_0130#6&20AC856D&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
      

        至此,通過USB Device Path來唯一指定i.MXRT設備進行ROM/Flashloader通信痞子衡便介紹完畢了,掌聲在哪里~~~

      歡迎訂閱

      文章會同時發布到我的 博客園主頁CSDN主頁知乎主頁微信公眾號 平臺上。

      微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。

      posted @ 2021-05-10 23:45  痞子衡  閱讀(1516)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 精品一区二区三区日韩版| 孟村| 亚洲国产成人久久77| 国产黄色一级片在线观看| 动漫精品中文字幕无码| 国产精品欧美福利久久| 国产成人无码av一区二区| 巨爆乳中文字幕爆乳区| 免费观看全黄做爰大片| 国产一区二区亚洲一区二区三区 | 国内精品免费久久久久电影院97| 亚洲国产av无码精品无广告 | 国产一区二区一卡二卡| 国产欧美另类久久久精品不卡| 国产叼嘿视频一区二区三区| 亚洲精品成人福利网站| 成人国产精品免费网站| 日本免费精品| 又黄又刺激又黄又舒服| 日本一区二区三区激情视频| 天堂一区二区三区av| 亚洲人成色99999在线观看| 黄色A级国产免费大片视频| 国产喷水1区2区3区咪咪爱av| 国产精品国产三级国产专i| 国产AV影片麻豆精品传媒| 亚洲人妻系列中文字幕| 成人自拍短视频午夜福利| 亚洲av无码精品色午夜| 娇妻玩4p被三个男人伺候| 一色桃子中出欲求不满人妻| 久久国产成人午夜av影院| 日韩在线不卡免费视频一区| 日本福利一区二区精品| 得荣县| 国产精品入口麻豆| 久久精品| 亚洲中文字幕无码av永久| 日韩中文字幕在线不卡一区| 国产成人av免费观看| 亚洲国产午夜理论片不卡|