淺談軟體硬體聯絡

來源:互聯網
上載者:User

軟體硬體看似兩個分家的東西,其實內在有千絲萬縷的聯絡。我舉一些小例子:

開關電源的電感在一個刻度內,要滿足伏秒平衡。物理意義是,開關周期內電感吸收的能量和釋放的能量應該是相等的。否則,系統不會平衡,不穩定。對於軟體系統,特別是複雜的大型系統,雖然有嚴謹的理論去判斷一個軟體模組的穩定性。但對於程式員調試,並不是一個簡單輕鬆的過程。可以借鑒伏秒平衡的思路,一個大型的代碼在一個狀態結束時,除了一些統計變數之外,應該是回到最初的狀態,具體的體現:記憶體釋放與申請,系統輸出的結果等應和最初狀態一致。棧在沒有中斷回到初始位置時,應該也是回到最初位置的。否則,系統會不穩定。

關於初始化,一直不被軟體工程師所重視。硬體工程師有時候也會忽視這個問題。軟體中的初始化,從宏觀上講,模組的初始化;啟動作業系統的準備工作;任務棧,堆的準備。從微觀上講,變數的初始化,全域建構函式,全域變數初始化。對於硬體,上電的順序;晶片管腳上電的狀態。數字晶片的初始邏輯狀態。類比訊號的初始範圍等等。有一些音箱,開機的時候會砰一聲。這個是上電產生的電流衝擊,比較難抑制。消音電路很難做好。一些進階的CPU,會有上電順序要求。一些可靠的系統,要求上電,掉電,訊號都必須有確定的狀態。單純的硬體去做,有時候很困難。可能需要軟體硬體一起結合著做。Bootloader 為了後續的應用代碼做了很多初始化工作。

在軟體抽象一些客觀事物時,可以參考硬體的抽象。比如說乙太網路相對於處理器是個低速裝置,為瞭解決無休止的中斷,DMA 可以大大緩解處理器的壓力。如果處理器抽象成一個類、乙太網路抽象成一個類,那麼DMA可以看作一個通訊關聯類別了。其參數的抽象和深入的分析,對軟體設計和硬體設計都是個極大的促進。

晶片是別人給你的庫函數。完成各種各樣的功能。軟體開發過程中,需要瞭解庫函數的執行行為,參數範圍,提示,應用情境。其實,晶片的應用也是一樣的。需要瞭解管腳的功能定義,晶片的動作行為,應用情境,功耗等等各方面的資訊。瞭解得越細,對應用越有協助。

軟體硬體的結合,主要是洞悉背後解決問題的方法,處理實際的工程問題。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.