做底層硬件嵌入式的不愿去懂上層PC軟件,而做上層PC軟件的又不愿去懂底層硬件,做FPGA不懂FPGA邏輯屬硬軟核處理器屬軟?,F在,HLS的出現,讓FPGA本屬于硬件HDL的開發慢慢變成HLS的軟件開發,有種當年匯編開發走向C開發的感覺。目前,各大FPGA廠商正在努力搭建HDL到HLS的橋梁,讓以后的我們以后能夠用HLS高效開發。現在,讓我們看看Windows應用程序,操作系統,計算機硬件之間的相互關系,看看它們之間的橋梁如何搭建的。
其中,上圖中,輸入輸出設備就是計算硬件:鍵盤、鼠標、耳機等。
【1】 .操作系統中有很多操作底層的函數接口,也就是我們常說的驅動,這些驅動是直接操作計算機硬件的動作,比如讓聲卡發出聲音。但是,你有沒有發現,操作系統可以操作硬件,但是是何時操作了?操作系統不知道,就好比你不買了一個玩具車,裝上電池它就可以跑起來,但是你不控制遙控它并不知道要去那;
【2】.操作系統對設備進行輸入、輸出和閉環控制。按鍵鼠標狀態輸入,顯示器輸出顯示,而硬盤的讀寫操作就要不斷的讀取剩余的空間等信息才做有效的寫操作的閉環控制。在這里說個題外話:學習學習是不斷學和習的閉環,而很多人學的不好就是環沒有閉好,理論與實踐的結合更恰當的說是理論和實踐的閉環,理論與實踐如果不閉環就是紙上談兵和一介武夫而已;
【3】.前面說過操作系統能很好的去操作底層硬件,但是不知道什么時候去操作和操作到了什么程度,這些都是由應用程序來是實現的,也就是我們常說的應用程序調用API來操作底層硬件,不同的是沒有操作系統的單片機由單一的1個Main應用程序去調用API,讀取所需要的一個底層設備狀態;而有操作系統的PC機由多個應用程序去調用API,讀取所需要的多個底層設備的狀態。這里就會遇到一個問題,多個應用程序調用API操作相同的底層硬件,這不就亂套了?
【4】.在這里Windows通過消息隊列來處理多個應用程序下的問題:將多個應用程序的操作寫入到消息隊列中,并按照先寫先操作(類似FPGA中的FIFO)的原則去調用API和讀取底層設備的狀態信息,將時間片切碎分時復用,這種消息隊列的處理機制比較復雜,不過沒關系,這些都由操作系統來管理并完成,應用程序開發者不用管,開發者開發起來簡單方便。
【5】.操作系統中這種消息隊列的機制為多個底層驅動和多個應用程序通信搭建了很好的橋梁,非常方便應用程序和底層驅動的獨立開發維護。如果我們搭建的嵌入式系統中沒有用到操作系統,底層和應用層開發獨立性差,我們完全可以借鑒消息隊列這種思維方式來搭建我們的系統架構來獨立底層和應用層的開發。
-
FPGA
+關注
關注
1626文章
21665瀏覽量
601802 -
WINDOWS
+關注
關注
3文章
3524瀏覽量
88416 -
操作系統
+關注
關注
37文章
6737瀏覽量
123190
原文標題:Windows程序內部運行原理
文章出處:【微信號:fpga234,微信公眾號:fpga234】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論