在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

無(wú)刷電機(jī)小車開發(fā)記錄02——BSP導(dǎo)入RT-Thread Studio

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來(lái)源:未知 ? 2023-09-05 19:40 ? 次閱讀

前情提要


上一篇文章記錄了一下如何創(chuàng)建GD32E503的BSP。但由于時(shí)間關(guān)系只實(shí)現(xiàn)了MDK版本的工程模板,后面如果需要提交BSP時(shí)再去補(bǔ)全I(xiàn)AR版本的。但對(duì)于我個(gè)人而言,IAR只在讀書時(shí)玩藍(lán)牙開發(fā)的時(shí)候用過(guò),而MDK雖然用的比較多但最近幾年也很少用了。感覺(jué)還是VSCode等編輯器用起來(lái)更舒服一些,而對(duì)于RTT系統(tǒng)的開發(fā),我個(gè)人還是更傾向于使用官方的RTThreadStudioIDE進(jìn)行開發(fā)。于是今天想想辦法怎么移到RTTStudio上去。

面臨的問(wèn)題


  1. 上篇文章已經(jīng)發(fā)現(xiàn),目前官方的固件庫(kù)竟然沒(méi)有GCC版本的啟動(dòng)文件,所以要想辦法弄個(gè)啟動(dòng)文件

  2. RTTStudio自帶的GCC編譯器版本太老,不支持編譯M33內(nèi)核,所以要升級(jí)GCC

  3. 計(jì)劃用開源的DAP調(diào)試器進(jìn)行調(diào)試,但同樣RTTStudio自帶的pyocd調(diào)試工具版本太老,需要升級(jí)

添加GCC版本的啟動(dòng)文件


拷貝啟動(dòng)文件模板

從GD32F4xx固件包內(nèi)把GCC文件夾拷貝到新添加的GDE50x固件包的對(duì)應(yīng)位置,并把匯編文件名稱修改為gd32e50x的,注意,GD32E50x分了高密度版(hd)和互聯(lián)版(cl),我這里暫且只修改了一份我用到的高密度版本的。cl版本的也類似修改即可。

wKgaomT3FL6AENJhAABem73NPaQ628.png

修改啟動(dòng)文件

眾所周知,匯編的啟動(dòng)文件要干的事情就是做一些芯片啟動(dòng)的前期初始化工作,搭建C代碼的運(yùn)行環(huán)境。所以這里也并不需要對(duì)照匯編指令,把每條語(yǔ)句的功能都搞明白,只需大致了解一下即可。一眼望去,感覺(jué)這個(gè)匯編文件主要做了三大事情。

第一,定義中斷向量;

第二,定義啟動(dòng)入口;

第三,聲明中斷函數(shù)。

而啟動(dòng)入口相關(guān)的不用修改,都是先調(diào)用SystemInit函數(shù)做一些時(shí)鐘等基礎(chǔ)初始化,然后再調(diào)用entry或者main函數(shù)執(zhí)行后續(xù)的代碼。

所以這里主要修改的就是中斷向量的定義和中斷函數(shù)的聲明,按照armcc版本的進(jìn)行修改即可:


		

