久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 入門指導 > 詳解嵌入式程序(xu)設計中遇到的優(you)化(hua)問題

詳(xiang)解(jie)嵌(qian)入式程序設(she)計中遇到的優化(hua)問題(ti) 時間(jian):2018-07-23      來源:未知

嵌入式系統是受功耗、成本和體積等(deng)因素的(de)(de)(de)制約,由于嵌入式一些微(wei)處理器的(de)(de)(de)處理能(neng)力會有大的(de)(de)(de)差距,所以嵌入式系統在程序的(de)(de)(de)運行(xing)上(shang)都是比較苛刻(ke)的(de)(de)(de),那(nei)么遇到這樣的(de)(de)(de)問題,那(nei)就需(xu)要對嵌入式應用程序來進行(xing)性能(neng)的(de)(de)(de)優化,來滿(man)足需(xu)求。

我(wo)們首先就要先知道嵌入式程序優化的類(lei)型有哪些(xie)呢?

嵌入式應用程(cheng)序(xu)優化,指在不(bu)改變程(cheng)序(xu)功能的(de)情況下,通過修(xiu)改原來程(cheng)序(xu)的(de)算法、結構,并利(li)用軟件開發工具對(dui)程(cheng)序(xu)進行改進,使修(xiu)改后(hou)的(de)程(cheng)序(xu)運行速度(du)更高或代碼尺寸更小。

按照優化(hua)(hua)的(de)側重點不(bu)同(tong),程(cheng)(cheng)序(xu)(xu)優化(hua)(hua)可分為(wei)(wei)運(yun)(yun)(yun)(yun)行(xing)(xing)速度(du)優化(hua)(hua)和(he)代(dai)(dai)(dai)碼尺寸(cun)(cun)優化(hua)(hua)。運(yun)(yun)(yun)(yun)行(xing)(xing)速度(du)優化(hua)(hua)是指(zhi)(zhi)在(zai)充分掌握軟硬件特性的(de)基礎上,通過應(ying)用程(cheng)(cheng)序(xu)(xu)結構調整等手段來(lai)(lai)縮(suo)短(duan)完(wan)成指(zhi)(zhi)定任務所需(xu)的(de)運(yun)(yun)(yun)(yun)行(xing)(xing)時(shi)間;代(dai)(dai)(dai)碼尺寸(cun)(cun)優化(hua)(hua)則(ze)是指(zhi)(zhi)應(ying)用程(cheng)(cheng)序(xu)(xu)在(zai)能(neng)夠(gou)正確實(shi)(shi)現所需(xu)功能(neng)的(de)前(qian)提下,盡可能(neng)減(jian)小(xiao)程(cheng)(cheng)序(xu)(xu)的(de)代(dai)(dai)(dai)碼量(liang)。實(shi)(shi)際(ji)應(ying)用中(zhong),這兩者(zhe)往往是相(xiang)互矛盾的(de),為(wei)(wei)了(le)提高程(cheng)(cheng)序(xu)(xu)運(yun)(yun)(yun)(yun)行(xing)(xing)速度(du),就要以增加代(dai)(dai)(dai)碼量(liang)為(wei)(wei)代(dai)(dai)(dai)價;而為(wei)(wei)了(le)減(jian)小(xiao)程(cheng)(cheng)序(xu)(xu)代(dai)(dai)(dai)碼尺寸(cun)(cun),可能(neng)又(you)要以降低程(cheng)(cheng)序(xu)(xu)運(yun)(yun)(yun)(yun)行(xing)(xing)速度(du)為(wei)(wei)代(dai)(dai)(dai)價。因(yin)此(ci),在(zai)對程(cheng)(cheng)序(xu)(xu)進行(xing)(xing)優化(hua)(hua)之前(qian),應(ying)根據實(shi)(shi)際(ji)需(xu)要來(lai)(lai)制定具(ju)體的(de)優化(hua)(hua)策略。隨著計算(suan)機和(he)微電子技術的(de)不(bu)斷發展,存儲(chu)空間已不(bu)再是制約嵌(qian)入(ru)式系統的(de)主(zhu)要因(yin)素,因(yin)此(ci)本文主(zhu)要討論(lun)運(yun)(yun)(yun)(yun)行(xing)(xing)速度(du)優化(hua)(hua)。

