當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]TMS320LF240x DSP控制器的應(yīng)用實踐

引 言
    TI公司在1982年成功推出其第一代DSP芯片之后,相繼推出了多種適合不同應(yīng)用、不同規(guī)格的DSP系列。TMS320F240x DSP是為了滿足控制應(yīng)用而設(shè)計的,屬于TMS320C2xx系列。通過把一個高性能的DSP內(nèi)核和微處理器的片內(nèi)外部設(shè)備集成在一個芯片的方案,TMS320LF240x DSP成為傳統(tǒng)微控制器和昂貴的多片設(shè)計的一種廉價替代產(chǎn)品。3OMIPS的處理速度,使TMS320IF240x DSP可以遠(yuǎn)遠(yuǎn)超過傳統(tǒng)的16位微控制器和微處理器的性能。筆者曾用該系列芯片中的TMS320F2406開發(fā)過電動執(zhí)行機(jī)構(gòu),得到了滿意的結(jié)果。結(jié)合自己的開發(fā)經(jīng)驗,筆者簡要介紹TMS320LF240xDSP的硬件結(jié)構(gòu)、C程序開發(fā)過程中若干關(guān)鍵的問題。其中很多包括筆者的心得和體會。


1 TMS320LF240X DSP硬件結(jié)構(gòu)特點
    TMS320LF240x DSP有以下一些特點:采用高性能靜態(tài)CMOS技術(shù),使得供電電壓降為3.3V,減少了功耗;基于TMS320C2xxDSP的CPU核,保證與TMS320系列DSP代碼兼容;片內(nèi)有高達(dá)32K字的Flash程序存儲器,544字的雙口RAM(DARAM)和2K字的單口RAM(SARAM);兩個事件管理器模塊EVA和EVB,適用于控制各類電機(jī);看門狗定時器模塊(WDT);控制器局域網(wǎng)絡(luò)(CAN)2.0B模塊;串行通信接口(SCI)模塊;16位的串行外設(shè)接口(SPI)模塊;JTAG接口,使得在系統(tǒng)編程(ISP,)很容易實現(xiàn);10位A/D轉(zhuǎn)換器最小的轉(zhuǎn)換時間為500ns,可選擇由兩個事件管理器來觸發(fā)2個8通道輸入A/D轉(zhuǎn)換器或1個16通道輸入A/D轉(zhuǎn)換器,而每次要轉(zhuǎn)換的通道都可通過編程來選擇。需要說明的是,TMS320LF240x DSF是定點l6位芯片,存儲數(shù)據(jù)的最小單位是16位的字,每個地址(包括程序地址、數(shù)據(jù)地址及I/O地址)所存的數(shù)據(jù)都是16位。
1.1 改進(jìn)的哈佛結(jié)構(gòu)和流水線操作
    DSP采用程序空間和數(shù)據(jù)空間完全分開的哈佛(Havard)結(jié)構(gòu),允許同時取指令和操作數(shù),而且允許在程序空間和數(shù)據(jù)空間之間相互傳遞數(shù)據(jù),即改進(jìn)的哈佛結(jié)構(gòu)。TMS320LF240x DSP的cPu核心具有獨(dú)立的內(nèi)部數(shù)據(jù)和程序總線結(jié)構(gòu)。數(shù)據(jù)和程序總線分為6條l6位的總線,分別為:PAB,程序地址總線,為讀寫程序空間提供地址;DRAB,數(shù)據(jù)讀地址總線,為讀數(shù)據(jù)空間提地址;DWAB,數(shù)據(jù)寫地址總線,為寫數(shù)據(jù)空間提供地址;PRDB,從程序空間向c.PU傳送代碼、立即操作數(shù)和表信息的程序讀總線;DRDB,從數(shù)據(jù)空間向中央算術(shù)邏輯單元(CALU)和輔助寄存器算術(shù)單元(ARAU)傳送數(shù)據(jù)的數(shù)據(jù)讀總線;DWEB,可以傳送數(shù)據(jù)到程序空間和數(shù)據(jù)空間的數(shù)據(jù)寫總線。數(shù)據(jù)讀地址總線(DRAB)和數(shù)據(jù)寫地址總線(DWAB)是相互獨(dú)立的地址總線,CPU 在相同的機(jī)器周期內(nèi)可以同時進(jìn)行數(shù)據(jù)讀寫操作。
    TMS320LF240x DSP流水線具有四個獨(dú)立的階段:取指令、指令譯碼、取操作數(shù)以及指令執(zhí)行。一般情況下,取指令占用PAB和PRDB;指令譯碼不占用任何程序和數(shù)據(jù)總線;取操作數(shù)占用DRAB和DRDB;指令執(zhí)行包括將執(zhí)行結(jié)果寫回數(shù)據(jù)存儲器,將占用DWAB和DWEB??梢?,TMS320LF240x DSP獨(dú)特的總線結(jié)構(gòu)大大減少了流水線沖突,極大提高了指令的運(yùn)行速度。
