當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]引言自嵌入式系統(tǒng)開發(fā)以來,很長(zhǎng)時(shí)間都采用前后臺(tái)系統(tǒng)軟件設(shè)計(jì)模式:主程序?yàn)橐粋€(gè)無限循環(huán),單任務(wù)順序執(zhí)行。通過設(shè)置一個(gè)或多個(gè)中斷來處理異步事件。這種系統(tǒng)對(duì)于簡(jiǎn)單的應(yīng)

引言

自嵌入式系統(tǒng)開發(fā)以來,很長(zhǎng)時(shí)間都采用前后臺(tái)系統(tǒng)軟件設(shè)計(jì)模式:主程序?yàn)橐粋€(gè)無限循環(huán),單任務(wù)順序執(zhí)行。通過設(shè)置一個(gè)或多個(gè)中斷來處理異步事件。

這種系統(tǒng)對(duì)于簡(jiǎn)單的應(yīng)用是可以的,但對(duì)于實(shí)時(shí)性要求比較高的、處理任務(wù)較多的應(yīng)用,就會(huì)暴露出實(shí)時(shí)性差、系統(tǒng)可靠性低、穩(wěn)定性差等缺點(diǎn)。

μC/OS-II 是一種基于優(yōu)先級(jí)的搶占式多 任務(wù)實(shí)時(shí)操作系統(tǒng), 包含了實(shí)時(shí)內(nèi)核、任務(wù)管理、時(shí)間管理、任務(wù)間通信同步(信號(hào)量,郵箱,消息 隊(duì)列)和內(nèi)存管理等功能。它可以使各個(gè)任務(wù)獨(dú)立工作,互不干涉,很容易實(shí)現(xiàn)準(zhǔn)時(shí)而且無誤執(zhí)行,使實(shí)時(shí)應(yīng)用程序的設(shè)計(jì)和擴(kuò)展變得容易,使應(yīng)用程序的設(shè)計(jì)過程大為減化。而且它內(nèi)核源代碼公開,可移植性強(qiáng),為編程人員提供了很好的一個(gè)軟件平臺(tái)。通過μC/OS-II在P89V51RD2 上的移植,可以掌握移植和測(cè)試μC/OS-II 的實(shí)質(zhì)內(nèi)容,很容易將其移植到其它的CPU平臺(tái)上。

μC/OS-II 介紹

μC /OS-II是一個(gè)完整的、可移植、可固化、可裁剪的占先式實(shí)時(shí)多任務(wù)內(nèi)核。μC/OS-II絕大部分的代碼是用ANSI的C語言編寫的,包含一小部 分匯編代碼,使之可供不同架構(gòu)的微處理器使用。至今,從8位到6 4位,μC/OS-II已在超過40種不同架構(gòu)上的微處理器上運(yùn)行。μC/OS-II已經(jīng)在世界范圍內(nèi)得到廣泛應(yīng)用,包括很 多領(lǐng)域, 如 手機(jī)、路由器、集線器、不間斷電源、飛行器、醫(yī)療設(shè)備及工業(yè)控制 上。實(shí)際上,μC/OS-II已經(jīng)通過了非常嚴(yán)格的 測(cè)試,并且得到了美國航空管 理局(Federal Aviation Administration)的認(rèn)證,可以用在飛行器上。這說明μC/OS-II是穩(wěn)定可靠的,可用于與人性命攸關(guān)的安全緊要(safety critical)系統(tǒng)。除此以外,μC/OS-II 的鮮明特點(diǎn)就是源碼公開,便于移植和維護(hù)。

μC/OS-II 內(nèi)核結(jié)構(gòu)

