www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 嵌入式微處理器
[導(dǎo)讀]本文分享了一個(gè)基于FreeRTOS的micro(微型)ROS。



今天分享一個(gè)基于FreeRTOS的micro(微型)ROS。


一、關(guān)于ROS

ROS:Robot Operating System,,即機(jī)器人操作系統(tǒng)。


和普通OS不一樣的是,ROS主要是針對(duì)機(jī)器人,是基于操作系統(tǒng)之上,提供一系列程序庫(kù)和工具以幫助軟件開發(fā)者創(chuàng)建機(jī)器人應(yīng)用軟件。它提供了硬件抽象、設(shè)備驅(qū)動(dòng)、庫(kù)函數(shù)、可視化、消息傳遞和軟件包管理等諸多功能。ROS遵守BSD開源許可協(xié)議。


ROS設(shè)計(jì)者將ROS表述為“ROS = Plumbing + Tools + Capabilities + Ecosystem”,即ROS是通訊機(jī)制、工具軟件包、機(jī)器人高層技能以及機(jī)器人生態(tài)系統(tǒng)的集合體。


二、micro-ROS

本文說的micro-ROS,是基于ROS2進(jìn)行優(yōu)化的一套輕量級(jí)ROS系統(tǒng),它提供了完全部署的ROS 2生態(tài)系統(tǒng)的大多數(shù)吸引人的工具和功能,并具有入式和低資源設(shè)備的卓越能力,可以運(yùn)行在MCU硬件平臺(tái)。


傳統(tǒng)上,即使機(jī)器人包含許多ROS,ROS仍停留在微控制器邊界。它們通常通過串行協(xié)議與舊版ROS中的ROS-serial之類的工具集成在一起。


在微控制器中擁有所有ROS2的功能和相同的API會(huì)不是很好嗎?這正是micro-ROS提供的-機(jī)器人系統(tǒng)嵌入式部分內(nèi)部的ROS開發(fā)生態(tài)系統(tǒng)。micro-ROS允許開發(fā)人員在硬件級(jí)別附近運(yùn)行ROS 2節(jié)點(diǎn)。這使所有硬件外設(shè)都可用于該應(yīng)用程序,從而使其能夠直接與SPI或I2C等低級(jí)總線進(jìn)行交互,以與傳感器和執(zhí)行器接口。


微型ROS是一組分層的庫(kù),它們可以直接重用ROS 2的庫(kù),也可以使其適應(yīng)資源受限設(shè)備的功能和需求。具體來(lái)說,如果我們轉(zhuǎn)向ROS 2體系結(jié)構(gòu),則由微型ROS維護(hù)的層是ROS客戶端庫(kù)(RCL)和ROS中間件接口(RMW)。同樣,RCLCPP是RCL之上的C ++抽象層,即使大多數(shù)與RCL直接接口,它也可以被微型ROS應(yīng)用程序組件使用。該層在RCLC中提供了相對(duì)于ROS 2的附加功能,RCLC是用C99編寫的庫(kù),其中專門設(shè)計(jì)和開發(fā)了與RCLCPP提供的功能類似的功能,例如便利功能或執(zhí)行程序,以適合微控制器。



通常,ROS是基于 Linux系統(tǒng)之上的運(yùn)行的一套系統(tǒng),而本文這套微型ROS基于FreeROS運(yùn)行。


這使micro-ROS在硬件和軟件級(jí)別上都能與大多數(shù)嵌入式平臺(tái)兼容。


但是,最終構(gòu)成micro-ROS體系結(jié)構(gòu)的是RMW實(shí)現(xiàn),該實(shí)現(xiàn)基于稱為Micro XRCE-DDS的中間件庫(kù)。Micro XRCE-DDS是由對(duì)象管理組(OMG)定義和維護(hù)的DDS-XRCE(用于極端資源受限環(huán)境的DDS)協(xié)議的C / C ++實(shí)現(xiàn)。


