<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 用C語(yǔ)言和ARM匯編語(yǔ)言設置SDRAM的慣用方法

用C語(yǔ)言和ARM匯編語(yǔ)言設置SDRAM的慣用方法

作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò ) 收藏
用C語(yǔ)言設置SDRAM的慣用方法

/* SDRAM regisers */

本文引用地址:http://dyxdggzs.com/article/201611/317091.htm

#defineMEM_CTL_BASE0x48000000// BWSCON的地址

#defineSDRAM_BASE0x30000000// SDRAM的起始地址

/* SDRAM 13個(gè)寄存器的值*/

/*定義了一個(gè)數組,把13個(gè)寄存器的設置值存到一個(gè)數組里面*/

unsignedlongconstmem_cfg_val[]={//注意unsignedlongconst的含義…

0x22111110,//BWSCON

0x00000700,//BANKCON0

0x00000700,//BANKCON1

0x00000700,//BANKCON2

0x00000700,//BANKCON3

0x00000700,//BANKCON4

0x00000700,//BANKCON5

0x00018005,//BANKCON6

0x00018005,//BANKCON7

0x008e07a3,//REFRESH

0x000000b2,//BANKSIZE

0x00000030,//MRSRB6

0x00000030,//MRSRB7

};

/*設置控制SDRAM的13個(gè)寄存器*/

/* for循環(huán)總共13次,剛好對13個(gè)寄存器賦值完畢*/

void memsetup()

{

inti = 0;

unsignedlong*p = (unsignedlong *)MEM_CTL_BASE;

for(; i < 13; i++)

p[i] = mem_cfg_val[i];

}

ARM匯編語(yǔ)言設置SDRAM的慣用方法

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

@ File:head.s

@功能:設置SDRAM,將程序復制到SDRAM,然后跳到SDRAM繼續執行

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

.equMEM_CTL_BASE,0x48000000

.equSDRAM_BASE,0x30000000

.text

.global _start

_start:

bldisable_watch_dog

blmemsetup

blcopy_steppingstone_to_sdram

ldrpc,=set_sp@跳到SDRAM中繼續執行

halt_loop:

bhalt_loop

memsetup:

@ initialize the static memory

@ set memory control registers

movr1,#MEM_CTL_BASE

adrlr2,mem_cfg_val@ adrl用于搬運地址

movr3, #0x0@給r3清零(自己加上的一條指令)

addr3,r1, #52@ 52 == 4*13

1:

ldrr4,[r2], #4

strr4,[r1], #4

cmpr1,r3

bne1b@每次遞增4個(gè)字節,共循環(huán)13次(設置13個(gè)寄存器)

movpc,lr



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>