嵌入式程序設計

接下來(lai)就是嵌入式程序設計中優化遵循(xun)的原則了

嵌(qian)入式(shi)程(cheng)序優化(hua)主要(yao)遵循以下3個原則。

①等效原則:優化前后程序實現(xian)的功能(neng)一致。

②有效原則:優化后要比優化前(qian)運行速度快或占(zhan)用存儲空間小,或二者(zhe)兼有。

③經濟原則:優化(hua)程序要付(fu)出較小(xiao)的代(dai)價,取(qu)得較好的結果。

 重點來了(le)嵌(qian)入式程序優化的主要方面(mian):算(suan)法(fa)和數據結構(gou)優化、編(bian)譯優化以及代碼優化。

算法和數據(ju)結構優化

算(suan)(suan)法和數據結構是程(cheng)(cheng)序設計的核心所在,算(suan)(suan)法的好壞在很大程(cheng)(cheng)度上(shang)決定(ding)了程(cheng)(cheng)序的優(you)劣。

編譯優化

現在(zai),很(hen)多的(de)(de)編譯器都具有(you)一定(ding)的(de)(de)代碼優(you)化(hua)(hua)功能。在(zai)編譯時,借(jie)用(yong)并(bing)行(xing)(xing)程(cheng)序(xu)設計技(ji)術,進行(xing)(xing)相關性(xing)分析;獲得源程(cheng)序(xu)的(de)(de)語義信息,采(cai)用(yong)軟件流水(shui)線、數(shu)據規劃、循(xun)環(huan)重構等技(ji)術,自(zi)動進行(xing)(xing)一些(xie)與處(chu)理(li)器體系無關的(de)(de)優(you)化(hua)(hua),生成高(gao)質量(liang)的(de)(de)代碼。許多編譯器有(you)不(bu)同(tong)級(ji)別的(de)(de)優(you)化(hua)(hua)選項(xiang),可以選用(yong)一種合(he)適的(de)(de)優(you)化(hua)(hua)方式。通常(chang)情況下,如(ru)果選用(yong)了最(zui)高(gao)級(ji)別的(de)(de)優(you)化(hua)(hua)方式,那(nei)么(me)編譯器將片(pian)面追求代碼的(de)(de)優(you)化(hua)(hua),有(you)時會導致(zhi)錯(cuo)誤(wu)。

另外,還有一些專用的(de)編譯(yi)器(qi)(qi)針對某些體系結構進行了(le)優化設(she)計,可以充分(fen)利用硬件資源來生(sheng)成高質量(liang)的(de)代(dai)碼。例如:Microsoft eMbedded Visual C++版的(de)Intel編譯(yi)器(qi)(qi)完全針對Intel XScale體系,經過高度優化,能(neng)創建運行速度更(geng)快(kuai)的(de)代(dai)碼。此編譯(yi)器(qi)(qi)采用了(le)多種優化技術,包括優化指令管道(dao)操作(zuo)的(de)調度技術、雙重加載與存儲(chu)Intel XScale技術功能(neng)支持以及過程(cheng)間優化(將(jiang)函數使用的(de)變量(liang)存放到(dao)寄存器(qi)(qi),以便(bian)快(kuai)速訪問)等。

在嵌入式軟件開發過程中應選擇一種(zhong)優(you)化能(neng)力強的(de)編譯器(qi),充(chong)分利用其代碼優(you)化功能(neng),生成高效的(de)代碼,提高程序的(de)運行效率(lv)。

代碼優化

代(dai)碼優化(hua),就是采用(yong)匯編(bian)語(yu)言或更精簡的(de)程(cheng)(cheng)(cheng)(cheng)序代(dai)碼來代(dai)替原有(you)的(de)代(dai)碼,使編(bian)譯后的(de)程(cheng)(cheng)(cheng)(cheng)序運(yun)行(xing)(xing)效率更高。編(bian)譯器可以自動完成程(cheng)(cheng)(cheng)(cheng)序段(duan)和(he)代(dai)碼塊范圍內(nei)的(de)優化(hua),但很難獲取程(cheng)(cheng)(cheng)(cheng)序語(yu)義信(xin)息、算(suan)法流程(cheng)(cheng)(cheng)(cheng)和(he)程(cheng)(cheng)(cheng)(cheng)序運(yun)行(xing)(xing)狀(zhuang)態(tai)信(xin)息,因而需要編(bian)程(cheng)(cheng)(cheng)(cheng)人員(yuan)進行(xing)(xing)手(shou)工(gong)優化(hua)。以下是一些常用(yong)的(de)優化(hua)技(ji)術和(he)技(ji)巧。

