ARM入门笔记——SDRAM测试
嵌入式硬件平台:TQ2440开发软件:gcc + gdb + vim
软件环境:VM + ubuntu + SecureCRT + dnw
nandflash启动,从setppingstone复制代码到sdram,然后跳转到sdram运行。
启动代码:
@*************************************************************************************
@文件:start.s
@描述:关看门狗,设置SDRAM相关寄存器,将程序复制到SDRAM,然后跳转到sdram执行
@时间:20111112
@*************************************************************************************
.equ MemCfgBase, 0x48000000
.equ SdramBase, 0x30000000
.text
.global _start
_start:
bl DisWTD @关看门狗
bl SetupSdram @sdram相关13个寄存器设置
bl CpSetppingstone2Sdram @复制代码到sdram
ldr pc, =OnSdram @跳转到sdram
OnSdram:
ldr sp,=0x34000000 @设置栈 64m
bl main @跳转到main
halt_loop:
b halt_loop
DisWTD:
ldr r0, =0x53000000
mov r1, #0x0
str r1,
mov pc, lr @返回
SetupSdram:
ldr r0, =MemCfgBase @存入起始地址
adr lr1,MemCfgVal @存入寄存器val表地址
add r3, r0, #52 @13*4 = 52
loopSetup:
ldr r2, , #4 @读val,并+4
str r2, , #4 @写入寄存器,r0+4
cmp r0, r3 @是否写完
bne loopSetup
mov pc, lr @写完则返回
@复制代码到sdram
CpSetppingstone2Sdram:
ldr r0, =SdramBase @存入Sdram起始地址
mov r1, #0x0 @
mov r2, #4*1024 @拷贝4k到sdram
loopCopy:
ldr r3, , #4
str r3, , #4
cmp r1, r2
bne loopCopy
mov pc, lr @返回
@建立13个寄存器val表
MemCfgVal:
.align 4 @按照4的倍数对齐
.long 0x22011112 @BWSCON
.long 0x00000700 @BANKCON0 nor
.long 0x00000700 @BANKCON1
.long 0x00000700 @BANKCON2
.long 0x00000700 @BANKCON3
.long 0x00000700 @BANKCON4 dm9000
.long 0x00000700 @BANKCON5
.long 0x00018005 @BANKCON6 sdram 9bit 3clk
.long 0x00018005 @BANKCON7
.long 0x008C07A3 @REFRESH (12mHz) enable CBR 2clk 7clk
.long 0x000000B1 @BANKSIZE 64M
.long 0x00000030 @MRSRB6 3clk
.long 0x00000030 @MRSRB7
修改原因:修改版式 makefile:
CFLAG := -Wall -O2 -g
obj := start.o memary.o
memary.bin : $(obj)
arm-linux-ld -Ttext 0x30000000 $^ -o memary_elf
arm-linux-objcopy -O binary -S memary_elf memary.bin
arm-linux-objdump -D -m arm memary_elf > memary.dis
%.o : %.c
arm-linux-gcc $(CFLAG) -c $< -o $@
%.o : %.s
arm-linux-gcc $(CFLAG) -c $< -o $@
.PHONY :clean
clean:
rm -rf *.o memary.bin memary_elf *.bin
memary.c :
使用流水灯的c文件就好
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=5191993&bbs_page_no=1&bbs_id=1032
工程文件
点击此处下载 ourdev_694634E5UKDA.zip(文件大小:13K) (原文件名:memary.zip) http://cache.amobbs.com/bbs_upload782111/files_47/ourdev_694635TAKQWX.JPG
(原文件名:memary.dis.JPG) 顶,有时间看看 很好。 终于有人顶贴了,前边还有三篇(点灯,按键,linux下建设arm开发环境),方便和我一样入门的同学。 正要学,就来了。
页:
[1]