找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 5706|回復(fù): 4
收起左側(cè)

自制ROM-Monitor仿真STC8A8K64S4A12(IAR平臺(tái))

[復(fù)制鏈接]
ID:351097 發(fā)表于 2020-3-14 17:01 | 顯示全部樓層 |閱讀模式
本帖最后由 沒(méi)有你 于 2020-3-24 15:30 編輯

    之前發(fā)過(guò)帖子介紹如何在IAR建立STC8A8K64S4A12單片機(jī)工程,詳情可以查看http://www.torrancerestoration.com/bbs/dpj-168481-1.html。雖然可以在IAR平臺(tái)正常編譯STC8A8K64S4A12工程,但是沒(méi)有基于IAR平臺(tái)的STC單片機(jī)的硬件在線調(diào)試工具。IAR平臺(tái)有一個(gè)軟件仿真工具simulator,這個(gè)工具很強(qiáng)大,一般被用來(lái)驗(yàn)證程序代碼的邏輯功能。但由于是軟件仿真,終究沒(méi)法體現(xiàn)硬件的真實(shí)狀態(tài),比如變量存儲(chǔ)地址等信息。STC官方針對(duì)keil平臺(tái)有一個(gè)類(lèi)似ROM-Monitor的調(diào)試工具:STC Monitor-51,但是無(wú)法在IAR平臺(tái)使用,的確有點(diǎn)遺憾。自己花了點(diǎn)時(shí)間,仔細(xì)研究了一些IAR官方提供的官方資料,經(jīng)過(guò)多次修改調(diào)試,總算搞出適配STC8A8K64S4A12單片的ROM-Monitor調(diào)試工具。有了ROM-Monitor調(diào)試工具,在IAR平臺(tái)也能愉快玩耍STC8A單片機(jī)了。                                                                                                                                       一、ROM-Monitor簡(jiǎn)介。   
    ROM-Monitor是一種在線調(diào)試工具,利用單片機(jī)構(gòu)成下位機(jī)和上位機(jī)進(jìn)行通信來(lái)實(shí)現(xiàn)程序調(diào)試。使用時(shí),需要先將ROM-Monitor固件燒錄到單片機(jī)里面,這樣單片機(jī)就成為下位機(jī),然后將單片機(jī)連接PC上位機(jī)。在單片機(jī)和上位機(jī)的通信過(guò)程中,上位機(jī)首先會(huì)識(shí)別ROM-Monitor固件的設(shè)備,然后將需要調(diào)試的代碼傳到下位機(jī)。對(duì)于下位機(jī)來(lái)講,就是執(zhí)行的應(yīng)用程序的下載。完成后,下位機(jī)就按照上位機(jī)的調(diào)試指令進(jìn)行操作,調(diào)試指令有全速運(yùn)行、單步、斷點(diǎn)設(shè)置和暫停等。只要單片機(jī)擁有串口,并且支持IAP,基本上就可以用ROM-Monitor調(diào)試。但是ROM-Monitor也有缺點(diǎn),比如需要占用單片機(jī)的程序空間和串口資源。