顧名思義,DDS-XRCE是一種有線協(xié)議,允許引入以數(shù)據(jù)為中心的發(fā)布者-訂閱者DDS模型進(jìn)入嵌入式世界。DDS-XRCE依賴于客戶端-服務(wù)器體系結(jié)構(gòu),其中客戶端是用C99編寫的輕量級(jí)實(shí)體,可在低資源設(shè)備中運(yùn)行,而代理(C ++ 11應(yīng)用程序)則充當(dāng)客戶端與DDS世界之間的橋梁。DDS-XRCE協(xié)議負(fù)責(zé)在這兩個(gè)實(shí)體之間傳遞請(qǐng)求和消息。相應(yīng)地,該代理能夠通過標(biāo)準(zhǔn)DDS有線協(xié)議與DDS全局?jǐn)?shù)據(jù)空間進(jìn)行通信。在DDS世界中,代理通過與其他DDS參與者進(jìn)行通信來(lái)代表客戶。該通信由客戶端代理,能夠通過所有標(biāo)準(zhǔn)DDS實(shí)體與DDS進(jìn)行交互的模擬DDS應(yīng)用程序進(jìn)行協(xié)調(diào)。代理將客戶端的狀態(tài)保存在其內(nèi)存中,這樣,即使代理斷開連接,代理也可以存活。代理與客戶端之間的通信遵循請(qǐng)求-響應(yīng)模式,即雙向并基于操作和響應(yīng)。


三、為什么選擇FreeRTOS?

由于它們的輕巧性,XRCE-DDS客戶端庫(kù)和microROS都易于在實(shí)時(shí)操作系統(tǒng)之上運(yùn)行,這使它們能夠滿足其典型目標(biāo)應(yīng)用程序所提出的對(duì)時(shí)間要求嚴(yán)格的要求,其中涉及的任務(wù)包括要求時(shí)限或確定性響應(yīng)。


具體來(lái)說,F(xiàn)reeRTOS已成為micro-ROS項(xiàng)目支持的首批RTOS之一,因此已集成到其軟件堆棧中。這允許重用FreeRTOS社區(qū)和合作伙伴提供的所有工具和實(shí)現(xiàn)。由于微型ROS軟件堆棧是模塊化的,因此期望并期望交換軟件實(shí)體。


FreeRTOS是開發(fā)micro ROS和Micro XRCE-DDS應(yīng)用程序的理想選擇。首先,它為許多不同的體系結(jié)構(gòu)和開發(fā)工具提供了一個(gè)獨(dú)立的解決方案,它以非常清晰和透明的方式編寫,并且擁有非常龐大的用戶群,從而確保了大量FreeRTOS用戶將能夠?qū)⑵鋺?yīng)用程序與微型ROS應(yīng)用程序集成。而且,它是眾所周知的高度可靠的RTOS。至關(guān)重要的是,F(xiàn)reeRTOS具有最小的ROM,RAM和處理開銷。通常,RTOS內(nèi)核二進(jìn)制映像的大小在6K到12K字節(jié)之間。由于要與RTOS進(jìn)行資源競(jìng)爭(zhēng),因此,當(dāng)要最小化MCU上的微型ROS應(yīng)用程序的內(nèi)存占用量時(shí),這些內(nèi)存是理想的選擇。


在下文中,我們將討論FreeRTOS提供的幾種功能,以及微型ROS如何利用它們來(lái)獲利,以優(yōu)化其堆棧中組成的不同庫(kù)的所需功能。


四、任務(wù)和計(jì)劃程序

FreeRTOS提供了一組最少的任務(wù)實(shí)體,這些實(shí)體與調(diào)度程序的使用一起,為在應(yīng)用程序中實(shí)現(xiàn)確定性提供了必要的工具。微型ROS客戶端庫(kù)(RCL,RCLC和RCLCPP)訪問RTOS的資源,以控制調(diào)度和電源管理機(jī)制,從而為開發(fā)人員提供了優(yōu)化應(yīng)用程序的可能性。


