天天看點

《嵌入式C程式設計實戰》——1.3 複雜度降低

本節書摘來自異步社群《嵌入式c程式設計實戰》一書中的第1章,第1.3節,作者【瑞典】lars bengtsson(本特松) , lennart lindh(林德), 李華峰 譯,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

正如我們所見,問題的複雜度正在不斷地增加,我們必須對此做出應對。可是,關鍵是怎樣才能降低複雜度呢?本節将會就這個問題給出一些基本的答案。

下面給出了一些“與降低複雜度相關的詞彙”。

抽象。

結構(或體系)。

層次結構。

本書在以下部分定義了最小的元件,有時這些元件也被稱為葉元件。這些元件包括邏輯門、觸發器、存儲單元(邏輯元件)。其實,還可以将這些元件再分成更小的部分,如半導體、電阻、電感和電容等最小的不可分割的組成。這些邏輯元件是總線、cpu的組成部分。而總線和cpu又是構成多處理器系統的組成部分。

元件的複雜性可以通過抽象層的數目和元件的數量來确定。使用抽象層的目的是為了通過隐藏子元件,來降低系統的複雜性。

本書的以下部分定義了不可再分的元件,或者有時也稱為葉元件,如門電路、觸發器、存儲器(邏輯部件)。其實,可以對一些更小的元件進行研究,如半導體、電阻、電感和電容。

這些邏輯部件共同構成了總線和cpu,而總線和cpu又共同構成了多處理器系統。

一個元件的複雜性可以由它所包含的元件的數量和抽象層次的數目決定。抽象層次通過隐藏元件降低複雜性。

軟體元件的抽象層次。

機器代碼−工藝相關。

彙編代碼−工藝相關。

進階語言−工藝無關。

軟體元件−工藝無關。

較高的抽象層次往往被描述為工藝無關。例如,一個c程式可以被編譯成各種不同的cpu所能執行的程式,硬體的vhdl可以被用來對各種不同類型的fpga進行開發。然而,較高的抽象層次也并非總都是工藝無關的,一個較高的抽象層次的元件對處理器就是工藝相關的。

結構用來描述各個組成部分的元件,以及各個元件之間的關系。嵌入式系統的軟體和硬體都有自己的體系結構,如圖1.5所示。

《嵌入式C程式設計實戰》——1.3 複雜度降低

這裡有一個關于結構的經典法則指出:任何一個人類使用的裝置都不應該包含超過72以上的組成部分。但是,一個計算機卻可以同時控制大量(數以百萬計)的元件。

現在建立一個結構示意圖,如圖1.6所示。結構中的每一個分支都在延續,直到一個不再可分的節點,這些組節點有時也被稱作葉節點。一個元件是一個分支或者是一個不可分的葉結點。一個葉元件可以是一段沒有調用任何其他函數的c代碼,或者是沒有子元件的vhdl代碼。抽象層頂部的部分比底部複雜。

《嵌入式C程式設計實戰》——1.3 複雜度降低

繼續閱讀