當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]0. 引言µC/OS-Ⅱ內(nèi)核是一個(gè)強(qiáng)占式優(yōu)先級(jí)調(diào)度的系統(tǒng),能管理63個(gè)任務(wù),支持旗語(yǔ)、信號(hào)量、互斥信號(hào)量、隊(duì)列和消息郵箱,是一個(gè)是典型的嵌入式實(shí)時(shí)操作系統(tǒng)。它最早由J

0. 引言

µC/OS-Ⅱ內(nèi)核是一個(gè)強(qiáng)占式優(yōu)先級(jí)調(diào)度的系統(tǒng),能管理63個(gè)任務(wù),支持旗語(yǔ)、信號(hào)量、互斥信號(hào)量、隊(duì)列和消息郵箱,是一個(gè)是典型的嵌入式實(shí)時(shí)操作系統(tǒng)。它最早由Jean J. Labrosse創(chuàng)作,源碼完全公開,已有眾多應(yīng)用范例,可靠性能得到保證,內(nèi)核小,移植性好。TI的C2000系列DSP處理器 TMS320LF2407A片內(nèi)集成16路10位AD,4個(gè)通用定時(shí)器,8個(gè)16位PWM通道,4個(gè)CAP捕獲單元,41路I/O通道,以及SPI、 RS232、CAN等通信接口,豐富的片內(nèi)資源,使得控制器不需任何擴(kuò)展就能滿足所有的功能要求,且冗余很少。

DSP處理器在數(shù)學(xué)運(yùn)算方面的優(yōu)勢(shì)也為智能化過程所需的數(shù)據(jù)處理提供了支持。TMS320LF2407A指令采用4級(jí)流水線操作,最高能以40M的系統(tǒng)時(shí)鐘工作,再加上合適的RTOS的調(diào)度,完全能保證系統(tǒng)的實(shí)時(shí)性。其開發(fā)系統(tǒng)TMS320C2XX Code Composer Studio滿足µC/OS-Ⅱ的移植條件,因此,它是嵌入式計(jì)算機(jī)控制系統(tǒng)主控制芯片的一個(gè)較好選擇。筆者在設(shè)計(jì)基于CAN的工程機(jī)械嵌入式智能顯示儀時(shí),選用2407A做主控制芯片,軟件方面,將實(shí)時(shí)內(nèi)核µC/OS-Ⅱ移植到該DSP 控制器TMS320LF2407A上,而應(yīng)用程序是在µC/OS-Ⅱ內(nèi)核基礎(chǔ)上的一系列任務(wù)。

1. µC/OS-Ⅱ的移植

由于µC/OS-Ⅱ在設(shè)計(jì)時(shí)就已經(jīng)充分考慮了可移植性,所以µC/OS-Ⅱ的移植相對(duì)來說比較容易。移植工作包括以下幾個(gè)內(nèi)容:(1)用#define設(shè)置一個(gè)常量的值(OS_CPU.H)(2)聲明10個(gè)數(shù)據(jù)類型(OS_CPU.H)(3)用#define聲明三個(gè)宏 (OS_CPU.H)(4)用C語(yǔ)言編寫六個(gè)簡(jiǎn)單的函數(shù)(OS_CPU_C.C)(5)編寫四個(gè)匯編語(yǔ)言函數(shù)(OS_CPU_A.ASM);即µC/OS-Ⅱ的移植要修改3個(gè)文件OS_CPU.H、OS_CPU_C.C和OS_CPU_A.ASM。其中匯編語(yǔ)言文件OS_CPU_A.ASM是可選擇的,因?yàn)槟承〤編譯器允許用戶在C語(yǔ)言中插入?yún)R編語(yǔ)言,所以用戶可以將所需的匯編語(yǔ)言代碼直接放到OS_CPU_C.C中。CCS的C編譯器允許在 C語(yǔ)言中嵌入?yún)R編語(yǔ)言,但是由于這種方式破壞了C語(yǔ)言的完整性,因此只提倡在程序開始系統(tǒng)初始化部分少量采用。而在C語(yǔ)言中嵌入實(shí)現(xiàn)某一完整功能的多句匯編語(yǔ)言時(shí),就不提倡采用這種方法。所以,移植中還是對(duì)OS_CPU_A.ASM做了修改。