多任務(wù)系統(tǒng)中,內(nèi)核負(fù)責(zé)管理各個(gè)任務(wù) ,或者說為每個(gè)任務(wù)分配CPU 時(shí)間 ,并且負(fù)責(zé)任務(wù)之間的通訊。內(nèi)核提供的基本服務(wù)是任務(wù)切換。 μC/OS-II可以管理多達(dá)64個(gè)任務(wù)。由于它的作者占用和保留了8個(gè)任務(wù),所以留給用戶應(yīng)用程序最多 可有56個(gè)任務(wù)。賦予各個(gè)任務(wù)的優(yōu)先級(jí)必須是不相同的。這意味著μC/OS-II不支持時(shí)間片輪轉(zhuǎn)調(diào)度法 (round-robin scheduli ng)。μC/OS-II為每個(gè)任務(wù)設(shè)置獨(dú)立的 堆棧空間,可以快速實(shí)現(xiàn)任務(wù)切換 。μC/OS-II近似地每時(shí)每刻總是讓優(yōu)先級(jí)最高的就緒任務(wù)處于運(yùn)行狀態(tài),為了保證這一點(diǎn),它在調(diào)用系統(tǒng)API 函數(shù)、中斷結(jié)束、定時(shí)中斷結(jié)束時(shí)總是執(zhí)行調(diào)度算法,μC/OS-II通過事先計(jì)算好數(shù)據(jù)簡(jiǎn)化了運(yùn)算量,通過精心設(shè)計(jì)就緒表結(jié)構(gòu)使得延時(shí)可預(yù)知。

P89V51RD2 微處理器介紹

P89V51RD2是Philips公司生產(chǎn)的一款80C51微控制器,包含64KB Flash和1024字節(jié)的數(shù)據(jù)RAM。P89V51RD2的典型特性是它的X2方式選項(xiàng)。利用該特性,設(shè)計(jì)者可使應(yīng)用程序以傳統(tǒng)的80C51時(shí)鐘頻率(每個(gè)機(jī)器周期包含12個(gè)時(shí)鐘)或X2 方式(每個(gè)機(jī)器周期包含6個(gè)時(shí)鐘)的時(shí)鐘頻率運(yùn)行,選擇X2方式可在相同時(shí)鐘頻率下獲得2倍的吞吐量。從該特性獲益的另一種方法是將時(shí)鐘頻率減半來保持特性不變,這 樣可以極大地降低EMI。Flash程序存儲(chǔ)器支持并行和串行在系統(tǒng)編程(ISP),ISP允許在軟件控制下對(duì)成品中的器件進(jìn)行重復(fù)編程。應(yīng)用固件的 產(chǎn)生/更新能力實(shí)現(xiàn)了ISP的大范圍應(yīng)用。 5V的工作電壓,操作頻率為0~40MHz。P89V51RD2的資源和ISP的功能使得它很適合用來做μC/OS-II的移植調(diào)試。并不需要購買仿真器和編程器等額外投資。

μC/OS-II 的移植

移植就是使μC/OS-II能在P89V51RD2上運(yùn)行。為了方便移植,大部分的μC/OS-II的代碼是用C語言編寫的;但是仍需要用C語言和匯編語言編寫一些處理器硬件相關(guān)的代碼,這是因?yàn)?mu;C/OS-II在讀/寫處理器寄存器時(shí),只能通過匯編語言來實(shí)現(xiàn)。由于μC/OS-II在設(shè)計(jì)時(shí)就已經(jīng)充分考慮了可移植性,所以μC/OS-II的移植相對(duì)來說是比較容易的。

硬件平臺(tái)構(gòu)成

由于P89V51RD2是一款80C51微控制器,片內(nèi)包含了64KB的FLASH程序存儲(chǔ)器,并且支持串行在線編程(ISP)。使它在ROM空間上很適合做μC/OS-II的移植。但是它片內(nèi)RAM空間很有限,只有1KB,不能滿足μC/OS-II對(duì)RAM的要求。但是由于P89V51RD2可以擴(kuò)展RAM空間,使這一問題得以解決。我們?yōu)樗鼣U(kuò)展了一片32KB的RAM來構(gòu)成移植μC/OS-II的硬件平臺(tái)。這樣P89V51RD2就滿足了移植μC/OS-II的所有要求。

編譯器的選擇