1. 2事件管理器模塊
    事件管理器模塊提供了許多適用于運(yùn)動控制和電機(jī)控制的功能。每個240x器件都包括兩個事件管理器模塊:EVA和EVB。每個事件管理器模塊包括兩個16位69通用定時器、比較單元、捕獲單元、8個16位的脈寬調(diào)制(PWM)通道以及正交編碼脈沖輸入電路。它們能夠?qū)崿F(xiàn):三相反相器控制;PWM的對稱和非對稱波形;編程的PWM死區(qū)控制以防止上下橋臂同時導(dǎo)通而引起短路。事件管理器模塊適用于控制交流感應(yīng)電機(jī)、無刷直流電機(jī)、開關(guān)磁阻電機(jī)、步進(jìn)電機(jī)、多級電機(jī)以及逆變器。


2 C0FF目標(biāo)文件  
    TI公司匯編器所創(chuàng)建的目標(biāo)文件采用的是一種稱為COFF(Common Object File Format)的文件格式,即共同目標(biāo)文件格式。目的是提高編程和程序執(zhí)行的效率,同時也有利于使用TI公司的BIOS(Basic Input Output System)。
    COFF文件格式的核心概念就是使用代碼段、數(shù)據(jù)段編程,而不是指令或數(shù)據(jù)簡單的順序編寫。代碼段和數(shù)據(jù)段的概念不僅是現(xiàn)代軟件編制的重要技術(shù)概念,同時也是嵌入式系統(tǒng)的重要編程技術(shù)。使用這種技術(shù)的優(yōu)點是:程序具有良好的可讀性;程序具有良好的可移植性;能與系統(tǒng)存儲單元充分配合。
    在COFF目標(biāo)文件中,段(section)是其最小的單位。所謂“段”就是最終在TMS320 DSP的存儲器映像中占據(jù)連續(xù)空間的一塊代碼或數(shù)據(jù)。這些段在目標(biāo)文件中是相互獨(dú)立的。由于大多數(shù)系統(tǒng)都包含有不同類型的存儲器(ROM、RAM、EEPROM),所以使用段可使用戶更有效地利用目標(biāo)存儲器;所有段都能夠獨(dú)立進(jìn)行重定位,因此可以將不同的段分配至不同類型的存儲器中去。
    通常,一個COFF目標(biāo)文件中都包含三個缺省段:text段(通常包含可執(zhí)行代碼)、.data段(通常包含已初始化數(shù)據(jù))和.bss段(通常為未初始化的數(shù)據(jù)保留所需的空間)。除了這三個缺省的段之外,編程人員可使用匯編器指示符(.sect和usect)自定義段。
    TMS320LF240x DSP C編譯器產(chǎn)生可重定位的數(shù)據(jù)段和代碼段。這些段以不同方式分配到內(nèi)存中,以滿足不同的系統(tǒng)配置。編譯器創(chuàng)建兩種基本的段:初始化段和未初始化段。
    初始化段包括數(shù)據(jù)表和可執(zhí)行代碼。C編譯器創(chuàng)建下初始化段:
    ◆.text段一包含所有的可執(zhí)行代碼和浮點常數(shù);
    ◆.cinlt段一包含用于初始化全局變量和靜態(tài)變量的表:
    ◆.const段一包含字符常量以及用關(guān)鍵字const聲明的全局和靜態(tài)變量:
    ◆.switch段一包含switch語句的跳轉(zhuǎn)表。
    未初始化段在內(nèi)存(通常是RAM)中保留空間。程序在運(yùn)行時用這些空間創(chuàng)建和保存變量。編譯器創(chuàng)建以下未初始化段:
    ◆.bss段一為全局變量和靜態(tài)變量保存空間,在程序開始運(yùn)行時,C初始化boot程序?qū)?shù)據(jù)從.Clnlt拷貝到bss段中;
    ◆.stack段——為系統(tǒng)堆棧分配存儲空間,用于將變量傳遞至函數(shù)以及為局部變量分配空間;
    ◆.system段一為動態(tài)內(nèi)存分配保留空間,為動態(tài)存儲函數(shù)malloc、callo和realloc分配存儲空間。當(dāng)然,若C程序沒有用到這些函數(shù),那么編譯器就不用創(chuàng)建system段了。


