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

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

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

使用GD32的嵌入式實時控制系統(tǒng)

兆易創(chuàng)新科技 ? 來源:兆易創(chuàng)新科技 ? 作者:佚名 ? 2019-10-30 15:18 ? 次閱讀

本文基于GD32微控制器RT-Thread實時操作系統(tǒng),構(gòu)建了一種軟硬件自主可控的嵌入式實時控制系統(tǒng)。研究了RT-Thread操作系統(tǒng)在GD32芯片開發(fā)板上的移植方法和驅(qū)動程序改寫,并編寫多任務(wù)應(yīng)用程序測試了系統(tǒng)的運行穩(wěn)定可靠。為嵌入式控制系統(tǒng)的發(fā)展提供了一種技術(shù)實現(xiàn)途徑。

引 言

由微控制器和實時操作系統(tǒng)共同構(gòu)成的嵌入式實時控制系統(tǒng)在工業(yè)生產(chǎn)、交通運輸、能源供給、國防裝備等眾多領(lǐng)域被廣泛使用,是實現(xiàn)自動化技術(shù)的核心中樞。目前,國內(nèi)所采用的嵌入式實時控制系統(tǒng)大多基于國外的微控制器芯片和軟件產(chǎn)品,在“棱鏡門”和“Stuxnet病毒”事件后關(guān)鍵領(lǐng)域所采用的嵌入式系統(tǒng)安全問題已被國內(nèi)用戶所重視,發(fā)展自主可控、安全可靠的嵌入式實時控制系統(tǒng)已成為必然趨勢。

伴隨微控制器芯片和實時操作系統(tǒng)軟件的不斷發(fā)展和日趨成熟,基于國產(chǎn)軟、硬件產(chǎn)品構(gòu)建自主可控的嵌入式實時控制系統(tǒng)已經(jīng)具備實現(xiàn)條件。本文采用具有ARM Cortex-M3內(nèi)核的微控制器GD32F207芯片和RT-Thread實時操作系統(tǒng)建立了一套完全國產(chǎn)化的嵌入式實時控制系統(tǒng),為國產(chǎn)自主可控嵌入式實時控制系統(tǒng)的建立及應(yīng)用進行了技術(shù)經(jīng)驗總結(jié)和有益探索。

01

嵌入式實時控制系統(tǒng)的構(gòu)成

嵌入式系統(tǒng)與通用計算機系統(tǒng)在體系結(jié)構(gòu)上具有相似性,都是由主控制器芯片和外圍功能芯片構(gòu)成硬件電路基礎(chǔ),再由可提供底層硬件操作功能的軟件作為操作系統(tǒng),用戶最終通過操作系統(tǒng)對硬件進行訪問和控制;嵌入式系統(tǒng)通常針對某個特定控制任務(wù)設(shè)計,因而具有實時處理能力、可靠性的要求,通用計算機的處理適用范圍廣,因此更注重兼容性而實時處理能力較弱。

1.1 GD32F207微控制器與開發(fā)板

GD32F2系列微控制器芯片為基于ARM Cortex-M3內(nèi)核架構(gòu)設(shè)計的產(chǎn)品,本文中采用的GD32F207ZET6芯片主頻最高可達120MHz,具有128KB的SRAM和512KB的Flash存儲容量,并且提供UARTADC、以太網(wǎng)和LCD控制器等眾多外設(shè)功能接口,可以很大程度減少所需的外圍功能電路配置。Colibri-F207ZE開發(fā)板是基于該芯片設(shè)計的一款“口袋實驗室”類型產(chǎn)品,如圖1所示,在板子上有與Arduino平臺引腳布局兼容的引出IO接口之外,還包括TFT顯示屏接口、2個用戶按鍵、3個LED指示燈、1個USB串口和板載GDLINK調(diào)試器功能。本文中將以此開發(fā)板作為硬件平臺構(gòu)建嵌入式控制系統(tǒng)。

圖1 Colibri-F207ZE開發(fā)板

圖2 RT-Thread操作系統(tǒng)層次結(jié)構(gòu)

1.2 RT-Thread實時操作系統(tǒng)