1;*Copyright(c)2006-2021,RT-ThreadDevelopmentTeam 2;* 3;*SPDX-License-Identifier:Apache-2.0 4;* 5;*ChangeLogs: 6;*DateAuthorNotes 7;*2018-05-22tanekfirstimplementation 8;*/ 9.syntaxunified 10.cpucortex-m33 11.fpusoftvfp 12.thumb 13.globalg_pfnVectors 14.globalDefault_Handler 15.section.isr_vector,"a",%progbits 16.typeg_pfnVectors,%object 17g_pfnVectors: 18.word_estack//TopofStack 19.wordReset_Handler//ResetHandler 20.wordNMI_Handler//NMIHandler 21.wordHardFault_Handler//HardFaultHandler 22.wordMemManage_Handler//MPUFaultHandler 23.wordBusFault_Handler//BusFaultHandler 24.wordUsageFault_Handler//UsageFaultHandler 25.word0//Reserved 26.word0//Reserved 27.word0//Reserved 28.word0//Reserved 29.wordSVC_Handler//SVCallHandler 30.wordDebugMon_Handler//DebugMonitorHandler 31.word0//Reserved 32.wordPendSV_Handler//PendSVHandler 33.wordSysTick_Handler//SysTickHandler 34//externalinterruptshandler 35.wordWWDGT_IRQHandler//16:WindowWatchdogTimer 36.wordLVD_IRQHandler//17:LVDthroughEXTILinedetect 37.wordTAMPER_IRQHandler//18:TamperthroughEXTILinedetect 38.wordRTC_IRQHandler//19:RTCthroughEXTILine 39.wordFMC_IRQHandler//20:FMC 40.wordRCU_CTC_IRQHandler//21:RCUandCTC 41.wordEXTI0_IRQHandler//22:EXTILine0 42.wordEXTI1_IRQHandler//23:EXTILine1 43.wordEXTI2_IRQHandler//24:EXTILine2 44.wordEXTI3_IRQHandler//25:EXTILine3 45.wordEXTI4_IRQHandler//26:EXTILine4 46.wordDMA0_Channel0_IRQHandler//27:DMA0Channel0 47.wordDMA0_Channel1_IRQHandler//28:DMA0Channel1 48.wordDMA0_Channel2_IRQHandler//29:DMA0Channel2 49.wordDMA0_Channel3_IRQHandler//30:DMA0Channel3 50.wordDMA0_Channel4_IRQHandler//31:DMA0Channel4 51.wordDMA0_Channel5_IRQHandler//32:DMA0Channel5 52.wordDMA0_Channel6_IRQHandler//33:DMA0Channel6 53.wordADC0_1_IRQHandler//34:ADC0andADC1 54.wordUSBD_HP_CAN0_TX_IRQHandler//35:USBDHPorCAN0TX 55.wordUSBD_LP_CAN0_RX0_IRQHandler//36:USBDLPorCAN0RX0 56.wordCAN0_RX1_IRQHandler//37:CAN0RX1 57.wordCAN0_EWMC_IRQHandler//38:CAN0EWMC 58.wordEXTI5_9_IRQHandler//39:EXTI5toEXTI9 59.wordTIMER0_BRK_TIMER8_IRQHandler//40:TIMER0BreakandTIMER8 60.wordTIMER0_UP_TIMER9_IRQHandler//41:TIMER0UpdateandTIMER9 61.wordTIMER0_TRG_CMT_TIMER10_IRQHandler//42:TIMER0TriggerandCommutationandTIMER10 62.wordTIMER0_Channel_IRQHandler//43:TIMER0ChannelCaptureCompare 63.wordTIMER1_IRQHandler//44:TIMER1 64.wordTIMER2_IRQHandler//45:TIMER2 65.wordTIMER3_IRQHandler//46:TIMER3 66.wordI2C0_EV_IRQHandler//47:I2C0Event 67.wordI2C0_ER_IRQHandler//48:I2C0Error 68.wordI2C1_EV_IRQHandler//49:I2C1Event 69.wordI2C1_ER_IRQHandler//50:I2C1Error 70.wordSPI0_IRQHandler//51:SPI0 71.wordSPI1_I2S1ADD_IRQHandler//52:SPI1orI2S1ADD 72.wordUSART0_IRQHandler//53:USART0 73.wordUSART1_IRQHandler//54:USART1 74.wordUSART2_IRQHandler//55:USART2 75.wordEXTI10_15_IRQHandler//56:EXTI10toEXTI15 76.wordRTC_Alarm_IRQHandler//57:RTCAlarm 77.wordUSBD_WKUP_IRQHandler//58:USBDWakeup 78.wordTIMER7_BRK_TIMER11_IRQHandler//59:TIMER7BreakandTIMER11 79.wordTIMER7_UP_TIMER12_IRQHandler//60:TIMER7UpdateandTIMER12 80.wordTIMER7_TRG_CMT_TIMER13_IRQHandler//61:TIMER7TriggerandCommutationandTIMER13 81.wordTIMER7_Channel_IRQHandler//62:TIMER7ChannelCompare 82.wordADC2_IRQHandler//63:ADC2 83.wordEXMC_IRQHandler//64:EXMC 84.wordSDIO_IRQHandler//65:SDIO 85.wordTIMER4_IRQHandler//66:TIMER4 86.wordSPI2_I2S2ADD_IRQHandler//67:SPI2orI2S2ADD 87.wordUART3_IRQHandler//68:UART3 88.wordUART4_IRQHandler//69:UART4 89.wordTIMER5_DAC_IRQHandler//70:TIMER5andDAC0DAC1Underrunerror 90.wordTIMER6_IRQHandler//71:TIMER6 91.wordDMA1_Channel0_IRQHandler//72:DMA1Channel0 92.wordDMA1_Channel1_IRQHandler//73:DMA1Channel1 93.wordDMA1_Channel2_IRQHandler//74:DMA1Channel2 94.wordDMA1_Channel3_4_IRQHandler//75:DMA1Channel3andChannel4 95.word0//76:Reserved 96.word0//77:Reserved 97.word0//78:Reserved 98.wordCAN1_TX_IRQHandler//79:CAN1TX 99.wordCAN1_RX0_IRQHandler//80:CAN1RX0 100.wordCAN1_RX1_IRQHandler//81:CAN1RX1 101.wordCAN1_EWMC_IRQHandler//82:CAN1EWMC 102.word0//83:Reserved 103.word0//84:Reserved 104.wordSHRTIMER_IRQ2_IRQHandler//85:SHRTIMERIRQ2 105.wordSHRTIMER_IRQ3_IRQHandler//86:SHRTIMERIRQ3 106.wordSHRTIMER_IRQ4_IRQHandler//87:SHRTIMERIRQ4 107.wordSHRTIMER_IRQ5_IRQHandler//88:SHRTIMERIRQ5 108.wordSHRTIMER_IRQ6_IRQHandler//89:SHRTIMERIRQ6 109.word0//90:Reserved 110.word0//91:Reserved 111.wordSHRTIMER_IRQ0_IRQHandler//92:SHRTIMERIRQ0 112.wordSHRTIMER_IRQ1_IRQHandler//93:SHRTIMERIRQ1 113.word0//94:Reserved 114.word0//95:Reserved 115.word0//96:Reserved 116.word0//97:Reserved 117.wordI2C2_EV_IRQHandler//98:I2C2Event 118.wordI2C2_ER_IRQHandler//99:I2C2Error 119.wordUSART5_IRQHandler//100:USART5 120.wordI2C2_WKUP_IRQHandler//101:I2C2Wakeup 121.wordUSART5_WKUP_IRQHandler//102:USART5Wakeup 122.word0//103:Reserved 123.sizeg_pfnVectors,.-g_pfnVectors 124.section.text.Reset_Handler 125.weakReset_Handler 126.typeReset_Handler,%function 127Reset_Handler: 128ldrr1,=_sidata 129ldrr2,=_sdata 130ldrr3,=_edata 131subsr3,r2 132blefill_bss_start 133loop_copy_data: 134subsr3,#4 135ldrr0,[r1,r3] 136strr0,[r2,r3] 137bgtloop_copy_data 138fill_bss_start: 139ldrr1,=__bss_start 140ldrr2,=__bss_end 141movsr0,0 142subsr2,r1 143blestartup_enter 144loop_fill_bss: 145subsr2,#4 146strr0,[r1,r2] 147bgtloop_fill_bss 148startup_enter: 149blSystemInit 150blentry 151/*ExceptionHandlers*/ 152.weakNMI_Handler 153.typeNMI_Handler,%function 154NMI_Handler: 155b. 156.sizeNMI_Handler,.-NMI_Handler 157.weakMemManage_Handler 158.typeMemManage_Handler,%function 159MemManage_Handler: 160b. 161.sizeMemManage_Handler,.-MemManage_Handler 162.weakBusFault_Handler 163.typeBusFault_Handler,%function 164BusFault_Handler: 165b. 166.sizeBusFault_Handler,.-BusFault_Handler 167.weakUsageFault_Handler 168.typeUsageFault_Handler,%function 169UsageFault_Handler: 170b. 171.sizeUsageFault_Handler,.-UsageFault_Handler 172.weakSVC_Handler 173.typeSVC_Handler,%function 174SVC_Handler: 175b. 176.sizeSVC_Handler,.-SVC_Handler 177.weakDebugMon_Handler 178.typeDebugMon_Handler,%function 179DebugMon_Handler: 180b. 181.sizeDebugMon_Handler,.-DebugMon_Handler 182.weakPendSV_Handler 183.typePendSV_Handler,%function 184PendSV_Handler: 185b. 186.sizePendSV_Handler,.-PendSV_Handler 187.weakSysTick_Handler 188.typeSysTick_Handler,%function 189SysTick_Handler: 190b. 191.sizeSysTick_Handler,.-SysTick_Handler 192/*IQRHandler*/ 193.section.text.Default_Handler,"ax",%progbits 194.typeDefault_Handler,%function 195Default_Handler: 196b. 197.sizeDefault_Handler,.-Default_Handler 198.macroIRQhandler 199.weakhandler 200.sethandler,Default_Handler 201.endm 202IRQWWDGT_IRQHandler 203IRQLVD_IRQHandler 204IRQTAMPER_IRQHandler 205IRQRTC_IRQHandler 206IRQFMC_IRQHandler 207IRQRCU_CTC_IRQHandler 208IRQEXTI0_IRQHandler 209IRQEXTI1_IRQHandler 210IRQEXTI2_IRQHandler 211IRQEXTI3_IRQHandler 212IRQEXTI4_IRQHandler 213IRQDMA0_Channel0_IRQHandler 214IRQDMA0_Channel1_IRQHandler 215IRQDMA0_Channel2_IRQHandler 216IRQDMA0_Channel3_IRQHandler 217IRQDMA0_Channel4_IRQHandler 218IRQDMA0_Channel5_IRQHandler 219IRQDMA0_Channel6_IRQHandler 220IRQADC0_1_IRQHandler 221IRQUSBD_HP_CAN0_TX_IRQHandler 222IRQUSBD_LP_CAN0_RX0_IRQHandler 223IRQCAN0_RX1_IRQHandler 224IRQCAN0_EWMC_IRQHandler 225IRQEXTI5_9_IRQHandler 226IRQTIMER0_BRK_TIMER8_IRQHandler 227IRQTIMER0_UP_TIMER9_IRQHandler 228IRQTIMER0_TRG_CMT_TIMER10_IRQHandler 229IRQTIMER0_Channel_IRQHandler 230IRQTIMER1_IRQHandler 231IRQTIMER2_IRQHandler 232IRQTIMER3_IRQHandler 233IRQI2C0_EV_IRQHandler 234IRQI2C0_ER_IRQHandler 235IRQI2C1_EV_IRQHandler 236IRQI2C1_ER_IRQHandler 237IRQSPI0_IRQHandler 238IRQSPI1_I2S1ADD_IRQHandler 239IRQUSART0_IRQHandler 240IRQUSART1_IRQHandler 241IRQUSART2_IRQHandler 242IRQEXTI10_15_IRQHandler 243IRQRTC_Alarm_IRQHandler 244IRQUSBD_WKUP_IRQHandler 245IRQTIMER7_BRK_TIMER11_IRQHandler 246IRQTIMER7_UP_TIMER12_IRQHandler 247IRQTIMER7_TRG_CMT_TIMER13_IRQHandler 248IRQTIMER7_Channel_IRQHandler 249IRQADC2_IRQHandler 250IRQEXMC_IRQHandler 251IRQSDIO_IRQHandler 252IRQTIMER4_IRQHandler 253IRQSPI2_I2S2ADD_IRQHandler 254IRQUART3_IRQHandler 255IRQUART4_IRQHandler 256IRQTIMER5_DAC_IRQHandler 257IRQTIMER6_IRQHandler 258IRQDMA1_Channel0_IRQHandler 259IRQDMA1_Channel1_IRQHandler 260IRQDMA1_Channel2_IRQHandler 261IRQDMA1_Channel3_4_IRQHandler 262IRQCAN1_TX_IRQHandler 263IRQCAN1_RX0_IRQHandler 264IRQCAN1_RX1_IRQHandler 265IRQCAN1_EWMC_IRQHandler 266IRQSHRTIMER_IRQ2_IRQHandler 267IRQSHRTIMER_IRQ3_IRQHandler 268IRQSHRTIMER_IRQ4_IRQHandler 269IRQSHRTIMER_IRQ5_IRQHandler 270IRQSHRTIMER_IRQ6_IRQHandler 271IRQSHRTIMER_IRQ0_IRQHandler 272IRQSHRTIMER_IRQ1_IRQHandler 273IRQI2C2_EV_IRQHandler 274IRQI2C2_ER_IRQHandler 275IRQUSART5_IRQHandler 276IRQI2C2_WKUP_IRQHandler 277IRQUSART5_WKUP_IRQHandler

