2019-05-20 2440控制器

說白了 2440的控制器可以理解為stm32里面的FMSC 大同小異

可以外部尋址1GB的范圍黎做。是CPU和外部外設通訊的中間總線裝置浇垦。?

例如網(wǎng)卡 SDRAM擴展串口等都是通過這個控制器去連接CPU

現(xiàn)在開始學習SDRAM的內(nèi)容

SDRAM 我們用的是EM63A165TS

1. NOR FLASH 和 NAND FLASH 程序啟動方式

當用nor Flash的時候:0 地址是指向nor flash 里面讀取指令


當用nand flash的的時候: 會把nand flash的前4K的代碼復制到內(nèi)部4k內(nèi)存里面


在2440里面 bank 7和bank6必須大小相等

bank1 的大小因為是連接在boot引腳上 所以需要用硬件(OM1 和OM2 引腳去調(diào)節(jié) 位寬)

BWSCON:? 每四個位控制一個bank 最高4位對應bank7?

(1)组橄。 STx:設置啟動禁止SDRAM 的數(shù)據(jù)掩碼引腳 對于SDRAM 這個位應該是0 對于SRAM應該是1

(2)。WSx:是否使用儲存器Wait信號

(3)DWx: 使用bank的位寬?

在這里 我們的SDRAM連到了BANK6 (CS6)

其中 UB/LB 是表示高8位和低8位

Bank6的起始地址是0x3000_000

BANKCONx:

控制BANK0~BANK5 外接設備的訪問時序琴锭, 使用默認的0x0700?

控制BANK6~BANK7:(1) BANK MT([15:16])但是為00 的時候是SRAM 11的時候是SDRAM

當設置成00 的時候 后面的設置和Bank0~bank5 的設置一樣

當設置成01的時候:

Trcd[3:2]: RAS to CAS delay 行到列之間的延遲 應該設置為1

SCAN【1:0】: SDRAM的列地址位數(shù) (本芯片是9位)所以是01

REFRESH:

SDRAM必須開啟刷新功能

22位: 自動刷新

21位: 0

20:0

19:18: 默認值11

10:0:( 2^11 - refresh_count+1)/HCLK


BANKSIZE:?

7: 突發(fā)傳輸

6: 使用SCKE令SDRAM進入省電模式

4: 盡在訪問SDRAM的時候發(fā)出SCLK信號

2:0: bank6/7的大小是可以變化的 這里是64MB

這就是設置的方法?



程序:

@*************************************************************************

@ File:head.S

@ 功能:設置SDRAM紊搪,將程序復制到SDRAM,然后跳到SDRAM繼續(xù)執(zhí)行

@*************************************************************************? ? ?

.equ? ? ? ? MEM_CTL_BASE,? ? ? 0x48000000

.equ? ? ? ? SDRAM_BASE,? ? ? ? 0x30000000

.text

.global _start

_start:

? ? bl? disable_watch_dog? ? ? ? ? ? ? @ 關閉WATCHDOG,否則CPU會不斷重啟

? ? bl? memsetup? ? ? ? ? ? ? ? ? ? ? ? @ 設置存儲控制器

? ? bl? copy_steppingstone_to_sdram? ? @ 復制代碼到SDRAM中

? ? ldr pc, =on_sdram? ? ? ? ? ? ? ? ? @ 跳到SDRAM中繼續(xù)執(zhí)行

on_sdram:

? ? ldr sp, =0x34000000? ? ? ? ? ? ? ? @ 設置堆棧??因為makefile里面一開始指向的是300000 前面的幾? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?行都是占用堆棧的(每條指令+4)俐巴。骨望。所以這里的指針指向的? 是main的地址。? 內(nèi)存是64MB所以是棧頂?

? ? bl? main

halt_loop:

? ? b? halt_loop

disable_watch_dog:

? ? @ 往WATCHDOG寄存器寫0即可

? ? mov r1,? ? #0x53000000

? ? mov r2,? ? #0x0

? ? str r2,? ? [r1]

? ? mov pc,? ? lr? ? ? @ 返回

copy_steppingstone_to_sdram:

? ? @ 將Steppingstone的4K數(shù)據(jù)全部復制到SDRAM中去

? ? @ Steppingstone起始地址為0x00000000欣舵,SDRAM中起始地址為0x30000000


