基於開發板的二次嵌入式開發

嵌入式軟件開發是一個交叉開發過程,咱們能夠在特定的 EDA 工具環境下面進行開發, 使用開發板進行二次開發,這樣縮短了開發週期,提升了產品的可靠性,下降了開發難度。編程

咱們把脫離於硬件的嵌入式軟件開發階段稱之爲「PC 軟件」的開發。在「PC 軟件」開發階段,能夠用軟件仿真,即指令集模擬的方法 來對用戶程序進行驗證。在 ARM 公司的開發工具中,ADS內嵌的 ARMulator和 RealView 開發工具中的ISS都提供了這項功能。在模擬環境下,用戶能夠設置 ARM 處理器的型號、時鐘頻率等,同時還能夠配置存儲器訪問接口的時序參數。程序在模擬環境下運行,不但可以進行程序的運行流程和邏輯測試,還可以統計系統運行的時鐘週期數、存儲器訪問週期數、處理器運行時的流水線狀態(有效週期、等待週期、連續和非連續訪問週期)等信息。這些寶貴的信息是在硬件調試階段沒法取得的,對於程序的性能評估很是有價值。爲了更加完整和真實地模擬一個目標系統,ARMulator和ISS還提供了一個開放的 API編程環境。用戶能夠用標準C 來描述各類各樣的硬件模塊,連同工具提供的內核模塊一塊兒,組成一個完整的「軟」硬件環境。在這個環境下面開發的軟件,能夠更大程度地接近最終的目標。利用這種先進的 EDA工具環境,極大地方便了程序開發人員進行嵌入式開發的工做。完成一個「PC 軟件」的開發 以後,只要進行正確的移植,一個真正的嵌入式軟件就開發成功了。隨着嵌入式相關技術的迅速發展,嵌入式系統的功能愈來愈強大,應用接口更加豐富;根據實際應用的須要設計出特定的嵌入式最小系統和應用系統,是嵌入式系統設計的關鍵。 架構

1、嵌入式最小系統的硬件模塊

1.最小硬件模塊 工具

嵌入式最小系統便是在儘量減小上層應用的狀況下可以使系統運行的最小化模塊配 置。對於一個典型的嵌入式最小系統都是以處理器爲核心的電路,以 S3C2410芯片爲例,其 構成模塊及其各部分功能如圖所示,其中,ARM 微處理器、Flash和 SDRAM 模塊是嵌 入式最小系統的核心部分。性能

圖片發自簡書App

電源模塊:爲系統正常工做提供電源。 開發工具

時鐘模塊:一般經 ARM 內部鎖相環進行相應的倍頻,以提供系統各模塊運行所需的時鐘頻率輸入。測試

復位模塊:實現對系統的復位。操作系統

JTAG 模塊:實現對程序代碼的下載和調試。設計

Flash存儲模塊:存放啓動代碼、操做系統和用戶應用程序代碼。調試

SDRAM 模塊:爲系統運行提供動態存儲空間,是系統代碼運行的主要區域。接口

UART 模塊:實現對調試信息的終端顯示。

2.存儲器接口

ARM 處理器與存儲器(Flash和 SDRAM)的接口技術是嵌入式最小系統硬件設計的關鍵。嵌入式系統中經常使用的存儲器有 NorFlash、NandFlash和SDRAM。

(1) ARM 處理器與 NorFlash接口技術

NorFlash帶有SRAM 接口,有足夠的地址引腳,能夠很容易地對存儲器內部的存儲單元 進行直接尋址。

雙 Flash獨立片選:該方式是把兩個 NorFlash芯片各自做爲一個獨立的單元進行處理。 根據不一樣的應用須要,能夠在一塊 Flash中存放啓動代碼,而在另外一塊 Flash中創建文件系 統,存放應用代碼。該方式操做方便,易於管理。

雙 Flash統一片選:該方式是把兩個 NorFlash芯片合爲一個單元進行處理,ARM 處理 器將它們做爲一個並行的處理單元來訪問,如將兩個8bit的 NorFlash芯片ST39VF1601用 做一個16bit單元來進行處理。對於 N(N>2)塊 Flash的鏈接方式能夠此做爲參考。