導(dǎo)入RTTStudioIDE


導(dǎo)入工程

有了GCC版本的啟動(dòng)文件,那不妨先用RTTStudio導(dǎo)入一下工程,然后再根據(jù)錯(cuò)誤想辦法解決。點(diǎn)擊“文件”菜單內(nèi)的“導(dǎo)入”圖標(biāo),打開導(dǎo)入對(duì)話框:

wKgaomT3FL6ANuvcAAClJ9zeCv4356.png

選擇“RT-Thread Bsp到工作空間中”,然后點(diǎn)擊下一步按鈕:

wKgaomT3FL6AR33vAADIKsa6tJU439.jpg

根據(jù)自己的實(shí)際情況填寫內(nèi)容,然后點(diǎn)擊“完成按鈕”進(jìn)行導(dǎo)入:

wKgaomT3FL-AQ0u6AAD4ouRpVXM858.jpg

如下是我導(dǎo)入后的項(xiàng)目資源列表,會(huì)把所需的內(nèi)容都拷貝到工程內(nèi)部:

wKgaomT3FL-AX11uAAB_cNnIXWw057.png

編譯根據(jù)錯(cuò)誤解決問(wèn)題

不妨先編譯一下工程,發(fā)現(xiàn)報(bào)了一些錯(cuò)誤,這是必然的,因?yàn)檫€有很多操作沒(méi)做呢。那首當(dāng)其沖的錯(cuò)誤就是如下的GCC不支持m33內(nèi)核的問(wèn)題。


		