? ? mov r1, #0

? ? ldr r2, =SDRAM_BASE

? ? mov r3, #4*1024

1:?

? ? ldr r4, [r1],#4? ? @ 從Steppingstone讀取4字節(jié)的數(shù)據(jù)擎鸠,并讓源地址加4

? ? str r4, [r2],#4? ? @ 將此4字節(jié)的數(shù)據(jù)復制到SDRAM中,并讓目地地址加4

? ? cmp r1, r3? ? ? ? ? @ 判斷是否完成:源地址等于Steppingstone的未地址缘圈?

? ? bne 1b? ? ? ? ? ? ? @ 若沒有復制完劣光,繼續(xù)

? ? mov pc,? ? lr? ? ? @ 返回

memsetup:

? ? @ 設置存儲控制器以便使用SDRAM等外設

? ? mov r1,? ? #MEM_CTL_BASE? ? ? @ 存儲控制器的13個寄存器的開始地址

? ? adrl? ? r2, mem_cfg_val? ? ? ? @ 這13個值的起始存儲地址

? ? add r3,? ? r1, #52? ? ? ? ? ? @ 13*4 = 54

1:?

? ? ldr r4,? ? [r2], #4? ? ? ? ? ? @ 讀取設置值,并讓r2加4

? ? str r4,? ? [r1], #4? ? ? ? ? ? @ 將此值寫入寄存器糟把,并讓r1加4

? ? cmp r1,? ? r3? ? ? ? ? ? ? ? ? @ 判斷是否設置完所有13個寄存器

? ? bne 1b? ? ? ? ? ? ? ? ? ? ? ? ? @ 若沒有寫成绢涡,繼續(xù)

? ? mov pc,? ? lr? ? ? ? ? ? ? ? ? @ 返回

.align 4

mem_cfg_val:

? ? @ 存儲控制器13個寄存器的設置值

? ? .long? 0x22011110? ? ? @ BWSCON

? ? .long? 0x00000700? ? ? @ BANKCON0

? ? .long? 0x00000700? ? ? @ BANKCON1

? ? .long? 0x00000700? ? ? @ BANKCON2

? ? .long? 0x00000700? ? ? @ BANKCON3?

? ? .long? 0x00000700? ? ? @ BANKCON4

? ? .long? 0x00000700? ? ? @ BANKCON5

? ? .long? 0x00018005? ? ? @ BANKCON6

? ? .long? 0x00018005? ? ? @ BANKCON7

? ? .long? 0x008C07A3? ? ? @ REFRESH

? ? .long? 0x000000B1? ? ? @ BANKSIZE

? ? .long? 0x00000030? ? ? @ MRSRB6

? ? .long? 0x00000030? ? ? @ MRSRB7

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市遣疯,隨后出現(xiàn)的幾起案子雄可,更是在濱河造成了極大的恐慌,老刑警劉巖缠犀,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件数苫,死亡現(xiàn)場離奇詭異以蕴,居然都是意外死亡柏锄,警方通過查閱死者的電腦和手機杆查,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門灭美,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咆瘟,“玉大人沿盅,你說我怎么就攤上這事佳窑⊥旆猓” “怎么了燎悍?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵敬惦,是天一觀的道長。 經(jīng)常有香客問我间涵,道長仁热,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任勾哩,我火速辦了婚禮抗蠢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘思劳。我一直安慰自己迅矛,他們只是感情好,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布潜叛。 她就那樣靜靜地躺著秽褒,像睡著了一般壶硅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上销斟,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天庐椒,我揣著相機與錄音,去河邊找鬼蚂踊。 笑死约谈,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的犁钟。 我是一名探鬼主播棱诱,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼涝动!你這毒婦竟也來了迈勋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤醋粟,失蹤者是張志新(化名)和其女友劉穎靡菇,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體昔穴,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡镰官,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吗货。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡狈网,死狀恐怖宙搬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拓哺,我是刑警寧澤勇垛,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站士鸥,受9級特大地震影響闲孤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜烤礁,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一讼积、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧脚仔,春花似錦勤众、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吕朵。三九已至,卻和暖如春窥突,著一層夾襖步出監(jiān)牢的瞬間努溃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工阻问, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留茅坛,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓则拷,卻偏偏與公主長得像贡蓖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子煌茬,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容