FreeRTOS提供的任務(wù)有兩種:標(biāo)準(zhǔn)任務(wù)和空閑任務(wù)。前者由用戶創(chuàng)建,可以視為RTOS上的應(yīng)用程序。至關(guān)重要的是,將微型ROS應(yīng)用程序集成到RTOS中作為具有給定優(yōu)先級(jí)的此類任務(wù)之一。空閑任務(wù)另一方面,優(yōu)先級(jí)較低的任務(wù)只有在沒有其他任務(wù)在運(yùn)行時(shí)才進(jìn)入運(yùn)行模式。由于microROS主要針對(duì)低功耗和IoT設(shè)備,因此這些空閑任務(wù)和相關(guān)的空閑掛鉤非常適合在MCU中啟用深度睡眠狀態(tài)。由于將無(wú)狀態(tài)XRCE-DDS客戶端實(shí)現(xiàn)為micro-ROS中間件,因此這些深度睡眠狀態(tài)可能是內(nèi)存易失的,也就是說,由于面向連接的中間件有線協(xié)議,可以使用沒有RAM持久性的深度睡眠模式。


使用FreeRTOS調(diào)度程序,micro-ROS能夠管理其主要任務(wù)以及負(fù)責(zé)傳輸層的任務(wù)的優(yōu)先級(jí)。通常,負(fù)責(zé)網(wǎng)絡(luò)堆?;虼薪涌诘娜蝿?wù)必須優(yōu)先于micro-ROS應(yīng)用程序。


五、內(nèi)存管理

FreeRTOS提供的最令人期望的功能(對(duì)于微型ROS開發(fā)人員和用戶而言非常有趣)是堆棧管理和靜態(tài)堆棧創(chuàng)建能力。在處理micro-ROS的任務(wù)創(chuàng)建時(shí),通常,堆棧分配是關(guān)鍵的設(shè)計(jì)決策。FreeRTOS允許進(jìn)行細(xì)粒度的堆棧大小管理,這又使程序員可以知道在程序執(zhí)行期間正在使用多少堆棧內(nèi)存,或例如確定堆棧內(nèi)存分配是否存在于靜態(tài)或動(dòng)態(tài)內(nèi)存中,從而確定幫助正確使用MCU的內(nèi)存,這是嵌入式系統(tǒng)中的寶貴資源。至關(guān)重要的是,可以為微ROS提供繁重的堆棧使用方任務(wù),并為其分配靜態(tài)分配的堆棧,從而防止將來(lái)出現(xiàn)堆和其他任務(wù)初始化問題。


在這方面,值得一提的是,這些內(nèi)存管理工具為基準(zhǔn)化微型ROS和XRCE-DDS的內(nèi)存占用量提供了理想的框架。具體而言,已進(jìn)行了徹底的堆棧消耗分析,以評(píng)估XRCE-DDS客戶端內(nèi)存消耗。堆棧是程序員在運(yùn)行應(yīng)用程序之前未知的內(nèi)存塊。為了對(duì)其進(jìn)行度量,可以使用FreeRTOS uxTaskGetStackHighWaterMark()函數(shù),該函數(shù)返回在執(zhí)行過程中XRCE-DDS任務(wù)堆棧達(dá)到最大值時(shí)未使用的堆棧量。通過將此值減去總堆棧,可以得到XRCE-DDS應(yīng)用程序使用的堆棧峰值。用這種方法獲得的結(jié)果匯總在此處發(fā)布的報(bào)告中。


我們還注意到,由于FreeRTOS中使用了可插拔的動(dòng)態(tài)內(nèi)存管理方法,因此micro-ROS能夠完成所需的用于管理內(nèi)存的接口。通過這種方式,已經(jīng)使用heap_4作為參考實(shí)現(xiàn)了諸如calloc()或realloc()之類的函數(shù)。這些功能在饋入micro-ROS內(nèi)存管理API之前已被包裝,以便分析動(dòng)態(tài)內(nèi)存消耗。


與靜態(tài)內(nèi)存情況類似,F(xiàn)reeRTOS的可交換動(dòng)態(tài)內(nèi)存管理方法使在嵌入式系統(tǒng)中執(zhí)行動(dòng)態(tài)內(nèi)存配置文件分析特別容易。的確,盡管在其他RTOS中,動(dòng)態(tài)(取消)分配功能隱藏在RTOS或標(biāo)準(zhǔn)庫(kù)的深處,但在FreeRTOS中,它們暴露給用戶并易于定制,因此簡(jiǎn)化了處理和控制動(dòng)態(tài)內(nèi)存使用的過程。