1arm-none-eabi-gcc:error:unrecognizedargumentinoption'-mcpu=cortex-m33+nodsp' 2arm-none-eabi-gcc:note:validargumentsto'-mcpu='are:arm1020earm1020tarm1022earm1026ej-sarm10earm10tdmiarm1136j-sarm1136jf-sarm1156t2-sarm1156t2f-sarm1176jz-sarm1176jzf-sarm2arm250arm3arm6arm60arm600arm610arm620arm7arm70arm700arm700iarm710arm7100arm710carm710tarm720arm720tarm740tarm7500arm7500fearm7darm7diarm7dmarm7dmiarm7marm7tdmiarm7tdmi-sarm8arm810arm9arm920arm920tarm922tarm926ej-sarm940tarm946e-sarm966e-sarm968e-sarm9earm9tdmicortex-a12cortex-a15cortex-a15.cortex-a7cortex-a17cortex-a17.cortex-a7cortex-a5cortex-a53cortex-a57cortex-a57.cortex-a53cortex-a7cortex-a72cortex-a72.cortex-a53cortex-a8cortex-a9cortex-m0cortex-m0.small-multiplycortex-m0pluscortex-m0plus.small-multiplycortex-m1cortex-m1.small-multiplycortex-m3cortex-m4cortex-m7cortex-r4cortex-r4fcortex-r5cortex-r7cortex-r8ep9312exynos-m1fa526fa606tefa626fa626tefa726tefmp626generic-armv7-aiwmmxtiwmmxt2marvell-pj4mpcorempcorenovfpnativestrongarmstrongarm110strongarm1100strongarm1110xgene1xscale 3make:***[rt-thread/src/subdir.mkrt-thread/src/clock.o]Error1

