最近在開發一個基於ATMega2560的單片機系統,因為外圍模塊比較多,
同時也想以後開發其它板子時,能夠稍微修改上一次的代碼就可以適用到新板子,
查閱很多資料後,發現APM飛控就是用這樣的一種思想:硬件抽象層;還有就是Android系統也使用了硬件抽象層的概念,這樣的設計可以極大地提高兼容性。然而當我仔細研究APM的源碼之後,我發現我找不到任何訪問硬件的信息,難道C++不能直接訪問硬件嗎?在這裡提問,希望各位師兄師姐,給位大神,牛人能夠不吝賜教,小生感激不盡!在此先謝過大家了~~~
嵌入式操作系統一般都是使用宏定義來定義設備的接口地址,像我之前使用的C51單片機,根本沒有操作系統,通過說明書可以了解到它的許多接口地址,這些都是生產廠商規定好的,我使用的時候都是重新用宏來定義一下(地址較少相對簡單),如果是其他平台(arm板等等),建議你搜索一下其他嵌入式系統,我之前一直在用ucos-ii,這是一款專門的嵌入式操作系統,代碼精簡深入,用C語言寫的,其中就涉及到你說的硬件操作問題,很適合你去學習,相信你看過以後問題自然就會明白了。這是ucos官網http://micrium.com/