3 C程序運(yùn)行環(huán)境
    TMS320LF240x DSP提供兩種編程語言:匯編語言和C語言。如果源程序為C語言,需調(diào)用TMS320LF240x DSP的C編譯器將其編譯成匯編語言,然后送匯編器進(jìn)行匯編。匯編后產(chǎn)生COFF格式的目標(biāo)文件,再用鏈接器進(jìn)行鏈接(鏈接過程包括將編譯器的運(yùn)行支持庫相關(guān)代碼鏈接進(jìn)來以及代碼段和數(shù)據(jù)段的重定位),生成在TMS320LF240x DSP上可執(zhí)行的COFF格式的目標(biāo)代碼(如有必要,可使用目標(biāo)代碼格式轉(zhuǎn)換工具),并調(diào)用下載程序?qū)⒛繕?biāo)代碼下載到目標(biāo)芯片上。
    TMS32OC2xx DSP(當(dāng)然包括TMS320LF240x DSP)C語言編譯器包含兩個庫:rts2xx.1ib和rts.src。
(1)rts2xx.Ii b
    rts2xx.1ib運(yùn)行支持目標(biāo)庫。具有COFF文件格式。運(yùn)行支持目標(biāo)庫(即rts2xx1ib)是由rts.src中的C和匯編源程序通過編譯和匯編而得到的。rts2xx lib包含三部分內(nèi)容:ANSI C標(biāo)準(zhǔn)庫、系統(tǒng)啟動程序c int00、允許C訪問特殊指令的函數(shù)和宏。
    鏈接程序時,必須指明具體的目標(biāo)庫并把該庫作為鏈接輸入文件之一,這樣對目標(biāo)庫所包含的運(yùn)行支持函數(shù)的引用就得到了解決。鏈接運(yùn)行目標(biāo)庫時,鏈接器只是將目標(biāo)庫中被引用部分加進(jìn)目標(biāo)文件。這里所說的目標(biāo)庫指的就是rts2xx.lib。由于運(yùn)行支持函數(shù)符合函數(shù)調(diào)用規(guī)約,可以直接被C訪問。