二、ROM-Monitor的使用條件。
    本次基于STC8A8K64S4A12單片機(jī)的ROM-Monitor所占資源如下所示:
    1、串口1(P3_0、P3_1)
    2、4K程序空間(0x0000-0x0FFF)
    3、XDATA:128字節(jié)(0x0000-0x0080)
    串口1主要是和IAR上位機(jī)通信用的,另外用到了串口中斷,所以在調(diào)試時(shí),不要用到串口1的任何資源,不要關(guān)閉串口中斷和總中斷。ROM-Monitor占用4K的程序空間,地址從0x0000-0x0FFF。所以應(yīng)用程序代碼起始地址要設(shè)定從0x1000開(kāi)始。另外,應(yīng)用程序代碼不能往任何中斷向量地址寫(xiě)代碼,也就是說(shuō)無(wú)法調(diào)試硬件中斷,只能用查詢(xún)方式判斷中斷標(biāo)志位來(lái)調(diào)試中斷。    ROM-Monitor占用128字節(jié)的xdata的RAM空間,主要是用來(lái)保護(hù)和恢復(fù)應(yīng)用程序現(xiàn)場(chǎng)的。每次上位機(jī)發(fā)數(shù)據(jù)給下位機(jī),都會(huì)觸發(fā)串口1中斷,在中斷處理中,會(huì)保存應(yīng)用程序的PSW、DPH和DPL等寄存器內(nèi)容,然后將內(nèi)部ram地址0x00-0x80的內(nèi)容和xdata地址0x0000-0x0080中內(nèi)容做交換,最后跳轉(zhuǎn)到ROM-Monitor主程序,執(zhí)行上位機(jī)的指令操作。等到完成上位機(jī)的指令操作后,下位機(jī)會(huì)再次將內(nèi)部ram地址0x00-0x80的內(nèi)容和xdata地址0x0000-0x0080中內(nèi)容做交換,還原應(yīng)用程序的PSW、DPH、DPL等寄存器內(nèi)容,最后通過(guò)中斷返回到應(yīng)用程序。
    如果沒(méi)有指定變量存放地址,每次上電單片機(jī)自動(dòng)分配給變量的RAM地址都是不一樣的�?赡苡腥藭�(huì)擔(dān)心單片機(jī)可能會(huì)把xdata的0x0000-0x0080這個(gè)地址分配其他變量使用,那豈不是會(huì)破壞ROM-Monitor的正常運(yùn)行嗎?其實(shí)這個(gè)擔(dān)心是多余的,因?yàn)镽OM-Monitor指定在xdata的0x0000地址申請(qǐng)一個(gè)占128個(gè)字節(jié)的大數(shù)組全局變量,而且單片機(jī)上電首先會(huì)執(zhí)行ROM-Monitor程序,所以應(yīng)用程序是無(wú)法在xdata的0x0000-0x0080申請(qǐng)其他變量的。

   ROM-Monitor設(shè)置斷點(diǎn)是軟件斷點(diǎn),理論上可以設(shè)置很多個(gè)斷點(diǎn)。但是,實(shí)際上不要設(shè)置太多斷點(diǎn),太多斷點(diǎn)會(huì)影響調(diào)試的效率,一般設(shè)置1-10個(gè)斷點(diǎn)為宜。另外,不要在同一個(gè)函數(shù)設(shè)置多個(gè)斷點(diǎn),可能會(huì)導(dǎo)致錯(cuò)誤的發(fā)生。如果要調(diào)試一個(gè)函數(shù),只需要在函數(shù)里面設(shè)一個(gè)斷點(diǎn),等到程序執(zhí)行到斷點(diǎn)處,再單步調(diào)試即可。
三、IAR平的debugger功能
    IAR平臺(tái)需要通過(guò)ddf后綴的硬件描述文件來(lái)識(shí)別單片機(jī)的所有寄存器地址,硬件描述文就是芯片的說(shuō)明書(shū)。編寫(xiě)和測(cè)試STC8A8K64S12.ddf文件花了我不少時(shí)間,純手打,眼力校驗(yàn),差點(diǎn)就吐了。
    ROM-Monitor支持存儲(chǔ)讀寫(xiě)功能,調(diào)試過(guò)程中,IAR都會(huì)實(shí)時(shí)更新存儲(chǔ)器的內(nèi)容。如下圖所示
讀取內(nèi)部資源.JPG

    在菜單欄view中,選擇memory,就可以調(diào)出memory頁(yè)面。通過(guò)ROM-Monitor,IAR可以讀寫(xiě)全部ROM地址和RAM地址的內(nèi)容。memory總共劃分成6個(gè)頁(yè)面,即iData、xData、sfr、code、Data和pData。以STC8A8K64S12單片機(jī)為例,其中iData表示內(nèi)部ram空間0x00-0xff的內(nèi)容,xData表示外部ram空間0x0000-0x1fff的內(nèi)容,sfr表示位于內(nèi)部ram從0x80-0xff寄存器的內(nèi)容,code表示內(nèi)部rom空間0x0000-0xffff的內(nèi)容,Data表示內(nèi)部ram從0x00-0x7f的內(nèi)容,pData表示外部ram空間0x0000-0x00ff的內(nèi)容。比如切換到code頁(yè)面,可以清楚查看ROM-Monitor和應(yīng)用程序的存儲(chǔ)地址和內(nèi)容,其中ROM-Monitor使用地址0x0000-0x0fff,禁止修改這個(gè)區(qū)域的任何數(shù)據(jù),否則會(huì)損壞ROM-Monitor固件。由于全部存儲(chǔ)都已經(jīng)可視化,我們可以很方便地做一些存儲(chǔ)的測(cè)試實(shí)驗(yàn),比如下圖測(cè)試寫(xiě)RAM空間:
ram寫(xiě)入.JPG

    在xdata指定一個(gè)起始地址為0x0400的數(shù)組,數(shù)組長(zhǎng)度為100個(gè)字節(jié),然后依次為數(shù)組從100-0賦值。xdata頁(yè)面可以清楚地顯示數(shù)組的地址也是從0x0400開(kāi)始,數(shù)值也是完全對(duì)應(yīng)的,數(shù)值顯示格式是十六進(jìn)制的。測(cè)試寫(xiě)ROM空間也是可以直接通過(guò)這種方式驗(yàn)證的,非常方便和實(shí)用。下面介紹一下寄存器的讀寫(xiě)功能。
    寄存器的查看可以通過(guò)sfr頁(yè)面查看位于0x80-0xff的寄存器地址和內(nèi)容,如下圖所示:
sfr.JPG

    不過(guò)這種方式要自己根據(jù)地址去查找對(duì)應(yīng)寄存器名稱(chēng),很不方便。IAR提供一種查看寄存器的方式,通過(guò)讀取ddf硬件描述文件將寄存器的名字和地址對(duì)應(yīng)起來(lái),羅列在欄目中,比較直觀。在菜單欄view中,選擇registers,就可以調(diào)出register頁(yè)面。如下圖所示:
寄存器.JPG

    IAR允許同時(shí)打開(kāi)四個(gè)registers欄目,每個(gè)欄目顯示不同功能類(lèi)寄存器組的內(nèi)容,如果要切換顯示其他寄存器,可以右鍵選擇要切換的寄存器,如下圖所示:
寄存器.png

    基本上STC8A8K64S12所有的寄存器都可以找到,寄存器的名稱(chēng)都是嚴(yán)格按照STC8的datasheet編寫(xiě)。如果要查看寄存器的某個(gè)位的狀態(tài),可以點(diǎn)擊在寄存器名稱(chēng)的前的“+”圖標(biāo)。比如要查看ADC寄存器的各個(gè)位,如下圖所示:
ADC.JPG

    有些寄存器某些位不存在,則用“-----”代替。有些名稱(chēng)占據(jù)多個(gè)位,則在其后標(biāo)注序號(hào),比如上圖ADC_CHS占據(jù)四個(gè)位,從高位到低位依次標(biāo)注為:ADC_CHS3、ADC_CHS2、ADC_CHS1、ADC_CHS0。
    只要在欄目點(diǎn)擊寄存器的數(shù)值,就可以填寫(xiě)修改的數(shù)值,修改是立即生效的,非常方便。比如我要點(diǎn)亮P5.5引腳的LED燈,只需要將P5端口修改為0xDF,或者直接往P5_5寫(xiě)0。對(duì)于一些位于片外RAM空間0xfe00-0xffff的寄存器,ROM-Monitor訪問(wèn)這部分寄存器前會(huì)保存P_SW2寄存器的內(nèi)容,再使能P_SW2寄存器的EAXFR位,訪問(wèn)結(jié)束后,再還原之前的P_SW2寄存器內(nèi)容,所以IAR可以正常讀寫(xiě)這些寄存器。但是,應(yīng)用程序代碼如果要正常訪問(wèn)這些寄存器,要先使能P_SW2寄存器的EAXFR位。
   需要注意的是,有些寄存器不要隨意更改,比如改變時(shí)鐘的分頻系數(shù)。這樣會(huì)導(dǎo)致串口1的波特率發(fā)送改變,那ROM-Monitor就無(wú)法和IAR正常通信。串口1用到P3_0和P3_1,所以不要修改P3端口這兩個(gè)位的內(nèi)容。如果直接將IAP_CONTR寄存器的值修改為0x60,會(huì)導(dǎo)致單片機(jī)重啟,ROM-Monitor和IAR的通信也會(huì)失敗。
   寄存器選擇欄目。我新增了一個(gè)ROM-parameter,這個(gè)其實(shí)不是STC8A8K64S4A12寄存器的內(nèi)容,這些是STC-ISP軟件在燒錄時(shí)添加到ROM的一些特殊參數(shù),比如7位出廠序列號(hào)、bandgap(內(nèi)部基準(zhǔn)電壓)和喚醒頻率等參數(shù)。由于ROM-Monitor下載應(yīng)用程序前會(huì)先擦除0x1000-0xffff的內(nèi)容,這會(huì)把這些參數(shù)也一并擦除了。為了保存這些數(shù)據(jù),ROM-Monitor在擦除數(shù)據(jù)前,會(huì)先找出這部分?jǐn)?shù)據(jù),然后復(fù)制到ROM-Monitor中沒(méi)有使用到的ROM區(qū)域。在ddf硬件描述文件將這部分ROM區(qū)域也列舉成寄存器,這樣IAR就能正常訪問(wèn),如下圖所示:
出廠序列號(hào).JPG

    從上圖可以看出,ROM-parameter里的Device_ID:F62884625356AF,bandgap:0x53d=1341mV,這和STC-ISP列出的信息完全一致。如果STC-ISP沒(méi)有勾選“在程序區(qū)的結(jié)束處添加重要測(cè)試參數(shù)”,那就只有Device_ID,沒(méi)有其他參數(shù)。下圖是STC官方STC8的datasheet手冊(cè)的存儲(chǔ)器特殊參數(shù)的地址說(shuō)明:
特殊值.JPG

    通過(guò)上圖,可以知道STC8A系列不同容量單片機(jī)的出廠序列號(hào)存放地址,只要遍歷這些地址,就能讀取出廠序列號(hào)。更重要的是,可以根據(jù)出廠序列號(hào)存放的地址,準(zhǔn)確判斷單片機(jī)的ROM大小。這樣,ROM-Monitor就可以計(jì)算出所需擦除的ROM空間大小,可以動(dòng)態(tài)適配其他型號(hào)的STC8A單片機(jī)。如果單片機(jī)的ROM空間只有60K,我硬要擦除到64K,那會(huì)導(dǎo)致單片機(jī)卡死。
四、ROM-Monitor的使用說(shuō)明。
    1、燒錄ROM-Monitor固件
    下載ROM-Monitor.JPG
    打開(kāi)附件提供的ROM-Monitor for STC8A V1.1.hex文件,使用STC官方提供的STC-ISP軟件燒錄文件,IRC頻率選擇24M。由于我使用的單片機(jī)是STC8A8K64S4A12,這個(gè)型號(hào)很奇葩,需要指定EEPROM的大小,一定要選擇64K。這樣對(duì)于ROM空間0x0000-0xffff地址空間,單片機(jī)就能正常讀寫(xiě),不然會(huì)卡死。下面列舉datasheet手冊(cè)一些STC8A單片機(jī)的IAP讀寫(xiě)區(qū)域,如下圖所示:
IAP.JPG

    除了STC8A8K64S12需要用戶(hù)自定義,其他幾款單片機(jī)的ROM全部地址空間都支持IAP方式讀寫(xiě),ROM的擦除和讀寫(xiě)主要是利用IAP技術(shù)實(shí)現(xiàn)的,ROM-Monotor下載調(diào)試應(yīng)用程序也是基于IAP技術(shù)。
    2、支持的STC8A單片機(jī)系列
    理論上,所有ROM空間大于4K、外部RAM空間大于128字節(jié)、并且支持IAP的8051單片機(jī)都可以用ROM-Monitor。不過(guò)不同品牌的單片機(jī)有差異性,特別是IAP操作方式的差異,導(dǎo)致不同的單片機(jī)需要定制不同的ROM-Monitor。本次測(cè)試的單片機(jī)型號(hào)為STC8A8K64S4A12,ROM-Monitor暫時(shí)只適用于STC8A系列的單片機(jī)。由于手頭沒(méi)有其他STC8A單片機(jī),沒(méi)做測(cè)試,所以不能保證所有型號(hào)的STC8A單片機(jī)都能正常使用。
    3、修改鏈接配置文件
    因?yàn)镽OM-Monitor位于ROM空間0x0000-0x0fff,所以應(yīng)用程序需要指定從0x1000處開(kāi)始。在D:\IAR_8051_10\8051\config\devices\STC目錄找到打開(kāi)對(duì)應(yīng)xcl后綴的鏈接配置文件,將-D_CODE0_START=0修改成-D_CODE0_START=0x1000,點(diǎn)擊保存即可。
    linker.JPG
    在Option→Linker里,在Linker configuartion file欄,勾選override default,選擇對(duì)應(yīng)的xcl鏈接配置文件。
    4、選擇debugger工具