(1)代碼(ma)替換

使(shi)用周(zhou)期短的指(zhi)令(ling)代替(ti)周(zhou)期長的指(zhi)令(ling),以降低運算的強(qiang)度。

①減少除(chu)法(fa)運算。用(yong)(yong)關系(xi)運算符兩(liang)邊乘除(chu)數(shu)避免除(chu)法(fa)操(cao)作,還(huan)有一些(xie)除(chu)法(fa)和(he)取模的運算可以(yi)用(yong)(yong)位(wei)操(cao)作來代替。因為位(wei)操(cao)作指令只需一個指令周(zhou)期,而(er)“/”運算則需要調用(yong)(yong)子程序,代碼長,執行慢。例如:

優(you)化前if((a/b)>c)和a=a/4

優化后if(a>(b*c))和(he)a=a>>2

②減少(shao)乘方(fang)運算。例如:

優(you)化前a=pow(a,3.0)

優化后a=a*a*a

③使用白加、自減(jian)指令。例如(ru):

優化前a=a+1、a=a-l

優(you)化后a++、a--或inc、dec

④盡量使用(yong)小的(de)(de)數據類(lei)型。在所定義的(de)(de)變量滿足使用(yong)要求的(de)(de)條件下,優先使用(yong)順序為:字符型(char)>整型(im)>長整型(long int)>浮點型(float)。

對除法來說,使用無(wu)符號數(shu)比(bi)有符號數(shu)會有更高(gao)的效(xiao)率。在實際調(diao)用中,盡量(liang)減少(shao)數(shu)據類型的強制轉換(huan);少(shao)用浮點運算,如(ru)果運算的結果能夠(gou)控制在誤差之(zhi)內,則可用長整型代替(ti)浮點型。

(2)全(quan)局變(bian)量(liang)與局部(bu)變(bian)量(liang)

少(shao)用全(quan)局(ju)變(bian)(bian)量(liang)(liang)(liang),多(duo)(duo)用局(ju)部(bu)(bu)變(bian)(bian)量(liang)(liang)(liang)。全(quan)局(ju)變(bian)(bian)量(liang)(liang)(liang)是放在(zai)數(shu)據(ju)(ju)存(cun)(cun)儲(chu)器(qi)中的(de)(de)(de)(de),定義了全(quan)局(ju)變(bian)(bian)量(liang)(liang)(liang),MCU就少(shao)了一個可以利(li)用的(de)(de)(de)(de)數(shu)據(ju)(ju)存(cun)(cun)儲(chu)器(qi)空間,太(tai)多(duo)(duo)的(de)(de)(de)(de)全(quan)局(ju)變(bian)(bian)量(liang)(liang)(liang),會(hui)導致(zhi)編譯(yi)器(qi)無足夠的(de)(de)(de)(de)內存(cun)(cun)分配;而局(ju)部(bu)(bu)變(bian)(bian)量(liang)(liang)(liang)則大(da)(da)多(duo)(duo)定位于MCU內部(bu)(bu)的(de)(de)(de)(de)寄存(cun)(cun)器(qi)中。在(zai)絕(jue)大(da)(da)多(duo)(duo)數(shu)的(de)(de)(de)(de)MCU中,使用寄存(cun)(cun)器(qi)的(de)(de)(de)(de)操作速度比數(shu)據(ju)(ju)存(cun)(cun)儲(chu)器(qi)快,指令也更靈活,有(you)利(li)于生成質量(liang)(liang)(liang)更高的(de)(de)(de)(de)代碼,而且局(ju)部(bu)(bu)變(bian)(bian)量(liang)(liang)(liang)所占用的(de)(de)(de)(de)寄存(cun)(cun)器(qi)和(he)數(shu)據(ju)(ju)存(cun)(cun)儲(chu)器(qi)在(zai)不同的(de)(de)(de)(de)模塊中可以重復利(li)用。