更新GCC

去arm官網(wǎng),下載最新版本的gcc-arm-none-eabi:

GCC下載地址: https://developer.arm.com/downloads/-/gnu-rm

wKgaomT3FL-AHY2zAAD6N2KSSYE737.jpg

把解壓后的GCC文件夾拷貝到RTTStudio的GCC工具路徑內(nèi),為了減小點(diǎn)路徑長(zhǎng)度,可以把文件夾名字重命名為”10.3”:

wKgaomT3FL-ADqCHAAB6516dBn4002.png

點(diǎn)擊“構(gòu)建配置”工具圖標(biāo),打開配置對(duì)話框,在“設(shè)置”欄的“Toolchains”圖頁(yè)內(nèi)就可以配置GCC相關(guān)信息了。GCC應(yīng)該是向下兼容的,這里不妨選擇”global”進(jìn)行全局設(shè)置:

wKgaomT3FL-AcPlAAAFwTJvev_w846.jpg

點(diǎn)擊“瀏覽”按鈕,選擇剛加入的GCC工具路徑,要選擇到里面的bin級(jí)目錄:

wKgaomT3FMCAaiofAAF6XJDyo5c162.jpg

wKgaomT3FMCAGV9aAAC4GTx9kLc448.jpg

添加“cmsis_gcc.h”頭文件


