本書中使用的所有案例都是基於靈活性極大的fpga裝置上完成的。如果乙個設計師使用微控制器工作時,他僅僅能完成對硬體架構的測試。但是,如果選用了fpga,他將能通過設定i/o來實現對所有的從簡單到複雜的多處理器體系結構的實驗設計。因此,fpga是最適合進行應用設計教育和學習的平台。
從邏輯上講,這些fpga裝置可以按照設計師所設想的任何方式進行連線。圖1.7顯示了fpga裝置的靈活性。左邊是乙個簡單的設計,右邊是乙個使用了兩個32位cpu的複雜設計。
本書將不會對fpga進行更深入的討論。
1.4.1 軟體
軟體可以使用多種方式來描述。軟體的一種特性就是序列性(順序執行),但是,cpu的工作速度很快,因此設計師會認為多個程式是可以並行執行的。這是使用處理硬體元件的相同方式來處理軟體的關鍵。
軟體中的元件包含任務、執行緒、過程、函式、裝置驅動程式等。
圖1.8中說明了如果乙個設計者在c檔案中包含了「#include 」這條語句就可以使用stdio這個庫檔案。檢查你的軟體工具支援的各種標準庫檔案是乙個好主意。
乙個使用c語言的簡單元件(函式)的例子;「void print_pix(alt_u16 x, alt_u16 y,alt_u8 rgb)」,「print_pix」在座標為(x,y)上的乙個畫素點寫入了乙個「rgb」(紅綠藍)顏色。
1.4.2 硬體和軟體之間的介面
軟體和硬體如同兩個不同的世界,為了管理它們之間的介面,須使用軟體裝置驅動來控制軟體,使用暫存器來控制硬體。這裡有很多的用於軟體和硬體進行通訊的標準協議,下面給出了一些例項。
使用軟體向硬體寫入資訊。
使用軟體從硬體讀取資訊。
硬體產生到軟體的中斷。
如圖1.9所示,介面用來連線不同的元件,它包括各種軟體和硬體。這種型別的軟體叫做裝置驅動程式。
各種不同裝置的驅動程式必須被新增到專案中。圖1.10中給出了uart的裝置驅動程式被新增到專案後的樣子。在altera的軟體開發工具中,所有的工藝相關部分都儲存在板級支援包(bsp)中。應用程式軟體是針對產品的。
《嵌入式C程式設計實戰》 導讀
嵌入式c程式設計實戰 本書是為致力於使用微控制器來設計嵌入式系統的人們準備的。本書將翔實的理論與真實的實踐相結合。現在由微控制器管理的嵌入式系統無處不在,汽車 機械人 辦公室 醫療裝置 機械 家居,以及其他各種各樣的需求中都可以看到它們的身影。乙個典型的微控制器包括了處理器 儲存器和外部裝置。乙個嵌...
《嵌入式C程式設計實戰》 導讀
本書是為致力於使用微控制器來設計嵌入式系統的人們準備的。本書將翔實的理論與真實的實踐相結合。現在由微控制器管理的嵌入式系統無處不在,汽車 機械人 辦公室 醫療裝置 機械 家居,以及其他各種各樣的需求中都可以看到它們的身影。乙個典型的微控制器包括了處理器 儲存器和外部裝置。乙個嵌入式系統c開發者需要對...
嵌入式程式設計
1 interrupt double compute area double radis 1 isr不能返回乙個值。2 isr不能傳遞引數。3 在許多處理器中浮點是不可重入的。4 printf 經常有重入和效能上的問題,所以一般不使用printf 2.volatile 1 volatile的語法和c...