六、傳輸資源

與客戶端支持庫(kù)訪問FreeRTOS的特定原語(yǔ)和功能(例如調(diào)度機(jī)制)的方式相同,中間件實(shí)現(xiàn)Micro XRCE-DDS要求訪問RTOS的傳輸和時(shí)間資源以使其正常運(yùn)行。關(guān)于IP傳輸,在FreeRTOS的特定情況下,Micro XRCE-DDS使用在此RTOS上實(shí)現(xiàn)lwIP的附件。lwIP(輕型IP)是為嵌入式系統(tǒng)設(shè)計(jì)的,廣泛使用的開源TCP / IP堆棧,旨在減少資源使用,同時(shí)仍提供完整的TCP堆棧。這使得lwIP的使用特別適用于以micro-ROS為目標(biāo)的嵌入式系統(tǒng)和資源受限的環(huán)境。


除了TCP / IP堆棧,lwIP還有其他幾個(gè)重要部分,例如網(wǎng)絡(luò)接口,操作系統(tǒng)仿真層,緩沖區(qū)和內(nèi)存管理部分。操作系統(tǒng)仿真層和網(wǎng)絡(luò)接口允許將網(wǎng)絡(luò)堆棧移植到操作系統(tǒng)中,因?yàn)樗峁┝薼wIP代碼和操作系統(tǒng)內(nèi)核之間的通用接口。


FreeRTOS與lwIP 的集成是從頭開始設(shè)計(jì)的,具有標(biāo)準(zhǔn)且熟悉的接口(伯克利套接字),并且具有線程安全性,旨在使其盡可能易于使用。而且,它可以將緩沖區(qū)管理保留在可移植層中。


請(qǐng)注意,XRCE-DDS客戶端還支持FreeRTOS + TCP網(wǎng)絡(luò)堆棧。FreeRTOS + TCP是用于TCP / IP堆棧協(xié)議支持的官方FreeRTOS擴(kuò)展庫(kù)。


還努力使FreeRTOS + TCP與micro-ROS兼容。這包括對(duì)TCP和UDP連接的支持,它們依靠FreeRTOS + TCP API來(lái)實(shí)現(xiàn)micro XRCE-DDS Client API所要求的抽象層,以便能夠使用這些協(xié)議與代理進(jìn)行通信。


此外,還存在使用FreeRTOS的時(shí)間測(cè)量功能的可能性,從而使XRCE-DDS庫(kù)能夠執(zhí)行基于時(shí)間的任務(wù),從而使用戶看不到實(shí)現(xiàn)。


七、Posix擴(kuò)展

允許將FreeRTOS無(wú)縫和盈利地集成到micro-ROS中的另一個(gè)顯著原因是POSIX擴(kuò)展的可用性。便攜式操作系統(tǒng)接口(POSIX)是IEEE計(jì)算機(jī)協(xié)會(huì)為維護(hù)操作系統(tǒng)之間的兼容性而指定的一系列標(biāo)準(zhǔn)。FreeRTOS Labs提供的FreeRTOS + POSIX層實(shí)現(xiàn)了POSIX API的子集。


確實(shí),盡管micro-ROS中間件具有較低的POSIX依賴關(guān)系(只是clock_gettime()函數(shù)),但整個(gè)micro-ROS堆棧具有與功能和類型定義相關(guān)的更高依賴關(guān)系。另外,由于微型ROS項(xiàng)目的基本原理之一是移植或重用Linux(主要是POSIX兼容操作系統(tǒng))中本機(jī)編碼的ROS 2的代碼,因此使用了某種程度上可與Linux兼容的RTOS。POSIX顯然是有益的,因?yàn)榇a的移植工作量很小。


