历史上的今天
返回首页

历史上的今天

今天是:2024年10月14日(星期一)

正在发生

2018年10月14日 | JZ2440裸板之SDRAM启动分析

2018-10-14 来源:eefocus

启动文件head.S源码:

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

@ File:head.S

@ 功能:设置SDRAM,将程序复制到SDRAM,然后跳到SDRAM继续执行

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

.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中继续执行

on_sdram:

    ldr sp, =0x34000000                   @ 设置堆栈

    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数据全部复制到SDRAM中去

    @ Steppingstone起始地址为0x00000000,SDRAM中起始地址为0x30000000

    

    mov r1, #0

    ldr r2, =SDRAM_BASE

    mov r3, #4*1024

1:  

    ldr r4, [r1],#4     @ 从Steppingstone读取4字节的数据,并让源地址加4

    str r4, [r2],#4      @ 将此4字节的数据复制到SDRAM中,并让目地地址加4

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

    bne 1b               @ 若没有复制完,继续

    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                          @ 若没有写成,继续

    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

====================================================================

leds.c源码:

#define    GPFCON        (*(volatile unsigned long *)0x56000050)

#define    GPFDAT        (*(volatile unsigned long *)0x56000054)

#define    GPF4_out    (1<<(4*2))

#define    GPF5_out    (1<<(5*2))

#define    GPF6_out    (1<<(6*2))

void  wait(volatile unsigned long dly)

{

    for(; dly > 0; dly--);

}

int main(void)

{

    unsigned long i = 0;

    

    GPFCON = GPF4_out|GPF5_out|GPF6_out;    // 将LED1,2,4对应的GPF4/5/6三个引脚设为输出

    while(1){

        wait(30000);

        GPFDAT = (~(i<<4));                 // 根据i的值,点亮LED1,2,4

        if(++i == 8)

            i = 0;

    }

    return 0;

}

====================================================================

Makefile文件:

sdram.bin : head.S  leds.c

    arm-linux-gcc  -c -o head.o head.S

    arm-linux-gcc -c -o leds.o leds.c

    arm-linux-ld -Ttext 0x30000000 head.o leds.o -o sdram_elf

    arm-linux-objcopy -O binary -S sdram_elf sdram.bin

    arm-linux-objdump -D -m arm  sdram_elf > sdram.dis

clean:

    rm -f   sdram.dis sdram.bin sdram_elf *.o

====================================================================

注意:

       虽然nor flash、网卡和SDRAM的接口一样都是内存类接口,但是SDRAM属于内存类设备,nor flash、网卡不属于内存类设备,叫做RAM Like。


       此实验在测试时不能直接下载到内存中直接运行,要先烧写到nand flash中再运行,否则从片内内存拷贝4k到SDRAM中运行系统会崩溃。


       具体下载方法参见:“JZ2440开发板裸板烧写方法”


JZ2440裸板之SDRAM启动分析


推荐阅读

史海拾趣

BELLING LEE公司的发展小趣事

随着电子市场的不断发展和消费者需求的多样化,BELLING LEE公司意识到单一的产品线已无法满足市场需求。于是,公司开始积极拓展产品线,推出了包括智能手机、平板电脑、智能家居设备等一系列新产品。这些新产品不仅满足了消费者的多样化需求,也进一步巩固了公司在电子市场的领先地位。

BLT Circuit Services公司的发展小趣事

品质一直是BLT Circuit Services公司的核心竞争力。公司注重品质管理,建立了严格的质量控制体系,从原材料采购到生产过程中的每一个环节都进行严格把关。正是这种对品质的执着追求,使得BLT Circuit Services的产品在行业内赢得了良好的口碑,为公司赢得了大量的忠实客户。

Honda Tsushin Kogyo Co Ltd公司的发展小趣事

Honda Tsushin Kogyo在发展的过程中,可能形成了独特的企业文化和社会责任感。公司注重员工培训和团队建设,为员工提供良好的工作环境和发展机会。同时,公司还积极参与社会公益事业,通过捐赠、志愿服务等方式回馈社会。这些举措不仅提升了企业的社会形象,还增强了员工的归属感和凝聚力。在企业文化和社会责任的引领下,Honda Tsushin Kogyo实现了经济效益和社会效益的双赢。