debugger.JPG

    在Option→Debugger里,Device選擇ROM-Monitor,勾選Override default,選擇對(duì)應(yīng)的ddf后綴的硬件描述文件。
rom_monitor1.JPG

    在Option→Debugger→ROM-Monitor→Download里,勾選Verify download。這個(gè)選項(xiàng)是驗(yàn)證應(yīng)用程序下載完整性,建議勾選。
rom_monitor2.JPG

    Option→Debugger→ROM-Monitor→Serial Ports里,選擇正確的串口號(hào),波特率可以選擇9600、38400、57600、115200,不過(guò)建議選擇115200,因?yàn)檎{(diào)試速度會(huì)快很多。右邊On Reset欄,Toggle DTR和Toggle RTS不用勾選。DTR和RTS是串口芯片的兩個(gè)輸出引腳,一般是連接到單片機(jī)Reset引腳,這樣上位機(jī)就可以翻轉(zhuǎn)DTR或者RTS來(lái)讓單片機(jī)硬件復(fù)位。很多STC8A開(kāi)發(fā)板都沒(méi)有連接,本次ROM-Monitor利用軟件復(fù)位代替硬件復(fù)位。其他選項(xiàng)按照?qǐng)D示選擇即可。

    5、開(kāi)始調(diào)試
    ddbugger.png
    直接點(diǎn)擊上圖‘“download and Debug”按鍵,ROM-Monitor會(huì)自動(dòng)下載應(yīng)用程序,然后進(jìn)入調(diào)試模式。
   reset.png
    如果要重新返回到程序起點(diǎn),點(diǎn)擊上圖“Reset”按鍵即可。
   make.png
    如果修改了應(yīng)用程序語(yǔ)句,可以點(diǎn)擊上圖“Make_Restart_Debugger”,IAR會(huì)退出調(diào)試模式,然后重新編譯程序,并且在編譯完成后,再次進(jìn)入調(diào)試模式,ROM-Monitor即時(shí)也會(huì)下載最新的應(yīng)用程序。
stop.png

    如果要退出調(diào)試模式,可以點(diǎn)擊上圖“Stop Debugging”。
    6、一些錯(cuò)誤的處理
    ①、如果出現(xiàn)斷點(diǎn)沖突的彈窗,要先把斷點(diǎn)取消,然后點(diǎn)擊“Reset”按鍵,或者點(diǎn)擊“Make_Restart_Debugger”按鍵。
    ②、如果點(diǎn)擊“download and Debug”按鍵,一直沒(méi)有響應(yīng),請(qǐng)檢測(cè)串口通信端口是否正確,然后把開(kāi)發(fā)板斷點(diǎn)再上電。
    ③、如果在調(diào)試過(guò)程中途出現(xiàn)ROM-Monitor沒(méi)有響應(yīng)的情況,請(qǐng)檢測(cè)代碼是否使用到ROM-Monitor的串口資源,或者更改了系統(tǒng)時(shí)鐘頻率;
    ④、如果不小心修改了ROM-Monitor的固件,比如代碼使用了中斷向量地址,可能會(huì)導(dǎo)致ROM-Monitor固件損壞,這時(shí)就算重新斷電再上電也沒(méi)用,需要重新用STC-ISP燒錄ROM-Monitor固件。

五、附件說(shuō)明
    附件包含三個(gè)文件夾:
    1、IAR平臺(tái)STC兼容文件
    2、OLED工程
    3、ROM-Monitor固件
    其中IAR平臺(tái)STC兼容文件主要是STC8A系列單片機(jī)的頭文件、鏈接配置和硬件描述文件。需要復(fù)制到IAR指定安裝目錄,詳細(xì)可以查看說(shuō)明。OLED工程是本次測(cè)試工程,可以直接編譯測(cè)試,用來(lái)評(píng)估ROM-Monitor的功能。ROM-Monitor固件包含ROM-Monitor for STC8A V1.1.hex,使用前需要先燒錄到STC8A單片機(jī)里。