2. 編寫移植代碼

移植µC/OS-Ⅱ的主要工作是聲明與硬件相關(guān)的數(shù)據(jù)類型,定義與中斷有關(guān)的宏定義,定義堆棧增長(zhǎng)方向宏定義,編寫堆棧初始化函數(shù),HOOK接口函數(shù),任務(wù)級(jí)上下文切換函數(shù),中斷級(jí)上下文切換函數(shù)以及系統(tǒng)時(shí)鐘定時(shí)服務(wù)函數(shù)等。

2.1 移植OS_CPU.H文件

(1)一個(gè)常量值。OSInit需要知道當(dāng)OS_TaskIdle() 和OS_TaskStat( ) 函數(shù)建立任務(wù)時(shí),堆棧的頂端地址在哪里;其次調(diào)用OSTaskStkChk( )時(shí),µC/OS-Ⅱ需要知道堆棧的底端地址在哪里。所以需要指明堆棧的增長(zhǎng)方向。絕大多數(shù)微處理器和微控制器的堆棧是從上往下遞減的,但是也有某些處理器使用的是相反的方式。TMS320LF2407A的堆棧方向是從下往上增長(zhǎng)的,所以: #define OS_STK_GROWTH 0;// 堆棧方向是從下往上增長(zhǎng)

(2) 聲明數(shù)據(jù)類型。µC/OS-Ⅱ考慮到通用性,在內(nèi)核中使用了自定義數(shù)據(jù)類型,與編譯器無關(guān),這就要求移植時(shí)必須定義微處理器的數(shù)據(jù)類型與µC/OS-Ⅱ的數(shù)據(jù)類型相一致,保證移植后的µC/OS-Ⅱ在微處理器平臺(tái)上運(yùn)行,在移植中應(yīng)將其聲明為CCS編譯器可識(shí)別的類型。這可以由OS_CPU.h頭文件實(shí)現(xiàn),程序如下所示。

typedef unsigned char BOOLEAN;/*定義ucos里的boolean為unsigned char*/

typedef unsigned char INT8U; /*定義ucos里的INT8U為unsigned char*/

typedef signed char INT8S; /*定義ucos里的INT8S為signed char*/

typedef unsigned int INT16U; /*定義ucos里的INT16U為unsigned int*/

typedef signed int INT16S; /*定義ucos里的INT16S為signed int*/

typedef unsigned long INT32U; /*定義ucos里的INT32U為unsigned long*/

typedef signed long INT32S; /*定義ucos里的INT32S為signed long */

typedef float FP; /*定義ucos里的FP為float*/

#define OS_STK INT16U /*堆棧入口寬度為16位*/

由于系統(tǒng)沒有用到OS_CPU_SR類型數(shù)據(jù),所以沒有定義此數(shù)據(jù)類型。

(3)3個(gè)宏定義。µC/OS-Ⅱ在內(nèi)核中通過禁止中斷來保護(hù)臨界區(qū),因此,需要在C語(yǔ)言中插入禁止和允許中斷的匯編代碼,DSP里用SETC INTM來屏蔽中斷,用CLRC INTM來使能中斷。所以移植代碼定義了下面兩條宏定義:

#define OS_ENTER_CRITICAL() asm(" SETC INTM")

#define OS_EXIT_CRITICAL() asm(" CLRC INTM")