RT-Thread嵌入式實時操作系統(tǒng)的開發(fā)始于2006年,并且遵循GPLv2+的版權(quán)許可協(xié)議。在經(jīng)過多年的能源、儀表、車輛等行業(yè)廣泛使用后,RT-Thread已經(jīng)被驗證是一款穩(wěn)定、可靠的嵌入式實時操作系統(tǒng)。從文獻[6]中對RT-Thread與國際主流嵌入式實時操作系統(tǒng)進行的比較中,也可看出其具有優(yōu)越的性能。RT-Thread系統(tǒng)的結(jié)構(gòu)層次框圖如圖2所示,其中內(nèi)核層(Kernel)是RT-Thread的關(guān)鍵部分涉及時鐘管理、實時調(diào)度、任務(wù)切換等核心操作;組件層(Components)主要提供Shell交互、文件系統(tǒng)、協(xié)議棧等附加操作功能;在內(nèi)核層與硬件之間是用于系統(tǒng)移植的軟件接口部分(Porting),其實現(xiàn)了操作系統(tǒng)對于硬件的各種具體操作功能。在本文中以最新發(fā)布的 RT-Thread 2.1.0版作為移植對象進行分析、代碼修改并最終實現(xiàn)與Colibri-F207ZE開發(fā)板共同構(gòu)成嵌入式實時控制系統(tǒng)。

02

RT-Thread在GD32微控制器上的移植

RT-Thread操作系統(tǒng)已經(jīng)在GitHub上做了代碼托管,因此可直接從GitHub上下載獲取到RT-Thread 2.1.0版的源代碼壓縮文件包[7]。本文中采用MDK 5.16a版本的ARM開發(fā)工具進行移植工作,并需要在MDK的Pack Installer中安裝GD32F2系列芯片的DFP支持包。在移植工作中完成了RT-Thread操作系統(tǒng)的串口通信LED燈驅(qū)動功能,可實現(xiàn)RT-Thread與主機之間的Shell交互操作和對測試程序中運行任務(wù)的直接觀察。

2.1 RT-Thread目錄結(jié)構(gòu)的轉(zhuǎn)換

打開下載得到的RT-Thread源代碼文件包可看到按代碼功能分類的目錄結(jié)構(gòu),各文件夾所包含的內(nèi)容和用途分別為:

bsp文件夾:板級支持包,包含針對特定型號微控制器板卡和外部設(shè)備的驅(qū)動程序。

components:對應(yīng)RT-Thread操作系統(tǒng)的組件層,包含RT-Thread核心功能之外的大部分附加操作功能以及硬件設(shè)備驅(qū)動模型。

documentation:RT-Thread編程風(fēng)格說明,對開發(fā)人員和用戶掌握RT-Thread提供指引。

examples:針對RT-Thread操作系統(tǒng)的應(yīng)用和測試程序示例。

include:RT-Thread操作系統(tǒng)使用的頭文件,可供外部應(yīng)用程序調(diào)用。

libcpu:CPU支持包,包含對各種常見CPU的底層驅(qū)動程序,大部分為匯編語言開發(fā)。

src:對應(yīng)RT-Thread操作系統(tǒng)的內(nèi)核層,包含RT-Thread實時調(diào)度、時鐘管理、內(nèi)存分配、線程管理等全部核心功能。

tools:Scons構(gòu)建腳本文件,包含用于不同開發(fā)工具的各種腳本執(zhí)行文件。

根據(jù)RT-Thread源代碼文件包中各個文件夾的用途,結(jié)合GD32芯片所提供的外設(shè)固件庫、CMSIS配置文件和Colibri-F207ZE開發(fā)板的板級支持包構(gòu)建基于GD32F207芯片和RT-Thread操作系統(tǒng)的目錄結(jié)構(gòu),如圖3所示。其中App文件夾中包括RT-Thread的啟動文件startup.c和用戶開發(fā)的應(yīng)用程序;GD32F207ZET6文件夾中包括硬件相關(guān)的兩個子文件夾,Colibri_BSP中是開發(fā)板的外設(shè)驅(qū)動程序,GD32F20x_StdPeriph_Driver中是GD32芯片所提供的外設(shè)固件庫,芯片驅(qū)動、配置和中斷處理文件;Obj文件夾中為MDK所建立的工程文件和存放編譯后得到的axf文件;RT-Thread210文件夾中包含RT-Thread操作系統(tǒng)的各軟件模塊,其為直接從源代碼文件包中相關(guān)內(nèi)容復(fù)制而來。

