自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

環(huán)境構(gòu)建:VS2019+MSVC 編譯 Dfu-Util

網(wǎng)絡 網(wǎng)絡管理
本文主要介紹windows 上的交叉編譯,Linux 平臺交叉編譯,直接參考官網(wǎng)即可,難度不是很大。

[[414597]]

本文轉(zhuǎn)載自微信公眾號「漫談嵌入式」,作者Vinson。轉(zhuǎn)載本文請聯(lián)系漫談嵌入式公眾號。

什么是DFU?

DFU,即 Device Firmware Upgrade, 也是屬于 USB類協(xié)議。主要用于設備升級,常用于手機(IOS,安卓)以及電視盒子等。相對于CDC 串口或者RNDIS等,是一種比較快的USB傳輸方式。

DFU :需要進入USB DFU 模式,適合在bootloader階段做升級。

CDC OTA:可以作為一種composite設備,一起運行。缺點是,可能會受帶寬影響導致傳輸速度受限。

如何使用?

  • 設備:設備端需要支持DFU 模式
  • 主機:需要配套的DFU 主機工具比如開源的庫 dfu-util, 直接使用或者二次開發(fā)。
  • 驅(qū)動:需要安裝dfu 驅(qū)動, 可以通過 zading, 安裝通用的驅(qū)動。

dfu-util 交叉編譯

dfu-util 是USB 論壇的 DFU 1.0 和DFU 1.1規(guī)范的主機端實現(xiàn) 。DFU 旨在向/從通過 USB 連接的設備下載和上傳固件。它的范圍從微控制器板等小型設備到手機

本文主要介紹windows 上的交叉編譯,Linux 平臺交叉編譯,直接參考官網(wǎng)即可,難度不是很大。

有關windows 交叉編譯,目前有兩種思路:

  • 使用 msys2 在windows 構(gòu)建虛擬的linux 環(huán)境。MSYS2 + MinGW
  • 使用visual studio + mscv

準備

  • 編譯環(huán)境:安裝 Visual Studio 2019 community
  • dfu-util 源碼:git clone git://git.code.sf.net/p/dfu-util/dfu-util
  • libusb:git clone https://github.com/libusb/libusb.git

項目工程調(diào)整

1. 調(diào)整工程文件為vs 2019

2. 修改 解決方案文件,dfu-util_2019.sln ,調(diào)整為2019

可以看到默認libusb 和 dfu-uilt 位于同級目錄,也可以將libusb 合到dfu-util項目里面,不過需要修改相關頭文件包含。筆者建議初次編譯,不用修改項目引用路徑。

3. libusb 項目工程

4. 用vs 2019 打開dfu-util_2019.sln

5. 修改外部引用

編譯錯誤修改

1. off_t錯誤

解決:右鍵項目->屬性->配置屬性->C/C++ -> 預處理器-> 預處理器宏定義-> 編輯,新增_OFF_T_DEFINED 宏定義

2. 錯誤2:ssize_t 未定義

解決方法:包含libusb.h

3. 消除警告

解決方法:同錯誤1,定義宏_CRT_NONSTDC_NO_DEPRECATE

4. 錯誤3:SSIZE_MAX 未定義

SSIZE_MAX 是 POSIX 下的定義, 修改如下:

5. 錯誤4:無法解析頭文件

解決方法:包含正確的頭文件目錄

6. 編譯成功

編譯總結(jié)

環(huán)境統(tǒng)一:git 下來的庫是vs 2010工程,需要先修改成自己vs 的版本,具體版主version,新建一個空項目即可查看。

外部引用依賴:修改工程名后,項目之間引用關系可能會用問題,這時候需要移除,然后重新正確的添加引用。

頭文件正確包含:主要是libusb.h 和 getopt.h

編譯錯誤:高版本的IDE可能語法檢查比較強,所以遇到錯誤和警告,不要慌,耐心解決就行。

對于getopt和libusb只需要編譯一次即可,后續(xù)直接使用就行。

在成功編譯后,我們可以根據(jù)需要,將控制臺程序遷移到圖形化的界面上,這樣一個基本的DFU 主機升級工具就出來了。

總結(jié)

本文簡單的介紹了什么是DFU,同時詳細的介紹了,怎么使用 VS + MSVC 編譯 dfu-util,記錄一下整個調(diào)試過程。不得不說,還是linux 下的編譯要方便多。不同的 vs 可能會有些許差異。對于做USB DFU 相關的朋友可以借鑒一下。

 

責任編輯:武曉燕 來源: 漫談嵌入式
相關推薦

2020-09-18 06:44:57

MSVC微軟C11

2009-12-01 11:01:39

交叉編譯環(huán)境構(gòu)建

2024-07-26 16:39:33

鴻蒙系統(tǒng)開源構(gòu)建系統(tǒng)

2019-05-24 09:59:10

VSLinux遠程

2011-06-03 13:38:49

Android 開發(fā)環(huán)境

2009-12-16 09:40:19

VS環(huán)境

2021-05-12 07:59:30

Windows10操作系統(tǒng)微軟

2021-07-27 11:54:51

windows系統(tǒng)OpenHarmony

2023-08-17 20:13:42

2009-12-17 17:08:47

VS開發(fā)環(huán)境

2009-12-16 11:16:03

VS 2005開發(fā)環(huán)境

2021-12-02 10:05:01

鴻蒙HarmonyOS應用

2011-06-08 17:32:18

QT VS2008 開發(fā)環(huán)境

2020-10-21 09:58:50

鴻蒙OS編譯環(huán)境VPS

2011-03-09 16:16:57

CentOSLAMP

2023-08-11 14:06:58

鴻蒙Windows

2013-07-29 14:23:55

Eclipse開發(fā)環(huán)境Eclipse開發(fā)環(huán)境

2013-05-07 09:38:24

云計算服務云計算成本云成本

2013-05-08 09:52:26

云計算服務租賃自主構(gòu)建

2020-11-10 12:17:43

鴻蒙OS編譯環(huán)境
點贊
收藏

51CTO技術棧公眾號