(3)使用寄存器變量

當一(yi)(yi)個變(bian)(bian)(bian)(bian)量(liang)(liang)(liang)被頻繁讀(du)/寫(xie)時,需(xu)要反復訪(fang)問(wen)內存(cun)(cun)(cun),花費大量(liang)(liang)(liang)的(de)存(cun)(cun)(cun)取時間。為(wei)了提高訪(fang)問(wen)效(xiao)率,可(ke)以使用CPU寄(ji)(ji)(ji)存(cun)(cun)(cun)器變(bian)(bian)(bian)(bian)量(liang)(liang)(liang),不(bu)需(xu)要訪(fang)問(wen)內存(cun)(cun)(cun),直接進行(xing)讀(du)/寫(xie)。循環次數較多的(de)循環控制變(bian)(bian)(bian)(bian)量(liang)(liang)(liang)及循環體(ti)內反復使用的(de)變(bian)(bian)(bian)(bian)量(liang)(liang)(liang)均可(ke)定(ding)義(yi)為(wei)寄(ji)(ji)(ji)存(cun)(cun)(cun)器變(bian)(bian)(bian)(bian)量(liang)(liang)(liang),而循環計(ji)數是應用寄(ji)(ji)(ji)存(cun)(cun)(cun)器變(bian)(bian)(bian)(bian)量(liang)(liang)(liang)的(de)最佳選擇。只有(you)局(ju)部自動變(bian)(bian)(bian)(bian)量(liang)(liang)(liang)和(he)形(xing)參才可(ke)以定(ding)義(yi)為(wei)寄(ji)(ji)(ji)存(cun)(cun)(cun)器變(bian)(bian)(bian)(bian)量(liang)(liang)(liang)。因(yin)為(wei)寄(ji)(ji)(ji)存(cun)(cun)(cun)器變(bian)(bian)(bian)(bian)量(liang)(liang)(liang)屬于動態存(cun)(cun)(cun)儲方式,因(yin)此凡需(xu)要采用靜態存(cun)(cun)(cun)儲方式的(de)變(bian)(bian)(bian)(bian)量(liang)(liang)(liang)都不(bu)能(neng)定(ding)義(yi)為(wei)寄(ji)(ji)(ji)存(cun)(cun)(cun)器變(bian)(bian)(bian)(bian)量(liang)(liang)(liang)。寄(ji)(ji)(ji)存(cun)(cun)(cun)器變(bian)(bian)(bian)(bian)量(liang)(liang)(liang)的(de)說明符(fu)是register。下(xia)面是一(yi)(yi)個采用寄(ji)(ji)(ji)存(cun)(cun)(cun)器變(bian)(bian)(bian)(bian)量(liang)(liang)(liang)的(de)例子:

register i,sum=0;

for(i=1;i<=n;i++)

{

sum=sum+i;

...

}

(4)循環體的優化

循(xun)環(huan)(huan)(huan)體(ti)是程(cheng)序(xu)設計和優化的(de)重(zhong)點,對于(yu)一(yi)些不需要循(xun)環(huan)(huan)(huan)變量參加運算的(de)模塊,可以把(ba)它放(fang)到循(xun)環(huan)(huan)(huan)的(de)外面。對于(yu)次數(shu)(shu)固定的(de)循(xun)環(huan)(huan)(huan)體(ti),for循(xun)環(huan)(huan)(huan)比(bi)while循(xun)環(huan)(huan)(huan)效率更高,減計數(shu)(shu)循(xun)環(huan)(huan)(huan)比(bi)增計數(shu)(shu)循(xun)環(huan)(huan)(huan)速(su)度快。例(li)如(ru):

優化前:

for(i=0;i<100;i++)

{

sum=sum+100;

...

}

優化后:

for(i=100;i!=0;i--)