(2)rts.src
    rts.src運(yùn)行支持源文件庫,由c和匯編源程序組成,可在集成開發(fā)環(huán)境(CCS)下打開,任何一個運(yùn)行支持函數(shù)的源代碼都可以在rts.src找到。
    rts.src中包含有用匯編語言編寫的算術(shù)程序。由于這些函數(shù)的特殊調(diào)用規(guī)約,它們不能從C中被訪問:但可以對它們作擴(kuò)展或修改以作為自己的程序。只要修改后的程序遵循函數(shù)特定的調(diào)用規(guī)約和保護(hù)規(guī)約,它們就可以被C直接訪問。
    算術(shù)程序中包含浮點運(yùn)算函數(shù)。浮點數(shù)采用IEEE754單精度浮點數(shù)格式為

    浮點數(shù)由3部分組成,即符號位(“S”)、指數(shù)和尾數(shù)。指數(shù)是有+127偏置的無符號整數(shù)。一個浮點數(shù)占有32位,占用TMS320LF240x DSP兩個字的空間。32位規(guī)格化數(shù)的值由值(規(guī)格化)=(-1)3×l.尾數(shù)×2(指數(shù)-127)給出。這樣,浮點數(shù)O.5的單精度浮點數(shù)為3F000000h,格式為

    例如,源庫rts.src中的匯編函數(shù)F$$ITOF是將16位有符號整形數(shù)轉(zhuǎn)換為浮點數(shù),只要在匯編程序中加入“ref F$$ITOF”指令,即可直接調(diào)用該函數(shù)。查看F$$ITOF函數(shù)的說明文檔可知,該函數(shù)不遵循C子程序調(diào)用規(guī)約,所以它不能直接被C調(diào)用。
    下面介紹C程序的系統(tǒng)初始化。
    在運(yùn)行C程序之前,必須創(chuàng)建C運(yùn)行環(huán)境。這個程序由C引導(dǎo)程序使用名為c_intO的函數(shù)來執(zhí)行。運(yùn)行支持源庫(rts.src)在名為boot.asm的模塊中包含這個程序的源程序。c_intO執(zhí)行如下初始化C環(huán)境的任務(wù):
    ①為系統(tǒng)堆棧定義一個名為stack的段,并設(shè)置初始化指針;
    ②初始化全局變量,將.Clnlt段中的初始化表中的數(shù)據(jù)復(fù)制到bss段中;
    ③調(diào)用函數(shù)main來運(yùn)行C程序。
    運(yùn)行堆棧(即.stack段)被分配在存儲器的一個連續(xù)塊中,并且從低地址向高地址增加。寄存器ARl通常指向堆棧中下一個可獲得的字(堆棧頂加一個字)。代碼不會檢查運(yùn)行時堆棧是否會溢出,因此要確保分配給堆棧足夠的空間。
    有些全局變量在C程序開始運(yùn)行前必須賦初值,檢索這些變量的數(shù)值并用數(shù)值將它們初始化的過程成為自動初始化。編譯器在名為.clnlt(該段位于程序空間)的特殊段中建立表。該段包含了用于初始化全局變量和靜態(tài)變量的數(shù)據(jù)。每個被編譯模塊都包含這些初始化表,鏈接器將它們組成單個表(單個的clnlt段)。引導(dǎo)程序使用這個表初始化所有的系統(tǒng)變量。
    .clnlt段中的表是由多項初始化記錄組成的。每個必須自動初始化的變量在.cinit段中都有記錄,.clnlt段中初始化記錄的格式如圖l所示。

    初始化記錄包括三部分:字節(jié)長度,即需要初始化的變量個數(shù);.bss中變量的指針,為該記錄第一個變量在.bss段中的地址;初始化數(shù)據(jù),指的是用于初始化變量的數(shù)據(jù)。初始化數(shù)據(jù)的個數(shù)必須和字節(jié)長度相等。在變量的自動初始化過程中,為了能讓初始化程序識別初始化記錄的結(jié)尾,最后一項初始化記錄的第一個字用0填充,即該初始化記錄的字節(jié)長度為0。至此初始化程
序完成了全局變量的初始化。
    全局變量的初始化包括運(yùn)行時變量的自動初始化和加載時變量的初始化。筆者認(rèn)為,加載時變量的初始化沒有實用價值。因為當(dāng)DSP斷電后,這些變量的值就丟失了。當(dāng)DSP重新上電后,由于初始化程序不給這些全局變量賦初值,使得系統(tǒng)的初始化失敗。


4 C語言和匯編語言的混合編程
    開發(fā)DSP芯片可以用匯編語言或C語言。兩種語言各有所長:用C語言開發(fā)DSP芯片,開發(fā)速度快,可讀性好,可移植性強(qiáng);而用匯編語言開發(fā)DSP芯片,則能充分利用DSP芯片的軟硬件資源,程序代碼的執(zhí)行效率高。在DSP運(yùn)算能力比較寬裕,實時性要求不是很強(qiáng)的場合,用C語言非常合適。在對運(yùn)算速度以及實時性要求極高或者是在不能擴(kuò)展外部存儲器而且片內(nèi)存儲器又非常有限的條件下,使用匯編語言幾乎是必須的。在程序的開發(fā)過程中,幾乎不可避免地要使用C語言和匯編語言的混合編程。
    用C語言和匯編語言進(jìn)行混合編程主要有以下三種方法:
    ①獨(dú)立編寫C程序和匯編程序,分開編譯或匯編形成各自的目標(biāo)代碼模塊,然后用鏈接器將C語言模塊和匯編模塊鏈接起來。這其實就是一個C模塊和匯編模塊的接口問題。
    ②直接在C程序中的相應(yīng)位置嵌入?yún)R編語句。
    ③對C程序進(jìn)行匯編生成相應(yīng)代碼,然后對這些匯編代碼進(jìn)行手工優(yōu)化與修改。
    在用c語言和匯編語言進(jìn)行混合編程時,必須遵循寄存器規(guī)約和函數(shù)調(diào)用規(guī)約。 