µC/OS-Ⅱ定義了三種保護(hù)臨界區(qū)的方式,此移植版本采用的是最簡(jiǎn)單的第一種方法。此種方法就要求中斷關(guān)閉的情況下不能調(diào)用µC/OS-Ⅱ的功能函數(shù)。這對(duì)于應(yīng)用來說是可以接受的,所以就選擇了此種模式。TMS320LF2407A支持多種中斷方式,包括可屏蔽硬中斷 INT1~I(xiàn)NT6,不可屏蔽硬中斷RESET和NMI_VECT,不可屏蔽軟中斷INT8~I(xiàn)NT16和INT20~I(xiàn)NT31以及中斷陷阱TRAP。因此使用INT31軟中斷來調(diào)用OSCtxSw()來從任務(wù)堆棧中恢復(fù)處理器所用的寄存器。用INT2的定時(shí)器1周期中斷來調(diào)用OSTickISR()。定義模仿INT31中斷的宏,來跳轉(zhuǎn)到INT31

#define OS_TASK_SW() asm(" INTR 31")

在中斷向量表里的定義

.include f2407regs.h

.global _c_int0, _OSTickISR, RESET, _OSCtxSw,_GRIS5,_adint,_nothing

.asect "vectors",0

……

INT2 B _OSTickISR ; B _c_int2

……

INT31 B _OSCtxSw ; task switching service vector.

2.2 移植OS_CPU_C.H文件

µC/OS-Ⅱ的移植范例要求編寫10個(gè)簡(jiǎn)單的C函數(shù),但是真正必要的函數(shù)是OSTaskStkInit(),其他9個(gè)函數(shù)必須申明,但并不一定要包含任何代碼。OSTaskStkInit()主要是對(duì)任務(wù)堆棧的初始化。TMS320LF2407A的堆棧與一般微處理器的堆棧不同,一般微處理器的堆棧由編程定義一塊內(nèi)存作為堆棧比較靈活,而TMS320LF2407A的堆棧,是在CPU內(nèi)有8級(jí)深度的硬件堆棧,因此任務(wù)堆棧的初始化與一般微處理器的堆棧初始化不同。芯片本身的堆棧(以下簡(jiǎn)稱US)只有8級(jí),無法作為系統(tǒng)的堆棧使用,所以CCS編譯器將CPU內(nèi)部的兩個(gè)寄存器AR0和AR1保留,AR1作為堆棧指針,AR0用作堆棧中臨時(shí)變量指針FP。編譯器將函數(shù)或中斷壓進(jìn)US的返回地址,彈出放在SP(AR1)指向的堆棧中,并保存CPU 的工作環(huán)境,不同的是函數(shù)只保存程序要用到的寄存器,中斷要調(diào)用I$$SAVE子程序,保存CPU所有的寄存器,返回時(shí)調(diào)用I$$REST子程序,恢復(fù) I$$SAVE和I$$REST兩個(gè)函數(shù)是µC/OS-Ⅱ操作系統(tǒng)移植到TMS320LF2407A上的基礎(chǔ),一定要很清楚后才能夠成功移植 OSTaskStkInit()函數(shù)。[!--empirenews.page--]

2.3 移植OS_CPU_C.H文件

