ddr使用控制器來完成底層時序和重新整理操作,需要事先對ddr控制器進行適當的配置。一般都在最開始的初始化**中配置完pll和ddr,之後就可以在其位址空間範圍內當作普通ram直接定址實現讀寫操作。然而用**器除錯時,程式先載入後執行,載入時ddr未初始化,當然沒有資料。因此需要把ddr初始化過程放到載入過程之前。
可以使用gel檔案來實現這個功能,載入**前先載入gel檔案,在其中執行pll和ddr的初始化,然後再載入的**就不會再有問題了。這時需要注意在**中不能再進行pll和ddr的初始化操作,因為初始化過程中時鐘不穩定,可能會丟失其中原有的資料。
當不使用**器除錯時怎麼辦呢?xx板使用的是hpi啟動,由主機dm8168通過hpi介面引導程式。此時同樣需要在載入前先對pll和ddr完成初始化。
詳細分析一下啟動過程。復位後dsp首先執行的是內建rom中的bootloader(起始位址0010 0000h),完成一些基本的初始化,然後通過啟動引腳來進入不同的啟動模式分支,c6455的啟動模式有不啟動(**器啟動)、srio啟動、hpi啟動、emif啟動、主從i2c啟動等。
在i2c啟動模式下,可以使用乙個啟動參數列或啟動配置表來預先配置pll和ddr。在《tms320c645x bootloader user』s guide(spruec6b)》中對啟動參數列和啟動配置表有描述。
在hpi啟動模式下,pll1會被bootloader初始化為旁路模式,cache為32kb。然後作為hpi從機接收主機傳送來的資料,最後由主機觸發乙個中斷來退出bootloader,開始從載入**的入口位址執行。
載入前初始化有兩種途徑,一是上電後主機先通過hpi介面寫c6455的相關暫存器完成pll和ddr配置。二是採用兩次boot的方式,即先載入一次啟動**,由該啟動**將pll和ddr做初始化,再載入正常功能的啟動**。
在這兩種情況下,ddr都不能兩次初始化,否則重新整理時序混亂後ddr內的資料會有丟失的風險。因此在正常**的初始化過程中都不能再進行pll和ddr的初始化。
DDR掃盲 DDR與DDR2 DDR3的區別
from ddr2與ddr的區別 1 速率與預取量 ddr2的實際工作頻率是ddr的兩倍,ddr2記憶體擁有兩倍於標準ddr記憶體的4bit預期能力。2 封裝與電壓 ddr封裝為tsopii,ddr2封裝為fbga ddr的標準電壓為2.5v,ddr2的標準電壓為1.8v。3 bit pre fet...
DDR掃盲 DDR的發展簡史
from ddr的種類 1 ddr sdram double data rate synchronous dynamic random access memory,雙倍資料率同步動態隨機訪問儲存器 2 ddr2 sdram double data rate two synchronous dynam...
DDR掃盲 DDR的特性分析
from 儲存原理 儲存原理示意圖 行選與列選訊號將使儲存電容與外界間的傳輸電路導通,從而可進行放電 讀取 與充電 寫入 另外,圖中重新整理放大器的設計並不固定,目前這一功能被併入讀出放大器 sense amplifier 簡稱s amp dll 延遲鎖定迴路 dll 的任務是根據外部時鐘動態修正內...