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

當(dāng)前位置:首頁 > 公眾號精選 > 技術(shù)讓夢想更偉大
[導(dǎo)讀]嵌入式架構(gòu)有多重要? 要做到嵌入式應(yīng)用的代碼邏輯清晰, 且避免重復(fù)的造輪子, 沒有好的應(yīng)用架構(gòu)怎么行? 如果沒有好的架構(gòu), 移植將會是一件很痛苦的事情。

嵌入式架構(gòu)有多重要?

要做到嵌入式應(yīng)用的代碼邏輯清晰,
且避免重復(fù)的造輪子,

沒有好的應(yīng)用架構(gòu)怎么行?

如果沒有好的架構(gòu),
移植將會是一件很痛苦的事情。

如果沒有好的架構(gòu),
復(fù)用是最大的難題,
沒法更大限度的復(fù)用原有的代碼。

如果沒有好的架構(gòu),
一旦驅(qū)動改了,
所有的地方都要改,
費時費力且很容易出錯。

如果沒有好的架構(gòu),
應(yīng)用層中穿插著硬件驅(qū)動層的代碼,
看著會是一片混亂,
邏輯不清,
代碼維護(hù)起來會很困難。

嵌入式架構(gòu)搭建好了,才能體現(xiàn)出編程之美 ……

01

嵌入式系統(tǒng)的基本架構(gòu)

嵌入式系統(tǒng)一般由軟件和硬件兩個部分組成,基中嵌入式處理器、存儲器和外部設(shè)備構(gòu)成整個系統(tǒng)的硬件基礎(chǔ)。嵌入式系統(tǒng)的軟件部分可以分為三個層次,分別是系統(tǒng)軟件、支撐軟件和應(yīng)用軟件,其中系統(tǒng)軟件和支撐軟件是基礎(chǔ),應(yīng)用軟件是最能體現(xiàn)整個嵌入式系統(tǒng)的特點和功能部分。

硬件架構(gòu)

嵌入式系統(tǒng)的核心部件是各種類型的 嵌入式處理器

(1)嵌入式微處理器:在功能上跟普通微處理器基本一致,但是它具有體積小、功耗低、成本低及可靠性高的優(yōu)點。

(2)嵌入式微控制器:雙稱單片機,一般以某一種微處理器內(nèi)核為核心,整個計算機系統(tǒng)都集成到一塊芯片中,與嵌入式微處理器相比,最大特點是單片化。

(3)嵌入式數(shù)字信號處理器:一種專門用于信號處理的處理器,DSP(Digital Signal Processor)是芯片內(nèi)部采用程序和數(shù)據(jù)分開的結(jié)構(gòu),具有專門的硬件乘法器,廣泛采用流水線操作,提供特殊的DSP指令。

(4)嵌入式片上系統(tǒng):一種在一塊芯片上集成很多功能模塊的復(fù)雜系統(tǒng),在大量生產(chǎn)時,生產(chǎn)成本也遠(yuǎn)遠(yuǎn)低于單片部件組成的電路板系統(tǒng)。


軟件架構(gòu)



大多數(shù)人參與的是
嵌入式軟件設(shè)計 ,更多的是接觸的是上層軟件系統(tǒng)部分,可以分為兩大類型嵌入式軟件應(yīng)用工程師以及嵌入式驅(qū)動工程師。


前者主要負(fù)責(zé) linux APP 設(shè)計,負(fù)責(zé)應(yīng)用層業(yè)務(wù)開發(fā),主要具備如下幾個專業(yè)技能:

1.熟悉網(wǎng)絡(luò)編程、TCP/IP協(xié)議、IIC、SPI協(xié)議
2.熟悉多線程管理、進(jìn)程間通信、文件IO操作
3.了解基本的shell編程
4.熟悉數(shù)據(jù)庫操作
5.了解QT或者Android


后者負(fù)責(zé)驅(qū)動開發(fā),更加涉及底層。

1.熟悉uboot和Linux內(nèi)核,完成Linux內(nèi)核裁剪定制以及系統(tǒng)的固件更新
2.熟悉Linux驅(qū)動模型
3.熟悉ARM架構(gòu)
4.熟悉基本的電路原理