需要在該文件中編寫4個(gè)匯編語(yǔ)言函數(shù):(1)OSStartHighRdy():這是系統(tǒng)完成初始化后啟動(dòng)多任務(wù)運(yùn)行時(shí)要調(diào)用的函數(shù),主要功能是:將OSRunning標(biāo)志置為TRUE,然后獲取已建立的優(yōu)先級(jí)最高任務(wù)的堆棧指針,并從其堆棧中恢復(fù)處理器寄存器,最后執(zhí)行返回指令返回上述任務(wù)中運(yùn)行該任務(wù)。(2)OSCtxSw():在本移植中,任務(wù)級(jí)任務(wù)切換用軟中斷intr31實(shí)現(xiàn),OSCtxSw()即為該中斷的中斷服務(wù)程序。它先要將當(dāng)前處理器寄存器壓入當(dāng)前任務(wù)的堆棧中,將當(dāng)前堆棧指針保存到當(dāng)前任務(wù)的任務(wù)控制塊中;然后用與OSStartHighRdy()相類似的方法運(yùn)行當(dāng)前處于就緒態(tài)中優(yōu)先級(jí)最高的任務(wù)。(3)OSIntCtxSw():該函數(shù)被OSIntExit()函數(shù)調(diào)用,用于在ISR中進(jìn)行任務(wù)切換。它與OSCtxSw() 的區(qū)別在于無需對(duì)當(dāng)前任務(wù)的工作現(xiàn)場(chǎng)進(jìn)行保存,因?yàn)檫@一工作在進(jìn)入ISR之時(shí)已經(jīng)做了。(4)OSTickISR():用定時(shí)器產(chǎn)生一個(gè)周期為恒定值的時(shí)鐘源提供給µC/OS-Ⅱ,這是µC/OS-Ⅱ時(shí)間延遲和超時(shí)功能的時(shí)間基準(zhǔn)。OSTickISR()是該定時(shí)器周期中斷的中斷服務(wù)程序。它主要有兩個(gè)功能:一個(gè)是調(diào)用OSTimeTick()函數(shù),計(jì)算自系統(tǒng)上電以來所經(jīng)歷的時(shí)鐘節(jié)拍數(shù),并將每個(gè)處于延時(shí)等待狀態(tài)任務(wù)的OSTCBDIy項(xiàng)減1;另一個(gè)是調(diào)用OSIntExit()函數(shù)查看是否有更高優(yōu)先級(jí)的任務(wù)因時(shí)鐘節(jié)拍到來而延遲時(shí)間到并進(jìn)入就緒態(tài),如果有,則進(jìn)行中斷級(jí)的任務(wù)切換。另外,在該函數(shù)的入口處要將OSIntNesting加1;在出口處將OSIntNesting減1。其中堆棧的構(gòu)造,采用了系統(tǒng)庫(kù)函數(shù)I$$SAVE和I$$RSET函數(shù)來保護(hù)/恢復(fù)現(xiàn)場(chǎng)、保護(hù)/恢復(fù)任務(wù)棧。時(shí)鐘節(jié)拍TICK中斷由實(shí)時(shí)時(shí)鐘完成,但是2407A中沒有此定時(shí)器,移植是采用T1的周期中斷來實(shí)現(xiàn)的,時(shí)鐘頻率為10M,4倍頻后CPU時(shí)鐘為40M。系統(tǒng)初始化代碼如下。

ldp #00e0h ;指向第224頁(yè)(0x7000~0x707F)

splk #00e8h,WDCR ;不使能看門狗

splk #080feh,SCSR1 ;時(shí)鐘4倍頻

ldp #DP_EVA ;指向第232頁(yè)(0x7400~0x747F)

splk #080h,EVAIMRA ;通用定時(shí)器1 周期中斷使能

splk #0ffffh,EVAIFRA ;清中斷標(biāo)志 ;

splk #0,GPTCONA ;無控制操作

splk #4E20h,T1PER ; 定時(shí)器計(jì)數(shù)使能 ,周期為20000

splk #0,T1CNT ; 計(jì)數(shù)初值清0

splk #080Ch,T1CON ;TMODE=01 連續(xù)增/減計(jì)數(shù)模式,計(jì)數(shù)時(shí)鐘不分頻

必須在最高優(yōu)先級(jí)任務(wù)中開啟定時(shí)器,系統(tǒng)在優(yōu)先級(jí)為0的任務(wù)里開啟T1。為提高系統(tǒng)的實(shí)時(shí)性,設(shè)置T1每500us(20000/40M)產(chǎn)生一次T1周期中斷,即TICK為500us,µC/OS-Ⅱ每500us做一次任務(wù)調(diào)度。

3. 移植代碼測(cè)試

