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

當(dāng)前位置:首頁 > 汽車電子1 > 糖果Autosar
[導(dǎo)讀]一感慨近公司新招了一個做嵌入式軟件開發(fā)開發(fā)的童鞋,該童鞋是從上海的某一個上市公司出來的,因為我們這邊人手不夠,因此把他安排了去負責(zé)一個新產(chǎn)品的研發(fā),前期讓他負責(zé)加速度計、NB-IOT、舵機、外置Flash的功能測試,測試完成之后,準(zhǔn)備讓他做一個該產(chǎn)品的概要設(shè)計。然后他花了2個星期...

一 感慨

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

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)藍牙模塊啟動 ? ? ? ?

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è)計之后,雖然頗感欣慰,但是想到達到我們所要求的,還要很大的一段距離,該架構(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)用。

?看到這里之后,說實話,我真的很驚訝,難倒從大企業(yè)出來的童鞋,能力都是這樣的嗎?從大企業(yè)出來的童鞋們,工資也是要的老高老高的,難倒他們不知道,在昆明的工資,都是以K來計算的嗎?在昆明能拿到8K的工資做開發(fā)的人就已經(jīng)很少了。然后再到1W

以上的,童鞋們就更少了。

說實話,我們的這位童鞋,上班的時候,還經(jīng)??措娮訒趯嵙?xí)期間還經(jīng)??措娮訒也恢?,他哪來的實力,心可以放的這么寬,交代的活沒有完成,還有時間來看電子書。當(dāng)然托他的福,我的工資也終于漲到6K了,因為新人的工資,比老人高,

做的活還是一樣的(結(jié)果一不一樣我就知道了),為了考慮到老人的心里面不平衡,所以才給我加的工資的。領(lǐng)導(dǎo)們在批加工資的申請的時候,還專門把我叫去辦公室,讓我表決心啥的。。然后,我讓他去改,把我說的這些改改,然后再看一下,還有什么問題沒?結(jié)果我看他在那抓耳撓腮,還有各種嘆氣,然后和我說,改不了。

既然改不了,那我就只能親自操刀上陣了,畢竟同事一場。

二、基本框架圖

(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è)計:將收集到的需求,進行歸類,總結(jié)和分析,將這些需求概括為一個個單獨的功能,每一個功能,做成一個單獨的功能模塊。

分層設(shè)計一句話不好直接表達,其主要體現(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.各個功能模塊層也還可以進行繼續(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ù)邏輯進行整合調(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)不同的功能。

?


本站聲明: 本文章由作者或相關(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)濟

北京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ù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

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