點(diǎn)擊“應(yīng)用并關(guān)閉”按鈕,完成修改,再次編譯,發(fā)現(xiàn)之前不支持M33內(nèi)核的錯(cuò)誤不見(jiàn)了。不過(guò)錯(cuò)誤反而變多了,也很正常,因?yàn)橹熬蜎](méi)進(jìn)行到GCC編譯這一步,很多錯(cuò)誤自然出現(xiàn)不了,不用著急,先看第一個(gè)錯(cuò)誤:


		

1D:RT-ThreadStudioworkspaceFOC_MiniCarlibrariesGD32E50x_Firmware_LibraryCMSIS/cmsis_compiler.h:54:12:fatalerror:cmsis_gcc.h:Nosuchfileordirectory 254|#include"cmsis_gcc.h"

報(bào)的是固件庫(kù)缺少“cmsis_gcc.h”文件。也對(duì),官方固件并沒(méi)有做GCC的支持,怎么會(huì)有這個(gè)頭文件呢。那繼續(xù)從其它固件那里拷貝一份到當(dāng)前工程內(nèi)即可,當(dāng)然為了之前做的BSP的完整性,也可以同時(shí)往其對(duì)應(yīng)位置拷貝一份:

wKgaomT3FMCAJHBpAAChnpgrZdg648.jpg

再次編譯,嘔吼!錯(cuò)誤更多了,依然不急,先看第一個(gè)錯(cuò)誤:


		

1D:RT-ThreadStudioworkspaceFOC_MiniCarlibrariesGD32E50x_Firmware_LibraryCMSIS/core_cm33.h:2668:10:fatalerror:mpu_armv8.h:Nosuchfileordirectory 22668|#include"mpu_armv8.h"

提示找不到”mpu_armv8.h”頭文件。這里比較奇怪,m33內(nèi)核確實(shí)屬于armv8架構(gòu),但官方固件庫(kù)內(nèi)卻找不到此頭文件,倒是在其它的BSP內(nèi)搜到了此頭文件,于是隨便拷貝一個(gè)到工程內(nèi)即可,比如我是從瑞薩的一個(gè)BSP內(nèi)拷貝的。當(dāng)然,這里也可以關(guān)掉mpu的配置宏,不用mpu。

wKgaomT3FMCAPw0nAACyU1vu6wo025.jpg

于是再次進(jìn)行編譯,就會(huì)發(fā)現(xiàn)編譯通過(guò)了:

wKgaomT3FMGAVubGAAColMR2WqQ679.png

更新pyocd


那不妨下載一下試試,不出意外自然會(huì)出現(xiàn)意外,果真不能正常下載。原因就是最開始提到的自帶的pyocd版本太老了,不支持GD32E503RC的器件。需要更新pyocd:

wKgaomT3FMGAEmIlAAB5EBunweE075.jpg

打開CMD命令窗口,運(yùn)行如下命令,安裝新的pyocd:

wKgaomT3FMGAF_PbAADQAi2cKBg523.png

等待安裝完畢,就可以在python的安裝路徑下找到新的”pyocd.exe”

wKgaomT3FMGAFmeqAABGQPquA5Q813.png

在終端輸入“pyocd -V”命令,可查看到新安裝pyocd的版本。還可以輸入“pyocd list —targets”命令查看目前pyocd支持的器件。

wKgaomT3FMGAEE4WAAAym3pUkp4266.png

