嵌入式處理器基于SPI引導的RAM 自檢論文
0 引言
隨著(zhù)全球網(wǎng)絡(luò )進(jìn)一步擴展到新終端設備和以前未連接的行業(yè)中,網(wǎng)絡(luò )安全對消費者、企業(yè)和其他機構變得越來(lái)越重要。人們越來(lái)越需要性能安全、價(jià)格便宜的裝置設備。為了降低成本, 往往需要簡(jiǎn)化電路設計。例如,采用SPI 方式引導硬件,使用SPI Flash 作為存儲媒介,減少總線(xiàn)的布線(xiàn),是簡(jiǎn)化硬件電路的較好的方法。但采用SPI 方式引導硬件,需要將程序引導到DDR 內存中,同時(shí)又需要對DDR 內存進(jìn)行檢查,這就出現了矛盾。
1 基于SPI 的硬件引導
本文以一個(gè)實(shí)例,對嵌入式處理器基于SPI 引導硬件時(shí)如何進(jìn)行RAM 檢查進(jìn)行詳細的介紹。是嵌入式處理器使用SPI 引導的硬件框圖。硬件引導程序和系統程序放在SPI Flash 中,在上電引導后,系統程序會(huì )被搬移到DDR 空間,在D DR 空間運行起來(lái),F在以U-Boot 硬件引導程序為例, 介紹以SPI 引導模式引導系統硬件的情況。U-Boot 是德國DENX 小組的開(kāi)發(fā)用于多種嵌入式CPU 的Bootloader 程序, 可以支持多種嵌入操作系統和多種處理器。編譯的U-Boot 程序, 往往是運行在NOR Flash 或DDR 中的。但在基于SPI 引導時(shí), 需要先從SPI Flash 往片內RAM 里運行一段程序, 將DDR 內存檢查一遍, 然后再將U-Boot 引導到DDR 內存中去運行。
2 SPI 引導采用的數據格式
在TI 公司的DSP 及ARM 處理器,飛思卡爾公司POWERPC 及ARM 處理器, 都支持基于SPI 的引導模式。在這些處理器的片內ROM 都包含基本的SPI 引導驅動(dòng)程序。本文以飛思卡爾公司的QorIQ P1010 處理器為例介紹其引導過(guò)程。P1010 片內的SPI 驅動(dòng)程序能夠把SPI 接口Flash 中的程序拷貝到DDR 內存或片內RAM 中。不過(guò),在拷貝之前,需要先對DDR 控制器或片內RAM 進(jìn)行配置。這就需要定義一個(gè)特定的數據結構,完成引導程序所需要的環(huán)境配置。對于不同的處理器,生產(chǎn)廠(chǎng)家定義的引導數據結構是不同的。在P1010 處理器完成復位序列后,通過(guò)選擇使用處理器片內ROM 的`SPI 引導配置程序,而后處理器內核開(kāi)始運行該片內ROM 程序, 配置SPI 控制器,并與外部的SPI Flash 通信,將程序拷貝出來(lái)并跳到指定的位置運行時(shí)配置數據寫(xiě)入此地址。當最低位為1 時(shí),配置地址域高30 bit 代表的是指令,此時(shí)配置數據寫(xiě)入此地址。這樣的結構讓用戶(hù)可以方便地配置4 B 對齊的內存,完成控制指令操作,或定義程序配置階段的結束
當CNT ( 最低位)=0 時(shí), 則高30 bit 用作要寫(xiě)入數據的地址,配置數據包含要寫(xiě)入的數據。
當CNT=1 時(shí), 則高30 bit 用作控制指令。
當EC=1 時(shí), 代表配置階段結束指令。
當DLY=1 時(shí), 代表延時(shí)一定時(shí)間指令。
當CF=1 時(shí), 代表更改SPI 頻率的指令。
CNT 表示地址模式與指令模式的切換。
當處理器內核開(kāi)始拷貝程序時(shí), 先判斷0X40 位置的標志是否正確, 如果正確, 先根據配置的地址/數據對的個(gè)數N 來(lái)配置一些外圍寄存器,然后從0X50 處指示的Flash 地址搬移用戶(hù)代碼數據到0X58 指示的地址。搬移完成后,從0X60 指示的地址開(kāi)始運行。將片內運行的這一段程序叫TPL 程序。
3 片內RAM 運行的TPL 程序
P1010 包含256 KB 的L2CACHE, 也可以當片內RAM 使用。要檢查DDR 內存, 要先在片內RAM 里運行一小段TPL 程序。這一段程序是對基于DDR 引導程序U-Boot 的一個(gè)裁剪, 主要完成內核的配置,初始化串口終端, 初始化DDR 內存控制器, 然后檢查DDR 內存。在這里不需要設置U-Boot 的環(huán)境變量,不需要配置以太網(wǎng)等其他的外圍器件。編譯后的TPL 目標文件為uboot-tpl.bin 。TPL 程序的編譯按RAM 引導的方式處理。程序的開(kāi)始地址設為:0xc0030000~0xc0038800 ,F在需要對編譯后的uboot-tpl.bin 進(jìn)行格式處理, 在其前面加上SPI 引導的可以識別的數據表頭,是按照(SPI 引導模式的數據結構) 和( 配置地址域的數據格式) 完成的一個(gè)SPI 引導配置實(shí)例。在這個(gè)實(shí)例中, 將L2CACHE 設為片內RAM, 開(kāi)始地址設為0xc0000000 。這一部分空間在處理器內核引導時(shí)已經(jīng)通過(guò)TLB 映射, 可以直接使用。
4 結論
嵌入式處理器在使用SPI 引導硬件時(shí),先通過(guò)片內RAM 運行一段程序,對DDR 內存進(jìn)行自檢,而后再將U-Boot 程序及環(huán)境變量引導到DDR 空間,把硬件系統引導起來(lái)。通過(guò)實(shí)例化的應用,證明這在高性?xún)r(jià)比的嵌入式應用中是一個(gè)不錯的選擇,不僅能提高系統的可靠性,而且簡(jiǎn)單易行。
【嵌入式處理器基于SPI引導的RAM 自檢論文】相關(guān)文章:
基于DSP+FPGA的嵌入式圖像處理系統的發(fā)展的論文05-28
基于Proteus和Skyeye的嵌入式系統虛擬實(shí)驗室建設論文05-13
基于嵌入式平臺的網(wǎng)絡(luò )化OTDR模擬訓練系統設計論文11-17
關(guān)于嵌入式營(yíng)銷(xiāo)的論文04-02
興趣引導學(xué)生學(xué)習論文06-17
嵌入式營(yíng)銷(xiāo)是一種基于顧客價(jià)值鏈的產(chǎn)業(yè)營(yíng)銷(xiāo)新思維的論文04-20