由于μC/OS-II絕大部分代碼是用標(biāo)準(zhǔn)的C語言編寫的,所以C語言開發(fā)工具對(duì)于μC/OS-II是必不可少的。由于μC/OS-II是一個(gè)可剝奪行的占先式內(nèi)核,所以要求C編譯器可以產(chǎn)生可重入型代碼。筆者選擇Keil C51集成開發(fā)環(huán)境作為開發(fā)工具。該開發(fā)工具有C編譯器,匯編器和鏈接定位器等工具構(gòu)成。鏈接器用來將不同模塊(編譯過或匯編過的文件)鏈接成目標(biāo)文件,定位器則允許將代碼和數(shù)據(jù)放置在目標(biāo)處理器的指定內(nèi)存中。Keil C51 還可以生成HEX格式的編程文件用于編程EPROM或是FLASH,同時(shí)可以實(shí)現(xiàn)完整軟件仿真支持。Keil C51支持所有8051變種的微控制器。通過設(shè)置編譯控制選項(xiàng),它完全可以滿足編譯μC/OS-II源代碼的要求。

可重入函數(shù)問題

可重入函數(shù)可以被一個(gè)以上的任務(wù)調(diào)用,而不必?fù)?dān)心數(shù)據(jù)被破壞??芍厝牒瘮?shù)任何時(shí)候都可以被中斷,一段時(shí)間后又可以繼續(xù)運(yùn)行,而相應(yīng)的數(shù)據(jù)不會(huì)丟失。由于μC/OS-II是搶占式的實(shí)時(shí)多任務(wù)內(nèi)核,同一個(gè)函數(shù)可能會(huì)被不同的任務(wù)調(diào)用,也可能會(huì)被中斷,因此,移植μC/OS-II要求C語言編譯器可以產(chǎn)生可重入函數(shù)。但是正常情況下Keil C51編譯器中的函數(shù)不能重入。原因是由于8051系列微控制 器的硬件堆棧很小,硬件堆棧指針SP最多只能在內(nèi)部256字節(jié)的RAM內(nèi)移動(dòng),不能夠指向64K的外部RA M空間。所以編譯器使用固定的RAM地址來存儲(chǔ)函數(shù)的參數(shù)和局部變量,而不是使用堆棧來存儲(chǔ)。為了在Keil C51中實(shí)現(xiàn)可重入函數(shù),可以使用“reentrant”關(guān)鍵字聲明該函數(shù)是可重入的。編譯器可根據(jù)編譯模式為可重入函數(shù)在內(nèi)部RAM或外部RAM空間開辟一個(gè)模擬堆棧來存儲(chǔ)可重入函數(shù)的參數(shù)和局部變量。可重入函數(shù)的返回地址仍然保存在硬件堆棧中。Cx51編譯手冊(cè)不推薦使用模擬堆棧,原因是受8051尋址方式的限制,模擬堆棧訪問的效率很低。但是這是在Keil C51中實(shí)現(xiàn)可重入函數(shù)的唯一方法??芍厝牒瘮?shù)模擬堆棧擁有獨(dú)立于硬件堆棧指針的模擬堆棧指針。模擬堆棧及其指針在啟動(dòng)代碼文件“STARTUP.A51”中定義和初始化。[!--empirenews.page--]

μC/OS-II源文件移植

在了解了P89V51RD2微處理器和Keil C51 編譯器的技術(shù)細(xì)節(jié)的基礎(chǔ)上,就可以開始μC/OS-II源文件移植的工作了。真正編寫移植代碼的工作就相對(duì)比較簡(jiǎn)單了。圖1表示了基于μC/OS-II的應(yīng)用的系統(tǒng)結(jié)構(gòu)結(jié)構(gòu)。由圖1可以看出由于μC/OS-II自生的絕大部分代碼是使用ANSI C編寫的,而且代碼的層次結(jié)構(gòu)十分干凈,與平臺(tái)相關(guān)的移植代碼僅僅存在于OS_CPU_A.ASM、OS_CPU_C.C以及OS_CPU.H這三個(gè)文件當(dāng)中。下面分別解釋各個(gè)文件在P89V51RD2上的移植。

圖1 μC/OS-II軟件體系結(jié)構(gòu)和各模塊之間的關(guān)系