最后會(huì)發(fā)現(xiàn),默認(rèn)并不支持兆易創(chuàng)新的器件,所以,還需要自己添加支持包:

wKgaomT3FMGARJazAAAanz9rZSM363.png

安裝完后,再查看安裝包和支持的器件,就能找到GD32了:

wKgaomT3FMKACyCSAAAY9lZlZqE106.png

wKgaomT3FMKAWivhAAAL831J1jQ507.png

最后再修改一些RTTStudio的工程配置,選擇先安裝的pyocd.exe和pyocd-gdbserver.exe:

wKgaomT3FMKAGHq5AAF15GVhvk4824.jpg

然后再嘗試一些燒寫,就可以正常下載甚至調(diào)試程序了:

wKgaomT3FMKAOjteAADWCLnN1nw717.jpg

相關(guān)鏈接


本系列首篇文章鏈接:

https://club.rt-thread.org/ask/article/5c0c4ba7eb4ab1ad.html

———————End——————

點(diǎn)擊閱讀原文進(jìn)入官網(wǎng)

?

?


原文標(biāo)題:無(wú)刷電機(jī)小車開發(fā)記錄02——BSP導(dǎo)入RT-Thread Studio

文章出處:【微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


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

    關(guān)注

    31

    文章

    1301

    瀏覽量

    40265

原文標(biāo)題:無(wú)刷電機(jī)小車開發(fā)記錄02——BSP導(dǎo)入RT-Thread Studio