{

sum=sum+100;

...

}

 實際運行時,每次(ci)循(xun)(xun)環(huan)需要(yao)在(zai)循(xun)(xun)環(huan)體外加兩條(tiao)(tiao)指(zhi)(zhi)令:一(yi)條(tiao)(tiao)減(jian)法指(zhi)(zhi)令(減(jian)少循(xun)(xun)環(huan)計數值)和一(yi)條(tiao)(tiao)條(tiao)(tiao)件分支指(zhi)(zhi)令。這些指(zhi)(zhi)令稱為“循(xun)(xun)環(huan)開(kai)(kai)銷(xiao)”。在(zai)ARM處(chu)理器上,減(jian)法指(zhi)(zhi)令需要(yao)1個(ge)周(zhou)期(qi),條(tiao)(tiao)件分支指(zhi)(zhi)令需要(yao)3個(ge)周(zhou)期(qi),這樣(yang)每個(ge)循(xun)(xun)環(huan)另加了4個(ge)周(zhou)期(qi)的(de)(de)開(kai)(kai)銷(xiao)。可以采用循(xun)(xun)環(huan)展開(kai)(kai)的(de)(de)方(fang)法來(lai)提高循(xun)(xun)環(huan)運行的(de)(de)速度,即:重復循(xun)(xun)環(huan)主題多次(ci),并按(an)同樣(yang)的(de)(de)比例減(jian)少循(xun)(xun)環(huan)次(ci)數來(lai)減(jian)小(xiao)循(xun)(xun)環(huan)的(de)(de)開(kai)(kai)銷(xiao),以增加代(dai)碼(ma)尺(chi)寸。來(lai)換(huan)取(qu)程序的(de)(de)運行速度。。

(5)switch語句用法的優化(hua)

編程時,對case值(zhi)按照(zhao)可(ke)能性排序,將(jiang)最(zui)可(ke)能發生的(de)情況(kuang)放在第一(yi)個,最(zui)不可(ke)能的(de)情況(kuang)放在最(zui)后一(yi)個,可(ke)以提(ti)高switch語句塊的(de)執行速(su)度。

(6)函數調用

高(gao)效(xiao)的調用函(han)數,盡量限制使用函(han)數的參數個數,不(bu)要超(chao)過(guo)4個。ARM調用時(shi),4個以(yi)下的形參通(tong)過(guo)寄存器傳(chuan)遞(di),第5個以(yi)上(shang)的形參通(tong)過(guo)存儲器棧傳(chuan)遞(di)。如果有更多的參數調用,則可(ke)將相關的參數組織在一個結(jie)構體內(nei),用傳(chuan)遞(di)結(jie)構體指針來代替參數。

嵌入式程序設計

(7)內(nei)(nei)聯函數和內(nei)(nei)嵌匯編

對性能(neng)影(ying)(ying)響大的重要函數(shu)可(ke)以(yi)使(shi)用(yong)(yong)關鍵字_inline內聯,會省去(qu)調用(yong)(yong)函數(shu)的開銷(xiao),負面影(ying)(ying)響是(shi)增加了代碼(ma)尺寸。程序中對時間要求苛刻的部分可(ke)以(yi)用(yong)(yong)內嵌匯編來編寫,通常可(ke)以(yi)帶來速度(du)上的顯著提高。

(8)查表代替計算

在程(cheng)(cheng)序(xu)中(zhong)盡量不進行(xing)非(fei)常復雜的運算,如浮點數(shu)的開方。對于這些消耗時(shi)(shi)間(jian)和資源的運算,可以(yi)采用空(kong)間(jian)換取(qu)時(shi)(shi)間(jian)的方法。預(yu)先將函(han)數(shu)值計(ji)算出來,置于程(cheng)(cheng)序(xu)存儲區(qu)中(zhong),以(yi)后(hou)程(cheng)(cheng)序(xu)運行(xing)時(shi)(shi)直(zhi)接查表即(ji)可,減小了程(cheng)(cheng)序(xu)執行(xing)過程(cheng)(cheng)中(zhong)重復計(ji)算的工作量。

(9)減少或(huo)避免執(zhi)行(xing)耗(hao)時的操作