六、簡(jiǎn)單對(duì)比IAR平臺(tái)的ROM-Monitor for STC8A和KEIL平臺(tái)的STC Monitor-51 對(duì)比.JPG
    其中片內(nèi)特殊寄存器指片內(nèi)位于0x80-0xff之間的寄存器,片外特殊寄存器指位于0xfe00-ffff之間的寄存器。STC Monitor-51不支持顯示位于片外的特殊寄存器,即無(wú)法顯示I2C外設(shè)、系統(tǒng)時(shí)鐘和增強(qiáng)型PWM外設(shè)的所有寄存器的狀態(tài)。而ROM-Monitor for STC8A支持顯示全部特殊寄存器,支持實(shí)時(shí)讀和寫(xiě)全部特殊寄存器。 占用資源.JPG
    對(duì)于STC8系列STC Monitor-51不占用ROM空間的情況,個(gè)人認(rèn)為這只是不占用用戶(hù)ROM空間,STC官方針對(duì)STC8系列單片機(jī)特意加大了系統(tǒng)區(qū)空間大小,STC Monitor-51應(yīng)該被存放在系統(tǒng)區(qū),這個(gè)系統(tǒng)區(qū)也是STC單片機(jī)固化bootloader的區(qū)域,騰出6K的空間給STC Monitor-51用。系統(tǒng)區(qū)是無(wú)法被用戶(hù)是直接訪問(wèn)的。另外,STC的IAP系列的單片機(jī)的系統(tǒng)區(qū)大小沒(méi)有增加,所以STC Monitor-51需要占用6k的用戶(hù)ROM空間。
    對(duì)于RAM空間的占用,STC Monitor-51占用空間不是768bytes,就是1024bytes,需要單片機(jī)擁有至少1024K以上片外RAM空間才能正常仿真。假如單片機(jī)片外RAM只有1024bytes,那仿真時(shí),用戶(hù)只能使用片內(nèi)256bytes的RAM空間。而ROM-Monitor for STC8A僅占用128bytes的片外RAM空間。
    如果對(duì)IAR平臺(tái)感興趣的話,可以下載查看�?缙脚_(tái)移植不易,希望得到大家的支持。         b站視頻演示地址:https://b23.tv/BV1oE411A7Lw
    下面是實(shí)物圖
實(shí)物圖.jpg




調(diào)試工程文件.rar

439.19 KB, 下載次數(shù): 47, 下載積分: 黑幣 -5

三個(gè)文件壓縮包

回復(fù)

使用道具 舉報(bào)

ID:739441 發(fā)表于 2021-3-22 14:57 | 顯示全部樓層
1:如果程序里面用到了比如串口中斷,比如定時(shí)器中斷,是不是就不可以使用仿真了��?
2:如果有中斷使用了,但是使用的keil 是否可以仿真呢?
回復(fù)

使用道具 舉報(bào)

ID:351097 發(fā)表于 2021-3-24 12:58 | 顯示全部樓層
jiangyan111 發(fā)表于 2021-3-22 14:57
1:如果程序里面用到了比如串口中斷,比如定時(shí)器中斷,是不是就不可以使用仿真了��?
2:如果有中斷使用了 ...

串口1被用于和IAR通信了,所以應(yīng)用程序里面不能用串口1,可以使用STC8A的其他串口資源。
回復(fù)

使用道具 舉報(bào)

ID:617016 發(fā)表于 2021-5-30 10:33 | 顯示全部樓層
樓主能開(kāi)源 ROM-Monitor for STC8A 的源碼工程嗎?
回復(fù)

使用道具 舉報(bào)

ID:106977 發(fā)表于 2021-5-30 13:28 | 顯示全部樓層
除非你這個(gè)調(diào)試功能相比STC官方驅(qū)動(dòng)在Keil下的調(diào)試有顯著優(yōu)點(diǎn),否則實(shí)用價(jià)值不大!調(diào)試過(guò)程是個(gè)相對(duì)繁瑣的過(guò)程,需要簡(jiǎn)單方便!環(huán)節(jié)一多,不知道是在調(diào)試誰(shuí)?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表