02
嵌入式程序設(shè)計思路


現(xiàn)在的小朋友都愛玩搭積木的游戲,一個模塊一個模塊的拼裝起來,快速組成各種不同的模型?,F(xiàn)在的產(chǎn)品設(shè)計也很少從零開始。大都復(fù)用現(xiàn)有成熟的模塊,專注于某個擅長領(lǐng)域。

我的嵌入式應(yīng)用架構(gòu)思路來源與此,即功能模塊設(shè)計與分層。

把API分為驅(qū)動層和應(yīng)用層API,而不是所有程序都調(diào)用驅(qū)動層API。(整個應(yīng)用中都調(diào)用驅(qū)動層API會導(dǎo)致應(yīng)用中驅(qū)動調(diào)用隨處可見,無法移植和最大限度的復(fù)用)

先把一個應(yīng)用進(jìn)行功能模塊劃分,并對整體結(jié)構(gòu)進(jìn)行分層,然后設(shè)計出功能獨立的各個模塊(如算法模塊,文件庫模塊,通信庫模塊),在模塊之上開放公共接口。

驅(qū)動層提供出公共接口供上層調(diào)用。各個功能模塊可以獨立編譯(如算法模塊純ANSI C,可在任意平臺復(fù)用),或者調(diào)用驅(qū)動層接口(文件庫模塊調(diào)用了驅(qū)動讀寫Flash),總而言之,言而總之,封裝出各個功能獨立的可復(fù)用的功能模塊。

總體分:硬件驅(qū)動層-->功能模塊層-->應(yīng)用接口層-->業(yè)務(wù)邏輯層-->應(yīng)用層

總體結(jié)構(gòu)示意框圖:


應(yīng)用層,為程序的總體的運行框架,組織調(diào)用業(yè)務(wù)邏輯??梢杂媚撤N嵌入式操作系統(tǒng)實現(xiàn)幾種任務(wù) 。如定時任務(wù),卡處理任務(wù),菜單任務(wù),通信任務(wù)。

業(yè)務(wù)邏輯層,如CPU卡處理,交通部卡處理,銀聯(lián)卡處理,M1卡處理,通信記錄上傳,黑名單下載,票價參數(shù)下載等。

應(yīng)用接口層,提供公共的api接口供應(yīng)用接口供上層調(diào)用。這些接口也可由下層的功能模塊開放出來,應(yīng)用接口層負(fù)責(zé)匯總。

功能模塊層,可以封裝不同的功能模塊。如算法庫,文件庫,通信庫,銀聯(lián)庫,向上提供應(yīng)用接口層的接口,向下調(diào)用驅(qū)動接口。

硬件驅(qū)動層,由各個驅(qū)動模塊組成,向上提供統(tǒng)一的接口。

遵循一些約定:

1.每個模塊提供出的接口要統(tǒng)一,后續(xù)只能增,不能改原來的接口。
2.模塊與模塊之間相互獨立,互不影響,不能相互調(diào)用,只能調(diào)用它下層的接口。
3.由模塊構(gòu)成層,層與層之間不能跨級調(diào)用。如在應(yīng)用層中不能看到直接調(diào)用驅(qū)動層的代碼。
4.模塊中又可以繼續(xù)分層,如接口層,驅(qū)動層,硬件層。

如果驅(qū)動變動了,或者換不同平臺,只需更改驅(qū)動層,應(yīng)用層不受影響。
如果功能模塊變動了,只需升級功能功能模塊,其他的模塊不受影響,應(yīng)用層也不受影響。

按照這種邏輯設(shè)計好之后,主要的工作就是在業(yè)務(wù)邏輯層。應(yīng)用層則為程序的總體流程和框架,主要調(diào)用業(yè)務(wù)邏輯層實現(xiàn)不同的功能。

我們現(xiàn)在的代碼結(jié)構(gòu),基本是按這個思路來的。

硬件驅(qū)動層-->功能模塊層-->應(yīng)用接口層-->業(yè)務(wù)邏輯層-->應(yīng)用層。