圖3 基于GD32芯片構(gòu)建的RT-Thread系統(tǒng)目錄結(jié)構(gòu)

2.2 項目工程的建立與驅(qū)動程序改寫

在完成上述目錄結(jié)構(gòu)的構(gòu)建后,需要使用MDK開發(fā)工具將RT-Thread源代碼和GD32芯片的相關(guān)文件有機結(jié)合起來,實現(xiàn)RT-Thread操作系統(tǒng)在Colibri-F207ZE開發(fā)板上的移植工作。在MDK工具內(nèi)部各個文件按照邏輯關(guān)系進行分組管理,這里以GD32開頭的組和嵌入式系統(tǒng)硬件相關(guān),以RT開頭的組和操作系統(tǒng)軟件相關(guān),如圖4所示。這種分組結(jié)構(gòu)可有效實現(xiàn)軟硬件隔離,便于日后硬件部分或軟件部分代碼的升級替換工作。

2.2.1 軟硬件配置與代碼修改

在RT-Thread和GD32的配置中采用宏定義方式實現(xiàn)對所需軟件功能模塊的條件編譯和芯片性能參數(shù)設(shè)置,以達到對嵌入式系統(tǒng)軟、硬件裁剪和配置的目的。因此,在移植過程中需要對這些宏定義進行有選擇的設(shè)置。

修改system_GD32f20x.c文件,該文件中主要實現(xiàn)GD32的系統(tǒng)時鐘和AHB、APB總線上掛接各部件的時鐘樹配置,本文中將系統(tǒng)時鐘設(shè)置為72MHz。

修改colibri_board.h文件,該文件主要用于設(shè)置GD32芯片內(nèi)、外部RAM的容量,根據(jù)本文中所使用的GD32F207ZET6芯片,將內(nèi)部RAM容量設(shè)置為128KB;開發(fā)板未擴展外部RAM,將對應(yīng)的宏定義GD32_EXT_SRAM設(shè)置為0。

修改rtconfig.h文件,該文件主要用于RT-Thread操作系統(tǒng)的參數(shù)配置以及軟件功能模塊的裁剪。用戶可根據(jù)需要設(shè)置,保留的軟件功能模塊越多,則編譯后的HEX文件尺寸越大且需要的運行RAM越多。本文中將RT-Thread最大優(yōu)先級RT_THREAD_PRIORITY_MAX設(shè)置為16;每秒節(jié)拍數(shù)RT_TICK_PER_SECOND設(shè)置為100;啟用了控制臺和Shell交互功能RT_USING_CONSOLE和RT_USING_FINSH以方便應(yīng)用程序調(diào)試。

圖4 對GD32芯片和RT-Thread系統(tǒng)文件的分組管理

2.2.2 設(shè)備驅(qū)動程序的改寫

編寫驅(qū)動程序是操作系統(tǒng)移植過程中的重要一步,其用于實現(xiàn)軟件對硬件的最終操作。在RT-Thread中驅(qū)動程序?qū)儆赑orting層采用了統(tǒng)一的設(shè)備驅(qū)動模型框架,可以被應(yīng)用程序通過標(biāo)準(zhǔn)接口函數(shù)訪問和調(diào)用,在文獻[6,8,9]中對RT-Thread設(shè)備驅(qū)動框架的構(gòu)成進行了說明。由于GD32F2系列微控制器與STM32微控制器在系統(tǒng)結(jié)構(gòu)上具有相似性,因此在本文中通過對RT-Thread源代碼文件包中/bsp/stm32f10x/drivers子文件夾內(nèi)驅(qū)動程序進行改寫的方法實現(xiàn)Colibri-F207ZE開發(fā)板上串口通信和LED燈的驅(qū)動程序。對于GD32芯片上其它功能接口的驅(qū)動程序,都可根據(jù)需求而參考此種方法進行改寫。