文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    開源共生 商業(yè)共贏 | RT-Thread 2024開發(fā)者大會(huì)報(bào)名啟動(dòng)!

    親愛(ài)的RT-Thread開發(fā)者我們很高興地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread開發(fā)
    的頭像 發(fā)表于 10-29 08:06 ?457次閱讀
    開源共生 商業(yè)共贏 | <b class='flag-5'>RT-Thread</b> 2024<b class='flag-5'>開發(fā)</b>者大會(huì)報(bào)名啟動(dòng)!

    rt-thread studio導(dǎo)入bsp失敗的原因?

    rt-thread studio導(dǎo)入bsp失敗,bsp:gd32470z-lckfb
    發(fā)表于 09-27 09:54

    rt-thread studio導(dǎo)入bsp失敗的原因?

    rt-thread studio導(dǎo)入bsp失敗,bsp:gd32470z-lckfb
    發(fā)表于 09-13 07:49

    rt-thread studio手動(dòng)導(dǎo)入bsp失敗的原因?怎么處理?

    rt-thread studio 手動(dòng)導(dǎo)入bsp 失敗。 版本: 2.2.8 構(gòu)建ID: 202405200930 導(dǎo)入
    發(fā)表于 09-13 06:45

    2024 RT-Thread全球巡回 線下培訓(xùn)火熱來(lái)襲!

    親愛(ài)的RT-Thread社區(qū)成員們:我們非常高興地宣布,2024年RT-Thread全球開發(fā)者線下培訓(xùn)即將拉開帷幕!24年全球巡回培訓(xùn)將覆蓋超10座城市及國(guó)家,為開發(fā)者提供一個(gè)深入學(xué)習(xí)
    的頭像 發(fā)表于 08-07 08:35 ?1386次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓(xùn)火熱來(lái)襲!

    【好書推薦】RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南

    近年來(lái)國(guó)內(nèi)芯片產(chǎn)業(yè)和物聯(lián)網(wǎng)產(chǎn)業(yè)的快速崛起,行業(yè)發(fā)展迫切需要更多人才,尤其需要掌握嵌入式操作系統(tǒng)等底層技術(shù)的人才。隨著RT-Thread被更廣泛地應(yīng)用于行業(yè)中,開發(fā)者對(duì)嵌入式驅(qū)動(dòng)開發(fā)的需求越來(lái)越
    的頭像 發(fā)表于 08-01 08:35 ?677次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>指南

    RT-Thread Studio導(dǎo)入keil MDK工程失敗的原因?怎么解決?

    RT-Thread Studio導(dǎo)入keil MDK工程失敗
    發(fā)表于 07-15 06:56

    RT-Thread studio基于BSP創(chuàng)建工程失敗了怎么解決?

    復(fù)制了一份F412 Nucleo 的bsp工程, 然后在RT Studio導(dǎo)入導(dǎo)入失敗
    發(fā)表于 07-12 12:12

    開發(fā)者分享 | 基于先楫RT-Thread BSP,使用CLion開發(fā)應(yīng)用

    本期開發(fā)者:朱彥祖RT-Thread資深工程師,HPM6700/6400元老級(jí)開發(fā)者及骨灰級(jí)用戶,先輯生態(tài)社區(qū)常駐優(yōu)秀開發(fā)者,江湖人稱杭州吳彥祖。背景最近在使用先輯HPM6750
    的頭像 發(fā)表于 06-07 08:17 ?2949次閱讀
    <b class='flag-5'>開發(fā)</b>者分享 | 基于先楫<b class='flag-5'>RT-Thread</b> <b class='flag-5'>BSP</b>,使用CLion<b class='flag-5'>開發(fā)</b>應(yīng)用

    rt-thread studio能在文件夾中直接打開工程嗎?

    rt-thread studio不支持在文件夾中直接打開工程嗎,只能導(dǎo)入
    發(fā)表于 03-27 06:59

    RT-Thread Studio使用GD-LINK下載,選擇DAP-LINK,編譯報(bào)錯(cuò)怎么解決?

    下載源碼5.0.2, 使用RT-Thread Studio v2.2.7,導(dǎo)入bsp里面的RT-Thread
    發(fā)表于 02-26 06:47

    RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南》基礎(chǔ)篇--以先楫bsp的hwtimer設(shè)備為例

    一、概述(一)RT-Thread設(shè)備驅(qū)動(dòng)《RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南》書籍是RT-thread官方出品撰寫,系統(tǒng)講解RT-threa
    的頭像 發(fā)表于 02-24 08:16 ?1751次閱讀
    《<b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>指南》基礎(chǔ)篇--以先楫<b class='flag-5'>bsp</b>的hwtimer設(shè)備為例

    rt-thread studio地址偏移怎么配置?

    rt-thread studio地址偏移配置,這個(gè)再哪配置?
    發(fā)表于 02-23 06:24

    RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南基礎(chǔ)篇—以先楫bsp的hwtimer設(shè)備為例

    RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南》書籍是RT-thread官方出品撰寫,系統(tǒng)講解RT-thread IO設(shè)備驅(qū)動(dòng)開發(fā)方法,從三方面進(jìn)行講解
    的頭像 發(fā)表于 02-20 16:01 ?1758次閱讀
    <b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>指南基礎(chǔ)篇—以先楫<b class='flag-5'>bsp</b>的hwtimer設(shè)備為例

    ch32v307-r1 BSP按照README說(shuō)明導(dǎo)入RT-Thread Studio編譯報(bào)錯(cuò)的原因?怎么解決?

    Github上下載的RT-Thread v5.0.2 ,按照ch32v307-r1 的README.md說(shuō)明導(dǎo)入RT-Thread Studio工程后,編譯報(bào)錯(cuò): ../
    發(fā)表于 02-19 06:05
    主站蜘蛛池模板: 一区二区视屏| 一区二区中文字幕| 手机在线你懂的| 日本不卡视频一区二区三区| 免费啪视频在线观看免费的| 好紧好爽的午夜寂寞视频| 手机在线免费观看视频| 天天干天天草天天射| 免费在线观看黄| www天天操| h小视频在线| 操欧洲美女| av天天看| 亚洲一区二区三区在线视频| 老师您的兔子好软水好多动漫视频| 黄网站在线观看永久免费| 亚洲成熟| 欧洲mv日韩mv国产mv| 久久国产乱子伦精品免| 欧美乱论视频| 久久久鲁| 91久久夜色精品国产网站| 视频在线观看免费播放www| 狠狠干夜夜草| 午夜a视频| 婷婷99精品国产97久久综合 | 天天摸夜夜添夜夜添国产| 欧美成人午夜片一一在线观看| 999久久精品国产| 欧美视频三区| 婷婷精品视频| 久久国产色| 午夜视频在线| 亚洲免费福利视频| 欧美女同在线观看| 欧美性黄色| 综合亚洲色图| 啪啪激情综合| 成人精品亚洲| 久操视频网| 欧美一卡2卡三卡4卡5卡免费观看|