μC/OS-II中與處理器CPU 類型無關(guān)的代碼:uCOS_II.H和uCOS_II.C,其中uCOS_II.C 文件包含以下文件:OS_CORE.C OS_TASK.C OS_TIME.C OS_SEM.C OS_MBOX.C OS_MUTEX.C 和OS_FLAG.C 也就是說原則上這些文件可以直接添加不用修改。但是由于Keil C51編譯器的特殊性,這些代碼仍要多處改動(dòng),因?yàn)镵eil C51缺省情況下編譯的代碼不可重入而多任務(wù)系統(tǒng)要求并發(fā)操作導(dǎo)致重入,所以要在每個(gè)C 函數(shù)及其聲明后標(biāo)注reentrant 關(guān)鍵字,另外“pdata” 和“data” 在uCOS中用做一些函數(shù)的形參,但它同時(shí)又是Keil C51 的關(guān)鍵字,會(huì)導(dǎo)致編譯錯(cuò)誤。我通過把“pdata”改成“ppdata”,“data”改成“ddata”解決了此問題。OSTCBCur、OSTCBHighRdy、OSRunning、OSPrioCur、OSPrioHighRdy 這幾個(gè)變量在匯編程序中用到了,為了使用寄存器R0或R1訪問而不用DPTR,應(yīng)該用Keil C51擴(kuò)展關(guān)鍵字IDATA將它們定義在內(nèi)部RAM中。

OS_CPU.H的移植

OS_CPU.H包括了用#define語句定義的、與處理器相關(guān)的常數(shù)、宏及類型。因?yàn)椴煌奶幚砥饔胁煌淖珠L(zhǎng),所以μC/OS-II的移植包括的一系列數(shù)據(jù)類型定義,以確保其可移植性。μC/OS-II代碼不使用語言中的short,int,及l(fā)ong等數(shù)據(jù)類型,因?yàn)樗鼈兪桥c編譯器相關(guān)的,是不可移植的。采用定義的整形數(shù)據(jù)結(jié)構(gòu)等既是可移植的,又很直觀。參考Cx51編譯手冊(cè),可以完成OS_CPU.H里所有數(shù)據(jù)類型的定義。

與所有的實(shí)時(shí)內(nèi)核一樣,μC/OS-II需要先關(guān)中斷,再處置臨界段代碼,并且在處置完畢后重新開中斷。這樣可以保護(hù)臨界段代碼免受多任務(wù)或中斷服務(wù)子程序的破壞。為了隱藏不同編譯器提供的不同的關(guān)中斷和開中斷的實(shí)現(xiàn)方法,增強(qiáng)可移植性,μC/OS-II在OS_CPU.H中定義了2個(gè)宏,來開中斷和關(guān)中斷:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()。根據(jù)P89V51RD2的結(jié)構(gòu)和Keil C51提供的方法,我們通過置位或清零中斷允許位來實(shí)現(xiàn)。

代碼如下:

OS_ENTER_CRITICAL() EA="0"

OS_EXIT_CRITICAL() EA="1"

MCS-51 堆棧從下往上增長(zhǎng)(1=向下0=向上) ,OS_STK_GROWTH 定義為0。

OS_TASK_SW() OSCtxSw() ,因?yàn)镻89V51RD2沒有軟中斷指令所以用程序調(diào)用代替。在用匯編語言編寫的OSCtxSw()中,模擬系統(tǒng)產(chǎn)生中斷時(shí)的堆棧操作。以保證系統(tǒng)任務(wù)的正確切換。

OS_CPU_C.C的移植

μC/OS-II的移植要求用戶在OS_CPU_C.C中編寫10個(gè)簡(jiǎn)單的C函數(shù)。但唯一必要的μC/OS-II的移植要求用戶在OS_CPU_C.C中編寫10個(gè)簡(jiǎn)單的C函數(shù)。但唯一必要的是OSTaskStkInit(),其他九個(gè)必須聲明,但不一定要任何程序代碼。

OSTaskStkInit()是在系統(tǒng)創(chuàng)建任務(wù)時(shí)用來初始化任務(wù)堆棧的,使堆??雌饋砭拖笾袛鄤偘l(fā)生一樣,所有寄存器都保存在堆棧中。由于P89V51RD2硬件堆棧很小,最多只能有在內(nèi)部RAM空間的256字節(jié)。因此很難將所有任務(wù)的堆棧都用硬件堆棧來實(shí)現(xiàn)。為了解決這個(gè)問題,我們?yōu)槊總€(gè)任務(wù)在外部RAM空間都分配一段連續(xù)的存儲(chǔ)區(qū),用來模擬每個(gè)任務(wù)的堆棧。

