日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

s3c2440的内存管理机制

發布時間:2023/12/10 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 s3c2440的内存管理机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.???? Nand FlashNor FlashSDRAM地址區別

Nand FlashROM,容量大,適用于數據存儲,ARM不能從Nand中直接啟動,需要把程序從Nand的前4k空間中拷貝到SDRAM,然后再從SDRAM中啟動。

Nor FlashROM,容量小,適用于程序存儲,ARM可以從Nor Flash中直接啟動。

SDRAM RAM,容量大,操作系統等大型軟件都運行在SDRAM中。

?

2.???? S3c2440尋址空間:

S3C244027地址線ADDR[26:0]8根片選信號ngcs0-ngcs7,對應bank0-bank7當訪問bankx的地址空間,ngcsx引腳為低電平,選中外設。

2^27=2^7 * 2^10 * 2^10 = 128Mbyte

8*128Mbyte = 1Gbyte

所以S3C2440總的尋址空間是1Gbyte(也就是最高地址0x40000000

尋址空間如下圖:

?

3.???? SDRAM的尋址原理:

SDRAM內部是一個存儲陣列。可以把它想象成一個表格。和表格的檢索原理一樣,先指定行,再指定列,就可以準確找到所需要的存儲單元。這個表格稱為邏輯BANK。目前的SDRAM基本都是4BANK。尋址的流程就是先指定BANK地址,再指定行地址,最后指定列地址。這就是SDRAM的尋址原理。

4.???? 內存片(HY57V561620F)的連接方式:

HY57V561620F的容量是16M尋址*16位寬=256Mbit

TQ2440中使用了兩片內存,總容量為2*32M=64Mbyte

A0-A12是地址線:行地址、列地址復用,行地址使用A0-A1213條),列地址使用A0-A89條)。

BA0-BA1bank選擇引腳。(bank選擇與行地址(row address)同時下發,在列地址下發時,有其他用途)

?

這個SDRAM

13根行地址線?? RA0-RA12

9根列地址線??? CA0-CA8

2BANK選擇線 BA0-BA1

SDRAM的地址引腳是復用的,在讀寫SDRAM存儲單元時,操作過程是將讀寫的地址分兩次輸入到芯片中,每一次都由同一組地址線輸入。兩次送到芯片上去的地址分別稱為行地址和列地址。它們被鎖存到芯片內部的行地址鎖存器和列地址鎖存器。/RAS是行地址鎖存信號,該信號將行地址鎖存在芯片內部的行地址鎖存器中;/CAS是列地址鎖存信號,該信號將列地址鎖存在芯片內部的列地址鎖存器中。

SDRAMA0接S3C2440的ADDR2,很多初學者都對這里又疑問。A0為什么不接ADDR0?

要理解這種接法,首先要清楚在CPU的尋址空間中,字節(8位)是表示存儲容量的唯一單位。

2片HY57V561620F擴展成32位SDRAM,可以認為每個存儲單元是4個字節。因此當它的地址線A1:A0=01時,處理器上對應的地址線應為ADDR3:ADDR2=0132SDRAM4字節一個地址,對應于CPU)(因為CPU的尋址空間是以Byte為單位的)。所以SDRAM的A0引腳接到了S3C2440的ADDR2地址線上。

(可以看成,ARM的尋址地址=CPU的地址*4,因為對CPU來講相當于沒讀一次都相隔4byte)。

?

同理,如果用1片HY57V561620F,數據線是16位,因為一個存儲單元是2個字節,這時SDRAM的A0要接到S3C2440的ADDR1上。

?也就是說SDRAM的A0接S3C2440的哪一根地址線是根據整個SDRAM的數據位寬來決定的。

上面的接線圖上,BA0,BA1ADDR24,ADDR25,為什么用這兩根地址線呢?

BA0~BA1代表了SDRAM的最高地址位。因為CPU的尋址空間是以字節(Byte)為單位的,本系統SDRAM容量為64MByte,那就需要A25~A0(64M=2^26)地址線來尋址,所以BA1~BA0地址線應該接到2440的ADDR25~ADDR24引腳上。

13根行地址線+9根列地址線 = 22根。另外HY57V561620F一個存儲單元是2個字節,相當于有了23根地址線。BA0,BA1是最高地址位,所以應該接在ADDR24,ADDR25上。

?

5.???? 啟動過程中尋址方式

系統啟動取決于S3c2440 CPUOM0OM1兩個引腳的取值:

因此在TQ2440中,直接將OM1接地(永遠為0),OM0作為撥碼開關,來選擇是從nand啟動(接地,0)還是從nor 32-bit啟動(懸空,1)。

6.???? Nor Flash引腳圖(EN29LV160AB-70TCP

地址線A0-A19,共20條;

數據線D0-D15,共16條(D15為數據、地址復用);

47BYTE#配置為字節byte模式時(0)D15用于A-1地址線,所以尋址空間為20+1=21條,也就是2M byte

47BYTE#配置為雙字word模式時(1),D0-D15都用于數據線,尋址空間為20條,1M,數據線D0-D15有效,數據量為1M*2=2Mbyte(TQ2440采用此模式)

7.???? 重要信息地址

?

標示

地址

含義

寄存器

寄存器范圍

0x48000000~0x5fffffff

?

?

S3C24X0_GPIO_BASE

0x56000000

Gpio各寄存器基地址

?

S3C2410_SDI_BASE

0x5A000000

SDI

?

S3C24X0_USB_DEVICE_BASE

0x52000140

用戶設備

?

S3C2410_NAND_BASE

0x4E000000

Nand

?

S3C24X0_LCD_BASE

0x4D000000

LCD

?

S3C24X0_INTERRUPT_BASE

0x4A000000

中斷

?

?

?

?

運行數據

_bss_start

0x33db6990

?

?

_armboot_start

0x33d80000

?

?

CFG_ENV_SIZE

0x20000

?

?

FREE_RAM_SIZE

0x3d1df7c

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

宏觀內存范圍

Nor Flash(nor 啟動方式)

0x00000000~0x001fffff

Nor flash位于bank0

2Mbyte容量。

?

CPU內部SRAMNand Flash啟動方式)

0x00000000~

Nand flash啟動時拷貝到SRAM中運行

?

外部SDRAM

0x30000000~0x34000000

64Mbyte容量

?

Nand Flash

NULL

Nand Flash不直連總線,通過控制器訪問。

?

?

內存分配

SDRAM地址end

@0x34000000

Bss_start

此上,為bss數據區

Armboot_start

此上,為uboot映像,大概200k

CFG_MALLOC_LEN

256k

GLB_DATA_SIZE

128byte+4byte

IRQ_stack

4k

FIQ_stack

4k

用戶棧區

128k

空閑地址空間

大概61MbyteSDRAM內存總共64M.

SDRAM地址start

@0x30000000

Nor /nand flash…..

?

?

?

?

8.???? 名詞解釋

?

?

?

nGCS0

芯片選擇(片選)寄存器

nGCS0-nGCS7

?

?

?

?

?

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的s3c2440的内存管理机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。