需要注意的是,由于Honda Tsushin Kogyo的具体发展历程和详细故事可能并不完全公开,以上内容主要基于一般性的电子行业发展趋势和企业发展规律进行推测和整理。

Delta Electronics公司的发展小趣事

Delta Electronics成立于1971年,最初只是台湾一家小型电子制造公司。随着技术的不断进步和市场的扩大,公司逐渐开始拓展其业务范围。上世纪90年代初,Delta在中国大陆设立了生产基地,这标志着公司全球扩展战略的重要一步。随后,公司陆续在美国、欧洲、亚洲等地建立了研发中心和生产基地,为全球客户提供优质的电子产品和解决方案。

Hi-Tron Semiconductor Corp公司的发展小趣事

Delta Electronics在电源管理技术方面一直处于行业领先地位。公司不断投入研发资源,推动电源技术的创新和进步。其中,Delta开发的高效率开关式电源供应器,以其高效、稳定和可靠的性能,赢得了全球客户的广泛认可。此外,公司还积极推广绿色能源和节能技术,为客户提供环保、节能的电源解决方案。

Eclipse Magnetics公司的发展小趣事

Delta Electronics在电源管理技术方面一直处于行业领先地位。公司不断投入研发资源,推动电源技术的创新和进步。其中,Delta开发的高效率开关式电源供应器,以其高效、稳定和可靠的性能,赢得了全球客户的广泛认可。此外,公司还积极推广绿色能源和节能技术,为客户提供环保、节能的电源解决方案。

问答坊 | AI 解惑

Protel99出现“Access violation at address 40067324 in module 'Vcl50.bpl'.

使用Protel99打开PCB图的时候出现“Access violation at address 40067324 in module \'Vcl50.bpl\'. Write of address 0000014C” 请问怎么解决啊…

查看全部问答>

示波器开发总结

这段时间一直比较忙,没有时间来整理资料,幸亏有汤汤的提醒,做一些简单的总结和资料的发布。 示波器的性能指标: 最高60M采样; 具有上升边沿或下降边沿的电平触发功能; 采用2.8寸TFT显示,人机界面友好; 采用STM32控制器作为主控芯片,波 ...…

查看全部问答>

终结嵌入式时代的方案(原创)

这样设想,有一个家庭,他们有很多家用电器,包括电视机,空调,微波炉,冰箱等等,他们都需要有一个控制程序。现在一般是用嵌入式在家电里面进行编程是吧?这样有很多问题,一个是开发成本,因为要给每个家电做个小程序,用来控制它,一个是这个嵌 ...…

查看全部问答>

LPC2478能跑WinCE吗?

得到一块LPC2478的开发板,里面的资源太少了,只有些Demo程序,如果自己在上面移植个操作系统,ARM7TDMI-S,没MMU也能跑Linux、winCE吗? 请了解的人给点建议。…

查看全部问答>

串口通信的问题,高手来帮帮忙!

我们单位要给新买的AN2512C支流低电阻测量仪编一个软件用串口读取测量数据,vc++。这台仪器支持串口通信(说明书里也提供了通信协议)。可是我编出来之后“不灵”(也就是说那台仪器“没有反应”),求教高手!谢谢。 我用串口精灵也调过,按照协 ...…

查看全部问答>

何时可以买到STM32L的样品?

多处寻找STM32L样品未果,请版主提供一下线索,还有多久。 如果等待太长只好再选其他M3…

查看全部问答>

AD DA 芯片求推荐

主要是希望牛牛们推荐符合要求的主流片子。 AD/DA分辨率都为12bit以上, 多路(AD一共需要8路,DA一共需要16路,当然不一定一片搞定)。 速度是AD总转换时间小于5us,DA建立时间小于5us。  …

查看全部问答>

怎样让两个信号源发出的信号同步

我做的一个模电书中反向加法电路,想让两个信号源中发出的信号同步,比如全是100HZ,峰峰值是100mv,这两者之间没有相位差。这是我的两个信号源发生器,下图…

查看全部问答>

Xilinx ISE软件安装包

有木有给个Xilinx ise的安装包加破解包呢。。。小女子电脑是win764位机,几次下载安装都不正确。。而且Xilinx官网注册了但是老显示错误。。急求,谢谢。。。…

查看全部问答>