码迷,mamicode.com
首页 > 其他好文 > 详细

实验三——SDRAM

时间:2014-11-08 16:35:34      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   os   sp   文件   div   on   

一。运行环境

  开发板:jz2440

  系统:  ubuntu12.04

  编译器:arm-linux-gcc

  关于介绍性 的东西这里不说,以及2440的地址映射图什么的  ,有空再补充。

  先看代码:这里主要有三个head.S  ,led.c ,Makefile,其中led的代码同流水灯一样,直接拷贝过来。

  此外外,代码参考韦东山先生的源码,经过烧写可验证没问题。

二。直接贴代码

先看Makefile:

1 sdram.bin:head.S led.c
2     arm-linux-gcc -Wall -O2 -c -g -o head.o head.S
3     arm-linux-gcc -Wall -O2 -c -g -o led.o led.c
4     arm-linux-ld -Ttext 0x30000000 head.o led.o -o sdram_elf
5     arm-linux-objcopy -O binary -S sdram_elf sdram.bin
6     arm-linux-objdump -D -m arm sdram_elf>sdram.dis
7 
8 clean:
9     rm -f sdram.bin sdram_elf*.o sdram.dis

再看head.h

 1 .equ MEM_BASE,0x48000000
 2 .equ SDRAM_BASE,0x30000000
 3 
 4 .text
 5 .global _start
 6 _start:
 7 
 8     bl close_watchdog       @关闭看门狗
 9     bl mem_set              @设置存储寄存器组
10     bl steppingstone_sdram  @复制代码到sdram
11 
12     ldr pc,=on_sdram
13 on_sdram:
14     ldr sp,=0x34000000
15     bl main
16 halt_loop:
17     b halt_loop
18 
19 
20 
21 close_watchdog:
22     mov r1,#0x53000000
23     mov r2,#0x0
24     str r2,[r1]
25 
26     mov pc,lr   @返回
27 
28 steppingstone_sdram:    @起始地址0x00000000,目标地址0x30000000
29     mov r1,#0
30     ldr r2,=SDRAM_BASE
31     mov r3,#1024*4
32 
33 
34 copy_loop:
35     ldr r4,[r1],#4
36     str r4,[r2],#4
37 
38     cmp r1,r3
39     bne copy_loop
40     mov pc,lr        @返回
41 
42 mem_set:
43     mov r1,#MEM_BASE
44 
45     adrl r2,JCQ
46     add r3,r1,#52      @4*13
47 
48 set_loop:
49     ldr r4,[r2],#4
50     str r4,[r1],#4
51     cmp r1,r3
52     bne set_loop
53 
54     mov pc,lr
55 
56 
57 .align 4
58 JCQ:
59     .long 0x22011110 @BWSCON
60     .long 0x00000700 @bankcon0
61     .long 0x00000700 @bankcon1
62     .long 0x00000700 @bankcon2
63     .long 0x00000700 @bankcon3
64     .long 0x00000700 @bankcon4
65     .long 0x00000700 @bankcon5
66     .long 0x00018005 @bankcon6
67     .long 0x00018005 @bankcon7
68     .long 0x008c07a3 @refresh
69     .long 0x000000b1 @banksize
70     .long 0x00000030 @mrsrb6
71     .long 0x00000030 @mrsrb7

其实没什么改动,换些名字而已,但是自己敲的话,当然会有一些细节上面会出错,不注意的地方。

以上启动文件是以汇编编写的,下面贴出c语言版的。

 

实验三——SDRAM

标签:style   blog   color   ar   os   sp   文件   div   on   

原文地址:http://www.cnblogs.com/hulig7/p/4083511.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!