看看以下兩種風(fēng)格的代碼,你更喜歡哪個。


另一種風(fēng)格:


同樣是保存參數(shù),非要拆成 AlgCRC16  ,WritePraFlash( (unsigned char *)&NetPra , NETPRA_ADDR , sizeof(_NetPra) )兩步嗎?

還有AH_Para_Verify這個,在應(yīng)用層中真是多余啊,檢測失敗又從Flash讀取。關(guān)于參數(shù),一開機就應(yīng)該檢測合法性了。


既然都是要保存參數(shù),就應(yīng)該做個封裝,如上圖所示,把系統(tǒng)用到的不同參數(shù)做個規(guī)劃。應(yīng)用層調(diào)用APP_Open_UseFile 或者APP_Read_UseFile,
而不是直接的去讀寫Flash。

來看看赫赫有名的谷歌的android架構(gòu),雖然很復(fù)雜,但從框圖上看,也像是搭積木,各個功能模塊獨立,層次分明。最低層建立在linux Kernel基礎(chǔ)上,然后是各個組件庫libraries,再往上是應(yīng)用框架和應(yīng)用。


以NC_FileLib,文件庫模塊為例,如果要用在其他平臺,如EH0918手持機設(shè)備,只需要移植幾個硬件層接口即可。

休息一下,推薦一篇文章《怎樣混好嵌入式/MCU/ARM/DSP這一行?》


03
一個引以為戒的實例


一、錯誤的示范

近公司新招了一個做嵌入式軟件開發(fā)的同事,該同事是從上海的某一個上市公司出來的,因為我們這邊人手不夠,因此把他安排了去負(fù)責(zé)一個新產(chǎn)品的研發(fā),前期讓他負(fù)責(zé)加速度計、NB-IOT、舵機、外置Flash的功能測試,測試完成之后,準(zhǔn)備讓他做一個該產(chǎn)品的概要設(shè)計。然后他花了2個星期的時間,給我們寫出來一個概要設(shè)計,說實話,我看到這個概要設(shè)計,我就覺得是剛畢業(yè)的大學(xué)生寫的。

版本一的架構(gòu)設(shè)計

2.1系統(tǒng)體系結(jié)構(gòu)
系統(tǒng)分為兩層:硬件驅(qū)動層、應(yīng)用層。
2.1.1硬件驅(qū)動層
硬件驅(qū)動層包含板載硬件資源正常運行所需的所有驅(qū)動程序。
1)MCU初始化
2)I2C數(shù)據(jù)存取
3)SPI數(shù)據(jù)讀取
4)加速度計初始化
5)藍(lán)牙模塊啟動
6)BC95模塊啟動
7)485通訊模塊啟動
2.2.2應(yīng)用層
1)Mcu運行模式切換
2)震動及傾斜
3)數(shù)據(jù)解析
4)開/關(guān)鎖
5)數(shù)據(jù)發(fā)送
6)歷史數(shù)據(jù)保存

看到版本一的架構(gòu)設(shè)計之后,說實話,我還是第一次見到這樣來寫架構(gòu)設(shè)計的,居然是以序號來寫的,這個讓別人讀起來,特別的別扭。

版本二的架構(gòu)設(shè)計


看到版本二的架構(gòu)設(shè)計之后,雖然頗感欣慰,但是想到達(dá)到我們所要求的,還要很大的一段距離,該架構(gòu)設(shè)計,主要有以下幾點問題:

1.對架構(gòu)的理解還不是很清晰,既然是做架構(gòu)設(shè)計,那就應(yīng)該從整體來看,而不是僅僅只是局限于一個模塊,或者功能里面。

2.還是每個層次的理解也還不是很清晰,比如講MCU的初始化,歸于硬件驅(qū)動層里面。MCU的初始化,嚴(yán)格意義上來說,是屬于流程的一部分了,而不是驅(qū)動。比如電腦的開啟啟動,把這個歸于硬件的驅(qū)動里面,肯定是屬于牛頭不對馬嘴的。

3.還有就是各個模塊的啟動,也是不能屬于硬件驅(qū)動層的,也都是業(yè)務(wù)流程的一部分了,都不應(yīng)該屬于驅(qū)動層的一部分