為此,使用了sleep()和usleep()之類的函數(shù)。micro-ROS的POSIX類型定義依賴項(xiàng)依賴于FreeRTOS內(nèi)核中未定義的某些結(jié)構(gòu),例如struct timeval或struct timespec。還需要諸如type.h,signal.h或unistd.h之類的文件來(lái)定義一些標(biāo)準(zhǔn)的類型定義和結(jié)構(gòu)。


對(duì)于errno.h,盡管在FreeRTOS + POSIX層中未實(shí)現(xiàn),但出于編譯目的,micro-ROS必須包括一些不可用的定義。


通過使用FreeRTOS + FAT庫(kù),應(yīng)在micro-ROS堆棧中重構(gòu)這些定義,以使FreeRTOS + POSIX具有完全的兼容性。這樣,可以完全支持依賴文件系統(tǒng)支持的高級(jí)micro-ROS功能,例如日志記錄機(jī)制。


八、教程

如何在FreeRTOS上使用Olimex STM32-E407評(píng)估板創(chuàng)建和運(yùn)行第一個(gè)微型ROS應(yīng)用程序:


https://micro-ros.github.io/docs/tutorials/core/first_application_rtos/freertos/

(公號(hào)不支持外部鏈接,請(qǐng)復(fù)制鏈接到瀏覽器打開)


九、最后

總而言之,F(xiàn)reeRTOS提供了運(yùn)行Micro-ROS應(yīng)用程序的輕量且理想的RTOS,因?yàn)樗峁┝藦V泛的所需功能,實(shí)際上構(gòu)成Micro-ROS堆棧的所有模塊化層都在不同級(jí)別上使用了這些功能。


隨著micro-ROS和FreeRTOS的用戶群迅速擴(kuò)展并且引人注目的用例激增,預(yù)計(jì)在不久的將來(lái),micro-ROS與FreeRTOS和FreeRTOS + 提供的庫(kù)進(jìn)一步集成。


其中,對(duì)FreeRTOS + FAT庫(kù)的利用顯得尤為可取,以便添加一個(gè)虛擬文件系統(tǒng)組件,該組件允許像在完全部署的ROS 2生態(tài)系統(tǒng)中一樣可視化和管理日志記錄操作。


還設(shè)想了專用部分中所述的內(nèi)存管理工具的進(jìn)一步利用,以擴(kuò)展XRCE-DDS客戶端的內(nèi)存配置文件,從而為micro-ROS客戶端提供類似的分析。


micro-ROS項(xiàng)目計(jì)劃的另一個(gè)未來(lái)行動(dòng)是采用FreeRTOS的認(rèn)證版本SafeRTOS。


最后但并非最不重要的一點(diǎn)是,似乎值得一提的是FreeRTOS與micro-ROS典型目標(biāo)應(yīng)用相關(guān)的硬件集成的兩個(gè)非常成功的案例,即功能強(qiáng)大的Crazyflie 2.1無(wú)人機(jī)和ESP32 MCU的硬件。實(shí)際上,Crazyflie軟件可以利用FreeRTOS的幾種工具和功能來(lái)獲利。微ROS應(yīng)用與FreeRTOS的有關(guān)此MAV工作的演示的例子可以理解這里。至于與FreeRTOS本機(jī)集成并提供現(xiàn)成的Wi-Fi天線和藍(lán)牙功能的第二種硬件,則已經(jīng)在該系統(tǒng)上進(jìn)行了最新的micro ROS端口。


更多內(nèi)容,請(qǐng)參看:

https://micro-ros.github.io/


-END-


編輯整理:strongerHuang

作者:Francesca Finocchiaro



推薦閱讀



【01】C語(yǔ)言內(nèi)存泄露很嚴(yán)重,如何應(yīng)對(duì)?
【02】編譯C語(yǔ)言程序,使用 gcc 指令,而C++程序則推薦使用 g++指令!
【03】C語(yǔ)言:優(yōu)雅的字符串函數(shù)庫(kù)
【04】在C 語(yǔ)言中,請(qǐng)一定記得初始化局部變量!
【05】嵌入式編程是否應(yīng)該用C++替代C語(yǔ)言


免責(zé)聲明:整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系刪除

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