在μC/OS-II進(jìn)行任務(wù)切換時(shí),首先將P89V51RD2硬件堆棧中的內(nèi)容復(fù)制到要失去CPU擁有權(quán)的任務(wù)的外部模擬堆棧區(qū),然后將要得到CPU擁有權(quán)的任務(wù)的外部模擬堆棧中的有效數(shù)據(jù)復(fù)制到P89V51RD2的硬件堆棧中。這樣就實(shí)現(xiàn)了任務(wù)保護(hù)和切換。任務(wù)模擬堆棧和硬件的堆棧結(jié)構(gòu)如圖2所示。TCB 結(jié)構(gòu)體中OSTCBStkPtr 總是指向用戶堆棧最低地址,該地址空間內(nèi)存放用戶堆棧長(zhǎng)度,其上空間存放系統(tǒng)堆棧映像,即:任務(wù)模擬堆??臻g大小=系統(tǒng)硬件堆棧空間大小+1。SP 總是先加1再存數(shù)據(jù),因此SP初始時(shí)指向系統(tǒng)堆棧起始地址(OSStack)減1 處(OSStkStart)。很明顯系統(tǒng)硬件堆棧存儲(chǔ)空間大小=SP-OSStkStart。編寫OSTaskStkInit()主要完成用戶堆棧初始化,從下向上依次保存用戶堆棧長(zhǎng)度(5),PCL, PCH,PSW, AC C,B, DPL, DPH,R0,R1, R2,R3,R4,R5,R6,R7。不保存SP,任務(wù)切換時(shí)根據(jù)用戶堆棧長(zhǎng)度計(jì)算得出。緊接著的兩字節(jié)保存可重入函數(shù)仿真堆棧的指針X_CP的高8位和低8位,初始化為任務(wù)模擬棧的最高地址的高8位和低8位。OSTaskStkInit()總是返回任務(wù)模擬棧的最低地址。

圖2 P89V51RD2移植μC/OS-II的堆棧結(jié)構(gòu)

OS_CPU_A.ASM的移植

OS_CPU_A.ASM的移植要求用戶編寫4個(gè)簡(jiǎn)單的匯編語言函數(shù):

OSStartHighRdy()

OSCtxSw()

OSIntCtxSw()

OSTickISR()

μ C/OS-II的啟動(dòng)函數(shù)OSStart()調(diào)用OSStartHighRdy()來使就緒態(tài)任務(wù)中 優(yōu)先級(jí)最高的任務(wù)開始運(yùn)行,我們通過將任務(wù)模擬棧的有效長(zhǎng)度內(nèi)的數(shù)據(jù)復(fù)制到系統(tǒng)硬件堆棧,然后使用緊接著的兩字節(jié)來改寫X_CP的值。使可重入函數(shù)仿真堆棧指針指向該任務(wù)模擬棧的最高地址,這樣做是因?yàn)镵eil C51使用的可重入函數(shù)仿真堆棧的增長(zhǎng)方向是向下的,和系統(tǒng)硬件堆棧的增長(zhǎng)方向相反。這樣就完成了OSStartHighRdy()的移植。

OSCtxSw()和OSIntCtxSw()兩個(gè)匯編函數(shù)的功能主要完成任務(wù)的切換。不同的是OSCtxSw()在任務(wù)級(jí)調(diào)用,而OSIntCtxSw()是在中斷推出時(shí)調(diào)用。

對(duì)于在P89V51RD2上的移植而言,這兩個(gè)函數(shù)的實(shí)現(xiàn)基本相同。只是OSIntCtxSw()在中斷調(diào)用中 由于OSIntExit()和自身對(duì)硬件堆棧的影響,需要將要保存的SP指針向下調(diào)整4個(gè)字節(jié),以消除影響。μC/OS-II在需要任務(wù)切換時(shí),根據(jù)CPU是否處在中斷狀態(tài)選擇調(diào)用其中一個(gè)函數(shù)。如圖2堆棧結(jié)構(gòu) 所示,任務(wù)切換時(shí)先保存當(dāng)前任務(wù)堆棧內(nèi)容,方法是:用SP-OSStkStart 得出保存字節(jié)數(shù)。[!--empirenews.page--]