4.還有就是總線數(shù)據(jù)的讀寫,雖然驅(qū)動的作用也就是讀寫,但是數(shù)據(jù)總線的讀寫不能寫成硬件驅(qū)動。

5.應(yīng)用層的系統(tǒng)參數(shù)初始化,也還是屬于流程。

6.數(shù)據(jù)的解析和數(shù)據(jù)的發(fā)生,都是屬于通信功能里面的,不應(yīng)該單獨獨立出來,屬于單個的應(yīng)用。

二、更改版基本框架圖

(1)架構(gòu)設(shè)計的目的

1.應(yīng)用的代碼邏輯清晰,且避免重復(fù)造輪子。
2.如果沒有好的架構(gòu),移植將會是一件很痛苦的事情,因此一個好的架構(gòu)設(shè)計,方便軟件的移植。
3.最大限度地復(fù)用。
4.高內(nèi)聚低耦合。


(2)設(shè)計思路

如何把硬件的驅(qū)動和一個功能封裝成一個個的模塊,然后可以像小朋友搭積木一個,一個個模塊可以快速的拼接起來,組成一個個不同的模型。

我們的嵌入式架構(gòu)思路也是來源于此,即功能模塊化設(shè)計、分層設(shè)計。

這個設(shè)計和WEB開發(fā)的MVC模式類似,都是注重分層設(shè)計。

模塊化設(shè)計:將收集到的需求,進(jìn)行歸類,總結(jié)和分析,將這些需求概括為一個個單獨的功能,每一個功能,做成一個單獨的功能模塊。

分層設(shè)計一句話不好直接表達(dá),其主要體現(xiàn)在一下幾方面:
1.功能模塊對外調(diào)用的模塊封裝成一個個API,將底層驅(qū)動做個API以供功能模塊調(diào)用。(各個功能模塊可以獨立編譯(如通信模塊純ANSI C,可在任意平臺復(fù)用),或者調(diào)用驅(qū)動層接口(日志庫模塊調(diào)用了驅(qū)動讀寫Flash),總而言之,言而總之,封裝出各個功能獨立的可復(fù)用的功能模塊。)
2.API分為驅(qū)動層API和應(yīng)用層API,而不是所有程序都調(diào)用驅(qū)動層API。(整個應(yīng)用中都調(diào)用驅(qū)動層API會導(dǎo)致應(yīng)用中驅(qū)動調(diào)用隨處可見,無法移植和最大限度的復(fù)用)

總體分 硬件驅(qū)動層-->功能模塊層-->業(yè)務(wù)邏輯層-->應(yīng)用層

總體結(jié)構(gòu)示意框圖:


說明:

1.層與層之間不能跨層調(diào)用。
2.模塊與模塊各自獨立,無依賴關(guān)系。
3.模塊提供統(tǒng)一的接口供上層調(diào)用,模塊的內(nèi)外接口分明。
4.模塊的功能只能增,不能改。
5.各個功能模塊層也還可以進(jìn)行繼續(xù)分層,比如接口層、驅(qū)動層、硬件層。

(3)模塊層次說明

硬件驅(qū)動層

硬件驅(qū)動層包含板載硬件資源正常運行所需的所有驅(qū)動程序并提供API給功能模塊調(diào)用。

功能模塊層

功能模塊層包括實現(xiàn)具體功能的函數(shù),通過調(diào)用驅(qū)動層API實現(xiàn)相應(yīng)功能,同時提供可調(diào)用的API給業(yè)務(wù)邏輯層。

業(yè)務(wù)邏輯層

業(yè)務(wù)邏輯層包括產(chǎn)品整體功能的各個業(yè)務(wù)流程,通過調(diào)用功能模塊層的API實現(xiàn)。

應(yīng)用層

應(yīng)用層將各個業(yè)務(wù)邏輯進(jìn)行整合調(diào)用,完成整個產(chǎn)品的功能。

(4)優(yōu)勢

如果驅(qū)動變動了,或者換不同平臺,只需更改驅(qū)動層,應(yīng)用層不受影響。

