統一的訪問介面

2021-06-07 12:12:14 字數 655 閱讀 2778

在嵌入式開發中,難免要和硬體打交道,方式就是讀寫相應的暫存器。

為了便於維護,肯定是要模組開發,分層開發。很多東西都知道,關鍵是執行。工作壓力大,趕進度等等就降低了對**質量的要求。這裡記錄下自己的感受,免得以後再犯。

針對暫存器的操作肯定是是要封裝到函式內部的,提供乙個介面,如read_reg(),write_reg();。有時,我們會對這些基本介面進一步封裝,變為readreg(),writereg();

偶爾也會在更高一層定義一組函式指標,在模組初始化的時候進行繫結,以後通過指標訪問。

這都沒有問題,問題出在呼叫不一致,在乙個程式中,有的地方呼叫read_reg來讀寫暫存器,有的地方呼叫readreg來讀寫,有的地方呼叫函式指標來訪問。這樣程式當然可以工作。

設想,將來系統要移植到乙個類似的晶元上,大部分暫存器都一樣,個別的不一樣。我能想到的是檢查所有讀寫暫存器的地方,看看當前暫存器是否一致,不一致則更改。如果程式通過同一組介面操作暫存器,如read_reg.我只需搜尋read_reg,然後乙個乙個比較就行。

要命的是大部分地方使用read_reg訪問,有的地方使用readreg訪問,甚至一些角落裡會使用函式指標。如果你剛接手這個工程,大致一看認為是通過read_reg讀寫暫存器,搜尋,修改,完成。然後程式很可能會出點問題,有你除錯的苦受了。費勁千辛萬苦定位到問題,不過是個芝麻大的問題。

開發統一的部落格介面

現在部落格很流行,很多人都在使用部落格,有些人同時擁有幾個不同的部落格 不知你有沒有這樣的煩惱,就是你寫了一篇文章,這時想傳到不同的部落格 上去,就得開啟不同的部落格網頁,在上面發布文章,這樣很煩躁,並且做的是重複的工作。有沒有可能,有沒有可能寫了一篇文章,在乙個地方上傳,就可以在不同的部落格 上面...

NUMA 非統一記憶體訪問

之前很多人都認為ms的產品只能使用在中小企業,進不了企業級市場,ms的東西都是在pc server上來實現,無法和ibm的主機系統來pk。隨著硬體的不斷發展,pc server的優勢也漸漸體現出來了,但是很多時候使用者還是希望能夠有更強大的pc server來執行他們的系統。ibm的主機可以有數千顆...

外觀模式 統一的程式設計介面

為子系統的各個介面提供乙個統一的介面,提供乙個高層的介面,對外隱藏內部實現和呼叫關係,使得子系統更容易使用。最少知道原則 迪公尺特法則 黎克特制替換原則,依賴倒置原則 在類圖中可以看出,facede是系統對外的統一介面,用於封裝內部的實現,並和外界進行互動。inte cea,inte ceb,int...