(2) ARM 處理器與 NandFlash接口

NandFlash接口信號比較少,地址、數據和命令總線複用。NandFlash的接口本質上是 一個I/O 接口,系統對 NandFlash進行數據訪問的時候,須要先向 NandFlash發出相關命令 和參數,而後再進行相應的數據操做。ARM 處理器與 NandFlash的鏈接主要有3種方式:

a.運用 GPIO 引腳方式去控制 NandFlash的各個信號,在速度要求相對較低的時候,可以 較充分地發揮 Nand設備的性能

b.運用邏輯運算方式進行鏈接:在該方式下,處理器的讀和寫使能信號經過與片選信號 邏 輯 運 算 後 去 驅 動 Nand 設 備 對 應 的 讀 和 寫 信 號。

c.直接芯片使能:有些 ARM 處理器(如 S3C2410)內部提供對 Nand設備的相應控制寄存 器,經過控制寄存器能夠實現 ARM 處理器對 Nand設備相應信號的驅動。

圖片發自簡書App
(3) ARM 處理器與SDRAM 接口

嵌入式最小系統的動態存儲器模塊通常採用SDRAM。如今的大多數 ARM 處理器內部 都集成有SDRAM 控制器,經過它能夠很容易地訪問SDRAM 內部的每個字節。在實際開 發中能夠根據須要選用一片或多片SDRAM。

2、嵌入式系統的啓動架構

啓動架構是嵌入式系統的關鍵技術,掌握啓動架構對於瞭解嵌入式系統的運行原理有着重要的意義。嵌入式系統在啓動時,引導代碼、操做系統的運行和應用程序的加載主要有兩種架構,一種是直接從 NorFlash啓動的架構,另外一種是從 NandFlash啓動的架構。

1.從 NorFlash啓動

NorFlash具備芯片內執行(XIP,eXecuteInPlace)的特色,在嵌入式系統中常做爲存放 啓動代碼的首選。從 NorFlash啓動的架構又可細分爲只使用 NorFlash的啓動架構、Nor Flash與 NandFlash配合使用的啓動架構。下圖給出了這兩種啓動架構的原理框圖。

圖片發自簡書App

單獨使用 NorFlash:在該架構中,引導代碼、操做系統和應用代碼共存於同一塊 Nor Flash中。系統上電後,引導代碼首先在 NorFlash中執行,而後把操做系統和應用代碼加載到速度更高的SDRAM 中運行。另外一種可行的架構是在 NorFlash中執行引導代碼和操做系 統,而只將應用代碼加載到SDRAM 中執行。該架構充分利用了 NorFlash芯片內執行的特色,可有效提高系統性能;不足在於隨着操做系統和應用代碼容量的增長,須要更大容量昂貴的 NorFlash來支撐。

NorFlash和 NandFlash配合使用:在該架構中附加了一塊 NandFlash,NorFlash中存放啓動代碼和操做系統(操做系統能夠根據代碼量的大小選擇存放於 NorFlash或 NandFlash),而 NandFlash中存放應用代碼,根據存放的應用代碼量的大小能夠對 NandFlash容量作出相應的改變。系統上電後,引導代碼直接在 NorFlash中執行,把 NandFlash中的操做系統和應用代碼加載到速度更高的SDRAM 中執行。也能夠在 NorFlash中執行引導代碼和操做系統,而只將 Nand Flash中的應用代碼加載到SDRAM 中執行。該架構是當前嵌入式系統中運用最普遍的啓動架構之一。

2.從 NandFlash啓動

有些處理器(如SAMSUNG 公司的 ARM920T 系列處理器S3C2410)支持從 NandFlash 啓動的模式,它的工做原理是將 NandFlash中存儲的前4KB 代碼裝入一個稱爲 Stepping stone(BootSRAM)的地址中,而後開始執行該段引導代碼,從而完成對操做系統和應用程序 的加載。該方式須要處理器內部有 Nand控制器,同時還要提供必定大小額外的 SRAM 空 間,有必定的使用侷限性,在實際開發中較少使用。

相關文章
相關標籤/搜索