將其寫入任務(wù)模擬堆棧最低地址內(nèi)。以任務(wù)模擬堆棧最低地址為起址,以O(shè)SStkStart為系統(tǒng)硬件堆棧起址,由系統(tǒng)堆棧向用戶堆棧拷貝數(shù)據(jù)。循環(huán)SP-OSStkStart次,每次拷貝前先將各自棧指針增1。其次恢復(fù)最高優(yōu)先級(jí)任務(wù)系統(tǒng)堆棧方法是:獲得最高優(yōu)先級(jí)任務(wù)用戶堆棧最低地址,從中取出長(zhǎng)度。以最高優(yōu)先級(jí)任務(wù)用戶模擬堆棧最低地址為起址,以O(shè)SStkStart 為系統(tǒng)堆棧起址,由任務(wù)模擬堆棧向系統(tǒng)堆??截悢?shù)據(jù)。循環(huán)“有效長(zhǎng)度”數(shù)值指示的次數(shù)。每次拷貝前先將各自棧指針增1。

μC/OS-II要求用戶提供一個(gè)周期性的時(shí)鐘源,來實(shí)現(xiàn)時(shí)間的延遲和超時(shí)功能。在P89V51RD2中我們通過定時(shí)器T0來提供時(shí)鐘源。頻率設(shè)為50Hz。T0的初始化函數(shù)在OS_CPU_C.C實(shí)現(xiàn)。時(shí)鐘節(jié)拍中斷服務(wù)子程序的編寫也很簡(jiǎn)單,示意性代碼如下:

void OSTickISR(void)

{

保存處理器寄存器;

調(diào)用OSIntEnter();

定時(shí)器計(jì)數(shù)器重裝;

調(diào)用OSTimeTick();

調(diào)用OSIntExit();

恢復(fù)處理器寄存器;

執(zhí)行中斷返回指令;

}

μC/OS-II 移植代碼的測(cè)試

完成μC/OS-II移植后,就要對(duì)移植的代碼進(jìn)行測(cè)試。測(cè)試移植的μC/OS-II是否能夠完成任務(wù)調(diào)度、時(shí)間管理、任務(wù)管

理與同步等功能,是否能夠啟動(dòng)多 任務(wù)環(huán)境。在P89V51RD2的移植中,編寫簡(jiǎn)單的測(cè)試程序進(jìn)行多任務(wù)的測(cè)試。測(cè)試程序創(chuàng)建了4任務(wù),任務(wù)AA,BB,CC和LedFlash優(yōu)先級(jí)分別為2,3,4,5。任務(wù)AA延時(shí)一秒通過串口輸出一 次,任務(wù)BB延時(shí)3秒通過串口輸出一次,任務(wù)CC延時(shí)6秒通過串口輸出一次。

LedFlash等待信號(hào)量有效時(shí),對(duì)P1.1口進(jìn)行一次取反操作。P1.1連接LED驚醒觀察。定時(shí)器中斷服務(wù)子 程序定時(shí)發(fā)出信號(hào)量。這樣任務(wù)LedFlash實(shí)現(xiàn)LED的閃爍功能。

μC/OS-II測(cè)試程序的文件結(jié)構(gòu),硬件測(cè)試結(jié)果和Keil C51的軟件仿真結(jié)果如圖3所示。結(jié)果表明μC/OS-II在P89V51RD2上 的移植是成功的。

圖3 μC/OS-II的測(cè)試程序的文件結(jié)構(gòu),軟件仿真和硬件運(yùn)行測(cè)試結(jié)果

結(jié)語

通過μC/OS-II在P89V51RD2上的移植,掌握了μC/OS-II內(nèi)核的工作原理和移植方法,測(cè)試程序表明移植代碼可以穩(wěn)定可靠的運(yùn)行,實(shí)現(xiàn)了多任務(wù)的管理和調(diào)度。μC/OS-II實(shí)時(shí)操作系統(tǒng)的移入,不但可以提高系統(tǒng)的實(shí)時(shí)性、可靠性和穩(wěn)定性,還提高了應(yīng)用軟件的可移植性,降低了開發(fā)人員的工作量。

本站聲明: 本文章由作者或相關(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日 /美通社/ -- 英國汽車技術(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中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

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

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

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

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(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)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(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)閉