ucgui之移植

程序編寫優秀否與內聚和耦合有很大關係。一般情況下力求耦合性小,內聚大爲好。內聚與耦合像一對反義詞。爲達到內聚性能高,一般採用分層。

程序的編寫按縱向角度來說叫分層,分塊是從橫向的角度來說,對於一個工程來說爲更好的分工合作必須先進行橫向分塊,設計各塊的接口是關鍵,否則影響內聚性,當然橫向接口越少越好。

縱向分層可以更好的進行內聚,以ucgui,uc/os,fatfs文件系統來說,正因爲有了分層纔可以有現成的東西可以用,在進行現成東西移植時最關鍵的在於.h文件中的配置和最底層函數的編寫。要想完成底層函數的編寫必須先弄清楚系統開發者留下了哪些底層接口函數給使用者自己編寫(這些東西往往與使用者自己的硬件有很大的關係,不可通用),在弄清哪些函數爲底層接口函數後,可以直接改寫函數定義,也可以定義函數供底層函數調用,這樣做可以更好地內聚,但調用之間會增加調用時間。有些底層接口函數寫好後,又可以供其他底層接口函數調用。

底層接口函數形式有直接函數名的,也有#define 的。

ucgui底層接口函數#define LCD_INIT_CONTROLLER()    LCD_Config();,LCD_Config()是所謂的初始化函數,可以隨意更改函數名,但需更改#define LCD_INIT_CONTROLLER()          ********,初始化包括LCD的最原始初始化。

ucgui底層接口函數有LCD_L0_Init、LCD_L0_SetPixelIndex、LCD_L0_GetPixelIndex、LCD_L0_DrawHLine、LCD_L0_DrawVLine、等,但並非所有函數都需更改,根據需要更改,平常這些基本函數都需要重寫,爲了更多功能的使用,建議還是都重寫。這些函數中有些功能經常用到,如寫像素、獲得一個像素值,因此將這些封裝成函數,爲了和底層函數的區分,因此LCD_Driver的文件夾通常包含兩個.c文件,一個是底層函數接口,另一個最近本的LCD驅動,如寫像素值等。

個人總結移植的思想結構,如有不對之處請見諒、指正。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章