(1)寄存器規(guī)約 
    在C環(huán)境中,對什么寄存器用于完成什么樣的操作有嚴(yán)格規(guī)定。所有這些規(guī)定統(tǒng)稱為寄存器規(guī)約(registcr conventions)。如果想編寫出正確的C語言DSP程序,將C程序和匯編程序接口,則必須理解和遵循這些規(guī)約寄存器規(guī)約規(guī)定編譯器如何使用寄存器以及在函數(shù)的調(diào)用過程中如何保護(hù)寄存器。在函數(shù)的調(diào)用過程中有兩種保護(hù)寄存器的方法:一種是在調(diào)用時保護(hù)寄存器(由調(diào)用函數(shù)來完成),另一種是在被調(diào)用函數(shù)程序的入口處保護(hù)寄存器(由被調(diào)用函數(shù)來完成)。限于篇幅,不再詳細(xì)介紹。在編程的過程中,一定要嚴(yán)格遵循這些規(guī)約,否則,會出現(xiàn)錯誤。
(2)函數(shù)調(diào)用規(guī)約
    C編譯器對函數(shù)調(diào)用有一系列嚴(yán)格的規(guī)約。任何函數(shù)不管是調(diào)用C函數(shù),還是被C函數(shù)調(diào)用,都必須遵循這些規(guī)約。不遵循這些規(guī)約將破壞C環(huán)境,導(dǎo)致程序運(yùn)行失敗。函數(shù)調(diào)用規(guī)約(function calling conyentions)l確規(guī)定在函數(shù)調(diào)用的全過程中,調(diào)用函數(shù)和被調(diào)用函數(shù)所必須執(zhí)行的操作,以保證調(diào)用前后C環(huán)境的一致性。
    當(dāng)父函數(shù)調(diào)用子函數(shù)時,必須保證當(dāng)前的輔助寄存器為ARl。父函數(shù)執(zhí)行以下操作:①將被調(diào)用函數(shù)所需參數(shù)的值壓入堆棧(按從右到左的順序),使最左邊的參數(shù)位于堆棧的頂部;②調(diào)用子函數(shù),即開始執(zhí)行子函數(shù)程序代碼;③父函數(shù)認(rèn)為,當(dāng)函數(shù)調(diào)用返回時,ARl是當(dāng)前的輔助寄存器;④當(dāng)被調(diào)用函數(shù)完成時,父函數(shù)將堆棧指針移回到函數(shù)調(diào)用前的位置。直接把壓入堆棧中參數(shù)的值丟棄。
    由上可看出,函數(shù)調(diào)用過程中參數(shù)的傳遞是值傳遞,并沒有改變參數(shù)的值,只是把被調(diào)用函數(shù)所需參數(shù)的值拷貝進(jìn)堆棧中。子函數(shù)使用的是堆棧中的拷貝。子函數(shù)對拷貝部分的修改并不改變參數(shù)的值。當(dāng)函數(shù)調(diào)用完成時,父函數(shù)直接將堆棧中的拷貝丟棄。
    子函數(shù)所執(zhí)行的操作相對復(fù)雜一些,這里不再敘述。讀者可參閱TI公司技術(shù)手冊:TMS320C2x/C2xx/C5xOptlmizing CCompiler Users’s Guide。


結(jié)語
    從普及、推廣的角度來看,TI公司的TMS320C2xx系列具有較好的應(yīng)用基礎(chǔ)和較高的性能價格比,在我國有著廣泛的應(yīng)用前景。TMS320LF240x DSP是TMS320C2xx系列中的新成員,其性能遠(yuǎn)遠(yuǎn)超過傳統(tǒng)的l6位微控制器和微處理器,非常適用于電機(jī)的數(shù)字化控制,是電機(jī)數(shù)字化控制的升級產(chǎn)品。用高級語言進(jìn)行DSP的開發(fā)是DSP開發(fā)的重要方向。C語言在滿足控制應(yīng)用程序運(yùn)行速度的基礎(chǔ)上可以更好地維護(hù)程序和移植程序,是開發(fā)控制應(yīng)用程序的必然趨勢。因此,我們有必要深入了解C程序的運(yùn)行環(huán)境和編譯器的工作原理。DSP軟硬件開發(fā)過程中綜合了多方面的知識,只有在充分了解硬件資源的基礎(chǔ)上,才能開發(fā)出好的程序。

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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