如果功能模塊變動了,只需升級相應(yīng)的功能模塊,其他的模塊不受影響,應(yīng)用層也不受影響。

按照這種邏輯設(shè)計好之后,主要的工作就是在業(yè)務(wù)邏輯層。應(yīng)用層則為程序的總體流程和框架,主要調(diào)用業(yè)務(wù)邏輯層實現(xiàn)不同的功能。


04
給嵌入式代碼也來個分層


一、遇到的問題


代碼結(jié)構(gòu)也會有缺陷:

(1)開發(fā)效率低:每次使用片內(nèi)的某一資源(例如定時器等),筆者都要去查詢CC2430中文手冊,比較eggache~
(2)代碼重復(fù)較多:每個實驗源碼中,諸如 xtal_init ,led_init 等初始化函數(shù)每次都要編寫
(3)不易修改:代碼中的業(yè)務(wù)邏輯與SFR的操作混在一起,可讀性較差,修改起來也費力

正是由于以上問題,筆者決定暫停了該系列博文的續(xù)寫,抽出時間來思考一下解決辦法。

二、由網(wǎng)站分層引起的思考


筆者在學(xué)習(xí)嵌入式編程之前,曾有過 ASP.NET 網(wǎng)站開發(fā)經(jīng)驗,對其分層理論也有所實踐,下面簡單提一下:

一般的有一定復(fù)雜度的網(wǎng)站可分為以下三層:

(1)數(shù)據(jù)接入層(DAL):負(fù)責(zé)與數(shù)據(jù)庫的交互,供業(yè)務(wù)邏輯層調(diào)用
(2)業(yè)務(wù)邏輯層(BLL):調(diào)用數(shù)據(jù)接入層以獲取數(shù)據(jù),并為具體的業(yè)務(wù)需求提供支持
(3)用戶界面層(UIL):負(fù)責(zé)呈現(xiàn)最終的用戶界面

總之,分層以后,大大提高了代碼的復(fù)用性與擴展性。

那么在嵌入式開發(fā)中,能否也利用分層的思想,來提高開發(fā)效率,增強其可維護(hù)性與可擴展性呢?下面,是一些筆者思考后的淺見。


三、嵌入式項目也來分個層


當(dāng)然不能照搬ASP.NET 的具體分層思想,具體問題得具體分析嘛~

首先,嵌入式開發(fā)的核心就是芯片,它提供固定的片內(nèi)資源共開發(fā)者使用。而且它具有一個很重要的特點就是,不隨項目的需求變動而變動。所以應(yīng)將其作為最底層,為上層提供基礎(chǔ)支持。我們將其命名為 硬件抽象層(Hardware Abstract Layer)。

芯片有了當(dāng)然還不夠,通常我們會在片外擴展一些功能模塊來滿足具體的項目需求,例如:傳感器、鍵盤、LCD屏等。這一層的特點是,隨項目的變動而以模塊為單位動態(tài)增減。這一層的運作需要芯片內(nèi)部資源的支持,所以應(yīng)處于硬件抽象層之上,并為上層調(diào)用。我們將其命名為 功能模塊層(Functional Module Layer)。

OK,現(xiàn)在原材料都準(zhǔn)備齊了:芯片+擴展模塊,接下來就要開始真正的加工了:我們需要靈活調(diào)用之前兩層所提供的接口,實現(xiàn)具體的項目需求。我們將其命名為應(yīng)用程序?qū)樱ˋpplication Layer)。

圖文:



(1)硬件抽象層(HAL)


實現(xiàn)對片內(nèi)資源 (如定時器、ADC、中斷、I/O等) 的通用配置,隱藏具體的SFR操作細(xì)節(jié),為上層提供簡單清晰的調(diào)用接口。


嵌入式開發(fā)的核心就是芯片,它提供固定的片內(nèi)資源(常用的有I/O,ISR,TIMER等,稍微好點的還有ADC,SPI等硬件資源,不需要芯片外圍ADC采集芯片或模擬SPI)共開發(fā)者使用。而且它具有一個很重要的特點就是,不隨項目的新增需求變動而變動。所以應(yīng)將其作為最底層,為上層提供基礎(chǔ)支持。

