娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

STM32: vscode 調(diào)試過程記要

發(fā)布者:Enchanted2023最新更新時間:2025-01-22 來源: jianshu關鍵字:STM32  vscode  調(diào)試過程 手機看文章 掃描二維碼
隨時隨地手機看文章

一、 使用工具

  1. cortex-debug 插件

1.png

  1. PyOcd 燒錄器

可以通過 pip install pyocd  來安裝

二、 pyocd 配置

首先要找到其芯片對應的包。其網(wǎng)上找。我這里使用的是 stm32f103ve ,其包是Keil.STM32F1xx_DFP.2.4.0.pack。

另外在項目中加入 pyocd 的配置文件 pyocd.yaml。其內(nèi)容為,

  pack:
      - ChipPackage/Keil.STM32F1xx_DFP.2.4.0.pack

即包的路徑。

我以 stm32cubemx 生的項目結(jié)構(gòu)為例,

1.png

其中 pyocd 的下載命令為,

 > pyocd  load   -t   stm32f103ve  ./build/test.elf

三、 vscode 的 launch.json 配置

首先創(chuàng)建調(diào)試的配置文件 launch.json

1.png

選擇 C/C++(LLVM/GDB)的調(diào)試方式,然后就生成相應的配置文件。

接下來,點擊右正角的按鈕

image.png

選擇 Cortex Debug: PyOcd

插件就會幫我們生成默認的配置信息。

image.png

其中 executable 代表你的可執(zhí)行文件路徑

其他的含義:

  • cwd 工作目錄

  • executable 執(zhí)行文件

  • name 在存在多個調(diào)試方案時里,用以區(qū)別

  • request 我也不太清楚

  • type 不懂

  • runToEntryPoint 進行程序后第一個停止的位置選擇在main入口

  • showDevDebugOutput 不懂

  • servertype 可能表示插件會調(diào)用什么下載方案吧

    但是只有這些信息還不行,還要告訴你交叉編譯的對方平臺是什么。

image.png

另外還要注意的是,在C/C++中若要進行調(diào)試,必須在每個編譯命令中加入 -g。在stm32cubemx的makefile文件中,其有一個 Debug 對數(shù),是作為調(diào)試開關。

debug開關

判斷過程

四、 注意事項

若你寫好配置文件后,運行調(diào)試,出現(xiàn)以下兩種問題的其中一種

  1. 點擊調(diào)試后,terminal 里報錯

image.png

  1. 或者在調(diào)試的時候,vscode進入的不是源文件。

image.png

產(chǎn)生這種情況的,主要是你的路徑中包含有中文。

第1種情況是在 Cortex-debug 插件在 v1.6 的版本上會出現(xiàn)。你可以選擇把其轉(zhuǎn)換為 v1.4。但是,這里調(diào)試的話,就會出現(xiàn)第二種情況。

因此,最佳解決方法是Cortex-debug可以保持在 v1.6 上,但是 項目路徑改為不包中文。

五、 我理解下的調(diào)試

我之所以想要進行這次調(diào)試實驗,除了在應用中調(diào)試是很重要,還有的是我想知道c++在arm-none-eabi-g++下是編譯成什么代碼,從而從它的編譯匯編來理解其語言的本質(zhì)。

當源文件被編譯后,就會產(chǎn)生匯編,轉(zhuǎn)成機器代碼。而調(diào)試的關鍵是明白源代碼哪部分轉(zhuǎn)成什么樣的匯編,因此就需要在編譯過程mark下一些調(diào)試信息,就是命令參數(shù)-g的作用。

而作為嵌入式下的編程,雖然和PC上編程有點不同,但本質(zhì)也是一樣的。也是通過一個調(diào)試進程和執(zhí)行中的軟件進行交互。舉個例子說,一個正在運行的軟件,若沒有調(diào)試的任務給到它,那么它就按照原來的順序來執(zhí)行,但若調(diào)試進程發(fā)出了調(diào)試請求后,其就會停下手上的工作,等待進程發(fā)出的命令,從而進行下一步動作。

我們從cortex-debug插件也能看得出來,

image.png

其使用pyocd,而pyocd也調(diào)用了gdbserver命令。

image.png

軟件的核心是gdbserver。

另外一定要用好 vscode 的窗口顯示和GDB的相關命令

image.png

image.png

其中,若你想查看當前行的匯編是怎樣的,或者當前的內(nèi)存是怎樣的。就要在 DEBUG CONSOLE 里輸入相應的gdb命令。