以實現(xiàn)串口通信功能的驅(qū)動程序改寫為例,應(yīng)用程序通過I/O設(shè)備模塊中的標(biāo)準(zhǔn)接口函數(shù)和設(shè)備驅(qū)動程序中的函數(shù)二者之間映射關(guān)系實現(xiàn)對底層I/O設(shè)備控制,如圖5所示。其中標(biāo)準(zhǔn)接口函數(shù)不需修改,由RT_DeviceDrivers分組中的serial.c文件實現(xiàn);而串口驅(qū)動程序則由GD32_BSP分組中的colibri_board_usart.c文件實現(xiàn),需要對相應(yīng)的功能函數(shù)和配置進行修改。改寫的內(nèi)容主要包括替換片上外設(shè)訪問層頭文件、實現(xiàn)串口通信功能的芯片管腳定義、rt_hw_usart_init()函數(shù)中的串口參數(shù)設(shè)置和通過rt_hw_serial_register()函數(shù)將串口設(shè)備注冊到RT-Thread設(shè)備驅(qū)動框架中,即實現(xiàn)標(biāo)準(zhǔn)接口函數(shù)與串口設(shè)備之間的關(guān)聯(lián)。需要注意的是GD32與STM32兩種芯片在各自外設(shè)固件庫中提供的結(jié)構(gòu)體定義和函數(shù)功能是類似的但是名稱不一致,需要在移植過程中進行修改,表1列出了串口驅(qū)動程序colibri_board_usart.c文件中需要修改的結(jié)構(gòu)體和函數(shù)名稱。得益于Cortex內(nèi)核遵循的CMSIS接口標(biāo)準(zhǔn)和RT-Thread所采用的設(shè)備驅(qū)動框架機制,對設(shè)備驅(qū)動程序只需做上述少量改寫即可完成不同芯片間的移植工作。

圖5 應(yīng)用程序操作底層設(shè)備的接口函數(shù)映射

表1 串口驅(qū)動程序中需要修改的結(jié)構(gòu)體和函數(shù)名稱

2.3 RT-Thread測試應(yīng)用程序編寫

開發(fā)板在上電后GD32芯片復(fù)位,通過文件startup_gd32f20x_cl.s中復(fù)位地址處的加載指令調(diào)用RT-Thread系統(tǒng)main()函數(shù)(位于startup.c文件中),在完成開發(fā)板、RT-Thread系統(tǒng)內(nèi)核、定時器、用戶任務(wù)和空閑任務(wù)等的初始化后,通過rt_system_scheduler_start()函數(shù)啟動RT-Thread調(diào)度器實現(xiàn)對各個用戶任務(wù)的實時調(diào)度。為驗證RT-Thread在Colibri-F207ZE開發(fā)板上的移植是否成功,使用rt_thread_init()函數(shù)建立兩個用戶任務(wù)分別控制兩個LED燈按照0.5秒和1秒的周期閃爍。

03

嵌入式實時控制系統(tǒng)的測試

在完成RT-Thread在Colibri-F207ZE開發(fā)板上的移植和測試程序編寫后,將經(jīng)過MDK編譯得到的axf文件下載到開發(fā)板上運行。通過上位機的串口通信工具可以和RT-Thread提供的Shell進行交互操作,并使用相應(yīng)指令觀察RT-Thread系統(tǒng)運行和RAM的使用情況,如圖6所示。可以看到共有4個任務(wù)在運行,其中LED_GREE和LED_RED是控制LED燈閃爍的用戶任務(wù),tshell和tidle分別是系統(tǒng)的shell交互任務(wù)和空閑任務(wù);在RT-Thread中注冊有一個設(shè)備,就是提供Shell功能的uart1串口。通過該測試程序,表明RT-Thread已經(jīng)在Colibri-F207ZE開發(fā)板上穩(wěn)定運行,實現(xiàn)了預(yù)期的移植效果。

圖6 RT-Thread系統(tǒng)Shell交互界面

結(jié) 語