(2)硬件驅(qū)動層(HDL)

嵌入式開發(fā)基本都會使用片外資源,如AT24C02,W25Q128等常見的外圍EEPROM芯片,需要SPI通信(硬件SPI或I/O模擬的SPI)發(fā)送相應(yīng)指令驅(qū)動該芯片,實現(xiàn)該芯片能正常工作。因此驅(qū)動這部分的API函數(shù)實現(xiàn)程序即為硬件驅(qū)動層。即使換了MCU,也只需將調(diào)用過硬件抽象層的API函數(shù)替換即可。

(3)功能模塊層(FML)


通過調(diào)用 HAL,實現(xiàn)項目中所涉及到的各片外功能模塊,隱藏具體的模塊操作細(xì)節(jié),并為上層提供簡單清晰的調(diào)用接口。


硬件抽象層和驅(qū)動層主要就是為功能模塊層提供的,實現(xiàn)該項目需要的功能,比如KEY、LED和EEPROM等功能,其中LEY、LED基本調(diào)用硬件抽象層的API函數(shù)(更復(fù)雜的可能通過片外芯片獲取/控制等,因此可能也需要使用硬件驅(qū)動層),EEPROM調(diào)用硬件驅(qū)動層的API函數(shù),即使EEPROM芯片更換(AT24C02或W25Q128等),也不影響EEPROM之前編寫含的功能代碼程序(前提是AT24C02,W25Q128提供的API函數(shù)提供的是統(tǒng)一標(biāo)準(zhǔn))。

(4)應(yīng)用程序?qū)樱ˋPL)


通過調(diào)用 HAL 與 FML,實現(xiàn)最終的應(yīng)用功能。

負(fù)責(zé)的就是功能模塊的使用和之間的邏輯關(guān)系處理等等,比如用戶交互界面應(yīng)用程序可能需要KEY、LED、LCD等。

四、硬件抽象層和硬件驅(qū)動層的主要區(qū)別


硬件抽象層使用的芯片內(nèi)本身的資源(芯片手冊都有介紹),而硬件驅(qū)動層使用的是芯片本身不存在的資源,而且需要編寫相應(yīng)代碼才能實現(xiàn)的資源。

比如正點原子STM32中CAN使用的TJA1050芯片,CAN屬于STM32的片內(nèi)資源,TJA1050屬于片外資源,但由于TJA1050不需要額外的代碼就能通過STM32中CAN本身提供API函數(shù)正常 工作;因此可以認(rèn)為TJA1050不屬于硬件驅(qū)動層,而若使用TJA1041,則需要編寫額外代碼才能使正常工作才能使STM32中CAN本身提供API函數(shù)正常工作,因此可以將TJA1041歸為硬件驅(qū)動層。

若不要分這么細(xì),可以將硬件抽象層和硬件驅(qū)動層統(tǒng)一歸為硬件抽象層。

五、功能模塊層和硬件抽象層、硬件驅(qū)動層的主要區(qū)別


功能模塊層是按照項目需求提取出來的功能,需要硬件抽象層和硬件驅(qū)動層的硬件支持才能實現(xiàn),功能模塊層根據(jù)項目的功能需求改變而改變,而硬件抽象層和硬件驅(qū)動層則是項目需求書中的功耗等硬件相關(guān)的需求變動而改變,當(dāng)然,若子功能的增加而硬件不支持,則也需更換硬件驅(qū)動。

比如項目中的數(shù)據(jù)儲存功能,硬件支持有AT24C02、W25Q128和芯片本身的FLASH,都可以支持?jǐn)?shù)據(jù)儲存功能,即使后期因為功耗或節(jié)約成本等問題,硬件的更換也不影響數(shù)據(jù)儲存功能的實現(xiàn)(前提規(guī)劃好標(biāo)準(zhǔn)規(guī)范的API函數(shù)定義)且避免了重寫該功能代碼所帶來的各種問題,保證了該功能的穩(wěn)定性。

分層結(jié)構(gòu)示意圖

   


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

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(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è)卻面臨越來越多業(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 手機 衛(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ā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(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)閉