① 嵌入式中BSP的概念是什麼,比如在linux中,請通俗的講一下,謝謝了!
BSP(Board Support Package),板級支持包,也稱為硬體抽象層HAL或者中間層。
它將系統上層軟體和底層硬體分離開來,使系統上層軟體開發人員無需關系底層硬體的具體情況,根據BSP層提供的介面開發即可。
BSP是相對於操作系統而言的,不同的操作系統有不同定義形式的BSP,要求BSP所實現的功能也有所不同。
在嵌入式Linux系統中,主要是初始化底層硬體並引導操作系統;同時,BSP又是和硬體相關的,還要考慮對硬體的初始化操作。這些初始化操作主要是對CPU、內存、中斷等相關的寄存器及協處理器進行正確的配置。
在不同的開發階段,因為核心和文件系統所處的位置不同,BSP所要完成的工 作也有所不同;在開發調試階段,BSP要能夠與主機通信並從主機下載核心;在目標產品中,BSP要能夠從非易失存儲設備中載入核心。
BSP有兩個特點:硬體相關性和操作系統相關性。
設計一個完整的BSP需要完成兩部分工作:
A、 嵌入式系統的硬體初始化和BSP功能。
片級初始化:純硬體的初始化過程,把嵌入式微處理器從上電的默認狀態逐步設置成系統所要求的工作狀態。
板級初始化:包含軟硬體兩部分在內的初始化過程,為隨後的系統初始化和應用程序建立硬體和軟體的運行環境。
系統級初始化:以軟體為主的初始化過程,進行操作系統的初始化。
B、 設計硬體相關的設備驅動。
② DSP,ARM和單片機的區別
1、單片機是一種有完整計算機體系的晶元,適用於簡單的測控系統,功能相對簡單。
單片機的工作ARM和DSP都能作,單片機對於數字計算方面的指令少得多,DSP為了進行快速的數字計算,提高常用的信號處理演算法的效率,加入了很多指令,比如單周期乘加指令、逆序加減指令,塊重復指令等等,甚至將很多常用的由幾個操作組成的一個序列專門設計一個指令可以一周期完成,極大的提高了信號處理的速度。
由於數字處理的讀數、回寫量非常大,為了提高速度,採用指令、數據空間分開的方式,以兩條匯流排來分別訪問兩個空間,同時,一般在DSP內部有高速RAM,數據和程序要先載入到高速片內ram中才能運行。
2、ARM是微處理器,具有強大的事務處理功能,可以配合嵌入式操作系統使用。
ARM最大的優勢在於速度快、低功耗、晶元集成度高,多數ARM晶元都可以算作SOC,基本上外圍加上電源和驅動介面就可以做成一個小系統了,基於ARM核心處理器的嵌入式系統以其自身資源豐富、功耗低、價格低廉、支持廠商眾多的緣故,越來越多地應用在各種需要復雜控制和通信功能的嵌入式系統中。
目前,採用ARM核的微處理器,即我們通常所說的ARM微處理器,已遍及工業控制、消費類電子產品、通信系統、網路系統、無線系統等各類產品市場,基於ARM技術的微處理器應用約占據了32位RISC微處理器75%以上的市場份額,ARM技術正在逐步滲入到我們生活的各個方面。
3、DSP適用於數字信號處理,例如FFT、數字濾波演算法、加密演算法和復雜控制演算法等。
DSP實時運行速度可達每秒數以千萬條復雜指令程序。DSP器件比16位單片機單指令執行時間快8~10倍,完成一次乘加運算快16~30倍,其採用的設計是數據匯流排和地址匯流排分開,使程序和數據分別存儲在兩個分開的空間,允許取指令和執行指令完全重疊,其工作原理是接收模擬信號,轉換為0或1的數字信號,再對數字信號進行修改、刪除、強化,並在其他系統晶元中把數字數據解譯回模擬數據或實際環境格式,它的強大數據處理能力和高運行速度,是最值得稱道的兩大特色。
DSP晶元,由於它運算能力很強,速度很快,體積很小,而且採用軟體編程具有高度的靈活性,因此為從事各種復雜的應用提供了一條有效途徑。其主要應用是實時快速地實現各種數字信號處理演算法。
③ 請問各位大神,51單片機和dsp有什麼區別和聯系呢希望能有個詳細的回答啊~
區別:
1、應用場景不同。
單片機是一種系統設計方案,將計算機的CPU,定時器和多種介面集成在一片晶元上,可以滿足多種應用場合。現在的小家電,比如說電磁爐,電冰箱,洗衣機這些產品都是有單面機開發而成的。
DSP也是一種系統設計方法,它主要用在數字信號處理演算法上面,音視頻數據的解碼,這樣需要速度非常快的處理,普通的單片機達不到這么快的處理速度。
2、結構不同。
單片機的內部結構是由CPU、ROM、RAM、32條I/O口線(111條指,大部分為單位元組指令)、21個專用寄存器、2個可編程定時/計數器、5個中斷源,2個優先順序(52有6個)等組成。
而DSP採用改進的哈佛結構,指令和數據空間完全分開,並且有多個指令和數據空間,提高了數據的運算速度,DSP還設有專門的一些運算處理器,這樣很大程度上提高了dsp的運算速率。
3、工作原理不同。
51單片機的工作由相應的指令的代碼來完成一步一步的操作,並對系統做出知識與信號。
而DSP工作原理是接收模擬信號,轉換為0或1的數字信號,再對數字信號進行修改、刪除、強化,並在其他系統晶元中把數字數據解譯回模擬數據或實際環境格式。
它不僅具有可編程性,而且其實時運行速度可達每秒數以千萬條復雜指令程序,遠遠超過通用微處理器,是數字化電子世界中日益重要的電腦晶元。它的強大數據處理能力和高運行速度,是最值得稱道的兩大特色。
聯系:
二者都可以編程,DSP可以說是單片機的升級形式。一般而言,單片機指的是8位或16位微控制器。DSP是數字信號處理,著重與運算,特別是浮點運算,是32位微處理器。
(3)bsp和單片機編程區別擴展閱讀:
51單片機的部分功能如下:
CPU:由運算和控制邏輯組成,同時還包括中斷系統和部分外部特殊功能寄存器;
RAM:用以存放可以讀寫的數據,如運算的中間結果、最終結果以及欲顯示的數據;
ROM:用以存放程序、一些原始數據和表格;
I/O口:四個8位並行I/O口,既可用作輸入,也可用作輸出
T/C:兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式;
五個中斷源的中斷控制系統:一個全雙工UART(通用非同步接收發送器)的串列I/O口,用於實現單片機之間或單片機與微機之間的串列通信;片內振盪器和時鍾產生電路,石英晶體和微調電容需要外接。最佳振盪頻率為6M—12M。
④ 單片機和DSP在編程方面,有哪些不同
我就我所學過的51單片機和DSP2812談談我的看法。首先單片機要比DSP簡單的多,所有功能也就不可以同日而語了。
DSP一般不用匯編語言編程,但是單片機則用匯編語言也較容易,因為DSP資源太多,不便直接操作。每個DSP晶元都有對應的固件庫函數,比如說某款DSP有AD轉換功能,那麼固件庫就有專門的函數來操作AD,如配置、啟動、停止AD等。就連時鍾頻率也有專門的函數控制,這些函數都是DSP廠家編寫的,直接用就行。而單片機則不然,每一個硬體都要直接操作其底層的配置寄存器,這樣你務必十分理解它,而不是像DSP那樣見文知意。當然,單片機結構簡單,所以操作起來也容易。
總之,對DSP編程給你感覺實在同一個聰明的東西打交道(用類似於人的語言),單片機則是那種比較老實的東西(用類似於機器的語言)。