關鍵字:STM32  vscode  調(diào)試過程 引用地址:STM32: vscode 調(diào)試過程記要

上一篇:STM32讀取HMC5883L的偏航角數(shù)據(jù)
下一篇:STM32 Complier Warning or errors

推薦閱讀最新更新時間:2025-05-25 01:47

STM32庫開發(fā)實戰(zhàn)指南 》USART
補充幾個當時還不會的知識點。 發(fā)送寄存器 寄存器 功能 TE 發(fā)送使能 TXE 發(fā)送單個字節(jié)的時候使用,檢查發(fā)送寄存器為空? TC 發(fā)送字符串的時候使用,實質(zhì)上時多次調(diào)用發(fā)送單字符的函數(shù),但是最后一次退出前要檢查TC,發(fā)送完成寄存器 TXIE 發(fā)送完成中斷使能 printf的多態(tài) 我們可以在Keil5中的工程選項中,勾選Use MicroLIB,這樣我們就可以在工程中使用stdio.h頭文件了。 當然了,單片機又沒有屏幕和鍵盤,所以原來printf、scanf的實現(xiàn)方法當然不能用了,不過我們可以通過串口的方式來實現(xiàn)其。按照串口的方法,將要顯示的內(nèi)容輸出到串口,將要獲得的字符從串口中讀取,那么無論是printf
[單片機]
STM32低功耗模式下GPIO如何配置最節(jié)能?
STM32低功耗模式下GPIO如何配置最節(jié)能,這里總結(jié)了一下四點,親測有效(基于STM32L011芯片 LL庫),可降低幾百微安。 1、將未使用的GPIO 配置為模擬輸入模式 GPIO始終有一個輸入通道,可以是數(shù)字或模擬通道,如果不需要讀取GPIO數(shù)據(jù),則優(yōu)先配置為模擬輸入。 對 I/O 端口進行編程作為模擬配置時: 輸出緩沖器被關閉 施密特觸發(fā)器輸入被禁用,因此I/O引腳的每個模擬值零消耗。施密特觸發(fā)器的輸出被強制為恒定值(0)。 上拉和下拉電阻被硬件關閉 將不常用的GPIO配置為模擬輸出,例程如下所示(LL庫): GPIO_InitStruct.Mode = LL_GPIO_MODE_ANALOG; 2、調(diào)節(jié)GPIO
[單片機]
stm32同時使用TIM2、TIM3、TIM4輸出PWM控制三個舵機
硬件 芯片選擇 stm32選擇了STM32F103 電路連接 三個舵機的控制端口分別連PB3(TIM2)、PB0(TIM3)、PB9(TIM4) 學習中遇到的問題 1. 不理解TIM_OC2Init、TIM_OC2PreloadConfig、SetCompare2中2的含義 TIM_OC2Init(TIM2,&TIM_OCInitStrue); TIM_OC2PreloadConfig(TIM2,TIM_OCPreload_Enable); TIM_SetCompare2(TIM2,4500); OC2Init、OC2PreloadConfig、SetCompare2中的2是頻道2的意思,即這里設置了TIM_CH2的功能
[單片機]
ch32和stm32參數(shù)對比
隨著物聯(lián)網(wǎng)技術、智能家居、工業(yè)自動化等領域的快速發(fā)展,MCU芯片市場也逐漸走向多樣化和智能化。其中,32位微控制器不僅在性能、功能、可靠性方面更加優(yōu)越,而且在應用領域的廣泛性和市場占有率上也有著巨大優(yōu)勢。而32位微控制器中的兩款經(jīng)典代表——CH32和STM32,又該如何進行參數(shù)對比呢? 在基本參數(shù)方面比較,CH32和STM32均采用了ARM Cortex-M內(nèi)核,都是32位微控制器。在運行頻率方面,CH32單片機的部分芯片性能可以達到200MHz,STM32芯片的運行頻率更加廣泛,從72MHz到216MHz都有涵蓋。從存儲容量方面來看,兩者皆含有各自大小和類型不盡相同的存儲空間。而在性能指標方面,STM32的性能指標相較于CH32
[單片機]
在學習STM32時為什么要學習匯編?
不同的平臺的匯編代碼是不一樣的,最早的匯編在50年代就發(fā)明了,比很多人的父母的年齡都大,老掉牙,不用學習怎么寫匯編。一個公司有一個人知道怎么寫匯編就夠了。但要學習讀匯編,為什么學習匯編? 1、性能 直接翻譯為機器語言,性能最高。優(yōu)秀的C語言效率只能達到匯編的80%左右。其他高級語言跟匯編一比差得更遠。語言越高級性能越差。很多bootloader和BIOS用匯編寫,匯編操作的是電腦,手機剛剛上電時,硬件和初始化的那些命令,它們的性能的要求比較高,效率高開機速度更快。 分析問題 個人認為,編程人與機器對話,我們寫C,寫JAVA,但是電腦并不認識這些語言,電腦只認識0和1;所以需要一個人來翻譯這些語言,這個翻譯官就是編譯器,但是編譯器不
[單片機]
在學習<font color='red'>STM32</font>時為什么要學習匯編?
如何實現(xiàn)一種基于STM32單片機的智能浴室水溫調(diào)控儀設計?
一、功能簡介 本項目使用Proteus8.12仿真STM32單片機控制器,使用LCD1602、DS18B20、繼電器加熱、電機模塊等。 系統(tǒng)運行后,LCD1602顯示DS18B20采集溫度值、溫度上限閾值。開啟加水,一段時間后開啟加熱,當水位到達后停止注水,繼續(xù)加熱到設定溫度,可通過K1、K2鍵對溫度上限設置,若檢測溫度大于或等于上限,關閉加熱裝置;若溫度低于上限,開啟加熱裝置; 主要功能如下: (1)水溫,水位實時檢測; (2)水溫設定,超限關閉加熱; (3)繼電器控制加熱、注水; (4)LCD1602液晶顯示。 二、軟件設計 //系統(tǒng)參數(shù)初始化 void sys_parm_init(void) { //初始自動模式
[單片機]
如何實現(xiàn)一種基于<font color='red'>STM32</font>單片機的智能浴室水溫調(diào)控儀設計?
STM32 HRTIM Burst輸出模式應用演示
有人使用STM32G474芯片的片上高精度定時器HRTIM,他想使用其輸出功能的Burst Mode。但不知如何使用,想找找參考例程。我這里就使用STM32G474芯片做下應用演示。 我們知道,STM32家族中有多個系列或子系列芯片內(nèi)置HRTIM定時器。這里以STM32G474芯片為藍本簡單介紹下HRTIM時基單元中輸出功能的BURST MODE原理及實現(xiàn)過程。HRTIM時基單元中輸出模塊【或通道】可以有三種工作狀態(tài),即運行態(tài)、空閑態(tài)、出錯異常態(tài)【RUN、IDLE和FAULT】。 【注 :上面截圖來自STM32G4系列參考手冊】 此處所要講的Burst模式其實就是運行態(tài)和空閑態(tài)交替地實現(xiàn)輸出的模式,即輸出通道一會工作在運行狀態(tài)
[單片機]
<font color='red'>STM32</font> HRTIM Burst輸出模式應用演示
深度剖析STM32時鐘系統(tǒng)
下圖是STM32的時鐘樹。從樹上我們可以看到,STM32的時鐘有兩個來源——內(nèi)部時鐘和外部時鐘。按時鐘頻率來分,又分為高速時鐘和低速時鐘。所以STM32的時鐘有四個來源——高速外部時鐘信號(HSE)、低速外部時鐘信號(LSE)、高速內(nèi)部時鐘信號(HSI)和低速內(nèi)部時鐘信號(LSI),圖中分別用藍色的①~④標注。 ①HSE高速外部時鐘:由外部4~16MHz的晶體或有源晶振提供,通常采用8MHz,ST三合一板上的也是8MHz。 ②LSI低速外部時鐘:外部晶體提供,主要是給實時時鐘(RTC),一般為32.768kHz。 ③HSI高速內(nèi)部時鐘:由內(nèi)部RC振蕩器產(chǎn)生的8MHz時鐘,但不夠穩(wěn)定。 ④LSI低速內(nèi)部時鐘:內(nèi)部RC振蕩器產(chǎn)生的供
[單片機]
深度剖析<font color='red'>STM32</font>時鐘系統(tǒng)
小廣播
設計資源 培訓 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 台东县| 昌吉市| 凌云县| 延津县| 京山县| 云和县| 合江县| 宁明县| 喀什市| 银川市| 巨鹿县| 井冈山市| 枣阳市| 全椒县| 库车县| 留坝县| 微博| 隆尧县| 邯郸市| 轮台县| 五台县| 外汇| 沭阳县| 泸州市| 梁河县| 岗巴县| 射洪县| 广西| 特克斯县| 牡丹江市| 北流市| 南阳市| 安化县| 商都县| 康保县| 西贡区| 秭归县| 综艺| 绥阳县| 永川市| 平和县|