本文基于GD32微控制器和RT-Thread實時操作系統(tǒng)構(gòu)建了一種嵌入式實時控制系統(tǒng),其具有軟硬件自主可控、安全可靠的特點為工業(yè)生產(chǎn)、國防裝備等軍民應(yīng)用的關(guān)鍵領(lǐng)域提供了有效解決方案。通過本文的研究和探索,在自主可控嵌入式實時控制系統(tǒng)的構(gòu)建方面積累了技術(shù)檢驗,為后期配套應(yīng)用開發(fā)奠定了堅實基礎(chǔ)。

作者簡介

呂華溢(工程師),主要從事力學(xué)傳感器設(shè)計、智能化儀器及測控系統(tǒng)的研究工作;謝政(碩士研究生),研究方向為儀表測控系統(tǒng)設(shè)計、嵌入式系統(tǒng)開發(fā)。

如果想加入RT-Thread Nano交流群,與RT-Thread官方團隊直接交流,請?zhí)砑游⑿?3924608367,注明rt-thread,直接拉進群。

即刻關(guān)注“GD32MCU”微信公眾號并訪問www.GD32MCU.com網(wǎng)站,探索更多GD32 MCU產(chǎn)品信息及解決方案,快來參與論壇互動吧!

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

    評論

    相關(guān)推薦

    如何去實現(xiàn)嵌入式網(wǎng)絡(luò)智能控制系統(tǒng)的設(shè)計?

    嵌入式網(wǎng)絡(luò)智能控制系統(tǒng)的結(jié)構(gòu)是怎樣構(gòu)成的?如何去實現(xiàn)嵌入式網(wǎng)絡(luò)智能控制系統(tǒng)的設(shè)計?
    發(fā)表于 06-01 06:45

    實時嵌入式系統(tǒng)的特性是什么

    實時嵌入式系統(tǒng)具備相似的系統(tǒng)結(jié)構(gòu),分層結(jié)構(gòu)。目標(biāo)系統(tǒng)控制系統(tǒng)控制系統(tǒng):傳感器,AD模式轉(zhuǎn)換器,
    發(fā)表于 12-14 07:44

    GD32 MCU學(xué)習(xí)這本書的理由

    首先,學(xué)習(xí)GD32 MCU原理固件庫開發(fā)指南可以讓我了解這個芯片的內(nèi)部結(jié)構(gòu)和工作原理,從而深入理解如何在嵌入式系統(tǒng)中使用它。其次,固件庫是嵌入式系統(tǒng)
    發(fā)表于 03-10 20:06

    基于LINUX和CAN總線的工業(yè)嵌入式控制系統(tǒng)研究

    介紹了嵌入式系統(tǒng)在工業(yè)控制中的技術(shù)要求和特點,對控制系統(tǒng)實時性進行了闡述,給出了基于CAN總線的嵌入式
    發(fā)表于 06-09 10:53 ?10次下載

    基于嵌入式實時操作系統(tǒng)的現(xiàn)場控制系統(tǒng)

    隨著以太網(wǎng)技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)與以太網(wǎng)相結(jié)合應(yīng)用于工業(yè)控制系統(tǒng)領(lǐng)域已經(jīng)成為了一種趨勢。本文在嵌入式實時操作
    發(fā)表于 06-18 09:10 ?13次下載

    嵌入式網(wǎng)絡(luò)智能控制系統(tǒng)的研究

    嵌入式設(shè)備與Internet 結(jié)合將代表著嵌入式技術(shù)的真正未來。文中嵌入式網(wǎng)絡(luò)智能控制系統(tǒng)嵌入式操作
    發(fā)表于 08-14 09:26 ?23次下載

    DSP嵌入式系統(tǒng)人機接口設(shè)計

    DSP嵌入式系統(tǒng)人機接口設(shè)計  1 引言   人機接口是嵌入式控制系統(tǒng)的重要組成部分,用于人機之間實時交換
    發(fā)表于 12-24 16:34 ?930次閱讀
    DSP<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>人機接口設(shè)計

    基于嵌入式操作系統(tǒng)控制系統(tǒng)平臺設(shè)計

    基于嵌入式操作系統(tǒng)控制系統(tǒng)平臺設(shè)計  1 引言   近年來,嵌入式系統(tǒng)在工業(yè)控制領(lǐng)域的應(yīng)用
    發(fā)表于 12-25 17:47 ?985次閱讀
    基于<b class='flag-5'>嵌入式</b>操作<b class='flag-5'>系統(tǒng)</b>的<b class='flag-5'>控制系統(tǒng)</b>平臺設(shè)計

    嵌入式Linux智能家居控制系統(tǒng)設(shè)計

    隨著嵌入式技術(shù)、網(wǎng)絡(luò)及信息技術(shù)的發(fā)展,針對人們對智能家居的追求,提出了一種基于ARM9的嵌入式智能家居控制系統(tǒng)的解決方案。介紹了嵌入式Linux系統(tǒng)
    發(fā)表于 03-07 15:25 ?1103次下載
    <b class='flag-5'>嵌入式</b>Linux智能家居<b class='flag-5'>控制系統(tǒng)</b>設(shè)計

    基于ARM嵌入式技術(shù)的牙椅控制系統(tǒng)

    本文研究開發(fā)了基于ARM嵌入式技術(shù)的牙椅控制系統(tǒng)。在控制系統(tǒng)中應(yīng)用嵌入式操作系統(tǒng),利用多任務(wù)管理、任務(wù)間同步與通信等功能,可更進一步提高
    發(fā)表于 08-05 11:09 ?1081次閱讀
    基于ARM<b class='flag-5'>嵌入式</b>技術(shù)的牙椅<b class='flag-5'>控制系統(tǒng)</b>

    嵌入式車載終端控制系統(tǒng)的通信方案

    嵌入式車載終端控制系統(tǒng)的通信方案
    發(fā)表于 11-10 17:58 ?58次下載
    <b class='flag-5'>嵌入式</b>車載終端<b class='flag-5'>控制系統(tǒng)</b>的通信方案

    關(guān)于GD32構(gòu)建軟硬件自主可控的嵌入式實時控制系統(tǒng)的介紹和應(yīng)用

    嵌入式系統(tǒng)與通用計算機系統(tǒng)在體系結(jié)構(gòu)上具有相似性,都是由主控制器芯片和外圍功能芯片構(gòu)成硬件電路基礎(chǔ),再由可提供底層硬件操作功能的軟件作為操作系統(tǒng)
    的頭像 發(fā)表于 10-22 09:50 ?3478次閱讀
    關(guān)于<b class='flag-5'>GD32</b>構(gòu)建軟硬件自主可控的<b class='flag-5'>嵌入式</b><b class='flag-5'>實時</b><b class='flag-5'>控制系統(tǒng)</b>的介紹和應(yīng)用

    基于FreeRTOS的嵌入式云臺控制系統(tǒng)設(shè)計

    基于FreeRTOS的嵌入式云臺控制系統(tǒng)設(shè)計(嵌入式開發(fā)要學(xué)單片機嗎)-基于FreeRTOS的嵌入式云臺控制系統(tǒng)設(shè)計? ? ? ? ? ??
    發(fā)表于 07-30 11:57 ?19次下載
    基于FreeRTOS的<b class='flag-5'>嵌入式</b>云臺<b class='flag-5'>控制系統(tǒng)</b>設(shè)計

    基于嵌入式機器視覺控制系統(tǒng)的研究

    基于嵌入式機器視覺控制系統(tǒng)的研究(嵌入式開發(fā)數(shù)據(jù))-該文檔為基于嵌入式機器視覺控制系統(tǒng)的研究總結(jié)文檔,是一份很不錯的參考資料,具有較高參考價
    發(fā)表于 08-04 11:09 ?8次下載
    基于<b class='flag-5'>嵌入式</b>機器視覺<b class='flag-5'>控制系統(tǒng)</b>的研究

    嵌入式控制系統(tǒng)概述

    嵌入式控制系統(tǒng)概述一、簡介1、概述(1)IEEE(國際電氣和電子工程師協(xié)會)的定義:嵌入式系統(tǒng)是“用于控制、監(jiān)視或者輔助操作機器和設(shè)備的裝置
    發(fā)表于 10-19 18:26 ?4次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>控制系統(tǒng)</b>概述