應用(yong)程序的(de)(de)(de)大量(liang)運(yun)行(xing)時問(wen)通常花費(fei)在關(guan)鍵程序模塊,關(guan)鍵模塊往往包含循(xun)(xun)環(huan)或嵌套循(xun)(xun)環(huan)。減(jian)少循(xun)(xun)環(huan)中(zhong)耗時的(de)(de)(de)操作(zuo)(zuo),可以提(ti)高(gao)程序的(de)(de)(de)執行(xing)速度。常見的(de)(de)(de)耗時操作(zuo)(zuo)有(you):輸入/輸出操作(zuo)(zuo)、文(wen)件(jian)(jian)(jian)訪(fang)(fang)問(wen)、圖形界面操作(zuo)(zuo)和系統調用(yong)等。其中(zhong),如果(guo)無法避免文(wen)件(jian)(jian)(jian)的(de)(de)(de)讀/寫,那么對文(wen)件(jian)(jian)(jian)的(de)(de)(de)訪(fang)(fang)問(wen)將(jiang)是影響(xiang)程序運(yun)行(xing)速度的(de)(de)(de)一(yi)大因素。提(ti)高(gao)文(wen)件(jian)(jian)(jian)訪(fang)(fang)問(wen)速度的(de)(de)(de)方法有(you)兩種(zhong):一(yi)種(zhong)是采用(yong)內(nei)存(cun)映射(she)文(wen)件(jian)(jian)(jian);另一(yi)種(zhong)是使用(yong)內(nei)存(cun)緩存(cun)。

(10)使用(yong)針對硬件優(you)化(hua)的函數庫

Intel公司為XScale處(chu)理器設計的(de)GPP(Graphics Performance Primitives library)/IPP(Integrated Perform-ance Primitives library)庫(ku),針對多(duo)媒體處(chu)理、圖形處(chu)理和數值運算(suan)的(de)一些典型操(cao)作和算(suan)法進行了手工優(you)化,可以(yi)很(hen)好地發揮(hui)XScale硬(ying)件的(de)計算(suan)潛能,達到(dao)很(hen)高(gao)的(de)執行效率。

(11)利用(yong)硬件特(te)性

為了提(ti)高程序的(de)運行(xing)效率,要充(chong)分利用硬件特性來減(jian)小其運行(xing)開銷,例如減(jian)少中斷次數、利用DMA傳輸方式等。

CPU對各(ge)種存儲器的訪問速度排序(xu)(xu)依次(ci)為(wei):CPU內部RAM>外部同步(bu)RAM>外部異步(bu)RAM>Flash/ROM。對于已經燒錄在Flash或(huo)ROM中(zhong)(zhong)的程(cheng)序(xu)(xu)代碼(ma),如果讓CPU直接(jie)從中(zhong)(zhong)讀取代碼(ma)執行(xing)(xing),運行(xing)(xing)速度較慢,則可在系統啟動后將Flash或(huo)ROM中(zhong)(zhong)的目標代碼(ma)拷貝至RAM中(zhong)(zhong)后執行(xing)(xing),以提高程(cheng)序(xu)(xu)的運行(xing)(xing)速度。

嵌(qian)(qian)入式程序設計(ji)(ji)必不可少的(de)(de)(de)(de)(de)就是遇到(dao)優(you)化的(de)(de)(de)(de)(de)問(wen)題(ti),那通過上訴一(yi)系列的(de)(de)(de)(de)(de)講(jiang)解,你是不是對(dui)嵌(qian)(qian)入式程序設計(ji)(ji)里的(de)(de)(de)(de)(de)優(you)化,有(you)了更深(shen)一(yi)層的(de)(de)(de)(de)(de)理解了呢?我(wo)們(men)需要的(de)(de)(de)(de)(de)是根據實際情況來(lai)看,算法和數據結(jie)構優(you)化作為首(shou)選(xuan)(xuan)優(you)化技術,然后(hou)根據功能、性(xing)能差異和投(tou)資預算等因素選(xuan)(xuan)擇高效的(de)(de)(de)(de)(de)編譯器,代碼優(you)化手(shou)段對(dui)其進行優(you)化,最后(hou)就是使用高效的(de)(de)(de)(de)(de)編譯器進行編譯優(you)化,從而(er)得到(dao)高質量的(de)(de)(de)(de)(de)代碼。

上一篇:幾分鐘讓你學通嵌入式文件系統

下一篇:arm嵌入式主板詳細介紹,讓你秒懂

熱點文章推薦
華清學員就業榜單
高薪學員經驗(yan)分享
熱點新(xin)聞推薦
前臺(tai)專(zhuan)線(xian):010-82525158 企業培訓(xun)洽談專(zhuan)線:010-82525379 院校合作(zuo)洽談(tan)專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部