CCS是一個(gè)強(qiáng)大的集成開發(fā)環(huán)境,帶有源碼級(jí)的調(diào)試工具,按照J(rèn)ean J.Labrosse推薦的移植代碼測(cè)試方法和步驟很快完成了函數(shù)OSTaskStkInit()、函數(shù)OSStartHighRdy()、函數(shù) OSCtxSw()、OSIntCtxSw()和OSTickISR()函數(shù)的驗(yàn)證工作。證實(shí)了移植代碼是能正常工作的。為進(jìn)一步測(cè)試其可靠性,又另外創(chuàng)建了15個(gè)任務(wù),并用上了µC/OS-Ⅱ的信號(hào)量和郵箱同步機(jī)制,在每個(gè)任務(wù)里加上不同的發(fā)光二極管,經(jīng)測(cè)試其實(shí)時(shí)性和穩(wěn)定性都很好優(yōu)異。

4. 任務(wù)調(diào)度過程中優(yōu)先級(jí)翻轉(zhuǎn)問題及解決

優(yōu)先級(jí)翻轉(zhuǎn)是即當(dāng)一個(gè)高優(yōu)先級(jí)任務(wù)通過信號(hào)量機(jī)制訪問共享資源時(shí),該信號(hào)量已被一低優(yōu)先級(jí)任務(wù)占有,而這個(gè)低優(yōu)先級(jí)任務(wù)在訪問共享資源時(shí)可能又被其它一些中等優(yōu)先級(jí)的任務(wù)搶先,因此造成高優(yōu)先級(jí)任務(wù)被許多具有較低優(yōu)先級(jí)的任務(wù)阻塞,實(shí)時(shí)性難以得到保證。解決優(yōu)先級(jí)翻轉(zhuǎn)問題有優(yōu)先級(jí)天花板和優(yōu)先級(jí)繼承兩種辦法。優(yōu)先級(jí)天花板是當(dāng)任務(wù)申請(qǐng)某資源時(shí),把該任務(wù)的優(yōu)先級(jí)提升到可訪問這個(gè)資源的所有任務(wù)中的最高優(yōu)先級(jí),這個(gè)優(yōu)先級(jí)稱為該資源的優(yōu)先級(jí)天花板。這種方法簡(jiǎn)單易行,不必進(jìn)行復(fù)雜的判斷,不管任務(wù)是否阻塞了高優(yōu)先級(jí)任務(wù)的運(yùn)行,只要任務(wù)訪問共享資源都會(huì)提升任務(wù)的優(yōu)先級(jí)。在µC/OS-Ⅱ中,可以通過 OSTaskChangePrio()改變?nèi)蝿?wù)的優(yōu)先級(jí),但是改變?nèi)蝿?wù)的優(yōu)先級(jí)是很花時(shí)間的。如果不發(fā)生優(yōu)先級(jí)翻轉(zhuǎn)而提升了任務(wù)的優(yōu)先級(jí),釋放資源后又改回原優(yōu)先級(jí),則無形中浪費(fèi)了許多CPU時(shí)間,也影響了系統(tǒng)的實(shí)時(shí)性。優(yōu)先級(jí)繼承是當(dāng)任務(wù)A申請(qǐng)共享資源S時(shí),如果S正在被任務(wù)C使用,通過比較任務(wù)C與自身的優(yōu)先級(jí),如發(fā)現(xiàn)任務(wù)C的優(yōu)先級(jí)小于自身的優(yōu)先級(jí),則將任務(wù)C的優(yōu)先級(jí)提升到自身的優(yōu)先級(jí),任務(wù)C釋放資源S后,再恢復(fù)任務(wù)C的原優(yōu)先級(jí)。這種方法只在占有資源的低優(yōu)先級(jí)任務(wù)阻塞了高優(yōu)先級(jí)任務(wù)時(shí)才動(dòng)態(tài)的改變?nèi)蝿?wù)的優(yōu)先級(jí),如果過程較復(fù)雜,則需要進(jìn)行判斷。µC/OS-Ⅱ不支持優(yōu)先級(jí)繼承,而且其以任務(wù)的優(yōu)先級(jí)作為任務(wù)標(biāo)識(shí),每個(gè)優(yōu)先級(jí)只能有一個(gè)任務(wù),因此,不適宜在應(yīng)用程序中使用優(yōu)先級(jí)繼承。

在µC/OS-Ⅱ中,為解決優(yōu)先級(jí)翻轉(zhuǎn)影響任務(wù)實(shí)時(shí)性的問題,可以借鑒優(yōu)先級(jí)繼承的方法對(duì)優(yōu)先級(jí)天花板方法進(jìn)行改進(jìn)。對(duì)µC/OS-Ⅱ的使用,共享資源任務(wù)的優(yōu)先級(jí)不是全部提升,而是先判斷再?zèng)Q定是否提升。即當(dāng)有任務(wù)A申請(qǐng)共享資源S時(shí),首先判斷是否有別的的任務(wù)正在占用資源S,若無,則任務(wù)A繼續(xù)執(zhí)行,若有,假設(shè)為任務(wù)B正在使用該資源,

則判斷任務(wù)B的優(yōu)先級(jí)是否低于任務(wù)A,若高于任務(wù)A,則任務(wù)A掛起,等待任務(wù)B釋放該資源,如果任務(wù)B的優(yōu)先級(jí)低于任務(wù) A,則提升任務(wù)B的優(yōu)先級(jí)到該資源的優(yōu)先級(jí)天花板,當(dāng)任務(wù)B釋放資源后,再恢復(fù)到原優(yōu)先級(jí)。在µC/OS-Ⅱ中,每個(gè)共享資源都可看作一個(gè)事件,每個(gè)事件都有相應(yīng)的事件控制塊 ECB。在ECB中包含一個(gè)等待本事件的等待任務(wù)列表,該列表包括OSEventTbl[]和OSEventGrp兩個(gè)域,通過對(duì)等待任務(wù)列表的判斷可以很容易地確定是否有多個(gè)任務(wù)在等待該資源,同時(shí)也可判斷任務(wù)的優(yōu)先級(jí)與當(dāng)前任務(wù)優(yōu)先級(jí)的高低,從而決定是否需要用 OSTaskChangePio()來改變?nèi)蝿?wù)的優(yōu)先級(jí)。這樣,僅在優(yōu)先級(jí)有可能發(fā)生翻轉(zhuǎn)的情況下才改變?nèi)蝿?wù)的優(yōu)先級(jí),而且利用事件的等待任務(wù)列表進(jìn)行判斷,比用OSTaskChangePio()來改變?nèi)蝿?wù)的優(yōu)先級(jí)速度快,并占用較少的CPU時(shí)間,有利于系統(tǒng)實(shí)時(shí)性的提高。

參考文獻(xiàn):

[1]鄔可軍,朱銘鋯等.DSP實(shí)時(shí)多任務(wù)操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[M]. 北京:電子工業(yè)出版社, 2005.

[2]鐘堅(jiān)文,蔡旭.基于μC/OS-II的CAN總線驅(qū)動(dòng)程序設(shè)計(jì)[J].微計(jì)算機(jī)信息,2005,7-2:35-37.[!--empirenews.page--]

[3]Jean J.Labrosse著.邵貝貝等譯.嵌入式實(shí)時(shí)操作系統(tǒng)µC/OS-Ⅱ[M]第2版.北京,北京航空航天大學(xué)出版社,2003.5

[4]劉和平,王維俊等. TMS320LF240X DSP C語(yǔ)言開發(fā)應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社, 2003.

[5]TI.Code Composer User\'s Guide.SPRU509C.pdf

本站聲明: 本文章由作者或相關(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日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(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)閉