历史上的今天

今天是:2024年11月08日(星期五)

2021年11月08日 | MINI2440裸机实验之SDRAM

发布者:huanhui 来源: eefocus关键字:MINI2440  裸机实验  SDRAM 手机看文章 扫描二维码
随时随地手机看文章

程序编写

本次实验将实现初始化SDRAM并将程序自身复制到SDRAM中然后跳转至SDRAM中继续执行流水灯。

依然是在上次程序的基础上进行修改,本次需要修改的文件包括”start.S”和”Makefile”,修改后的文件内容如下:


/* start.S */

.text

.global _start

_start:

#define MDIV  0x7f << 12

#define PSDIV 0x21


    ldr r0, =0x53000000

    mov r1, #0x00

    str r1, [r0]    /* disable the watchdog timer */


    bl mpll_setup

    bl mem_setup

    bl relocate

    ldr pc, =on_sdram


on_sdram:

    ldr sp, =0x34000000    /* set stack pointer */

    b  main


relocate:

    ldr r0, =0x30000000

    ldr r1, =0x40000000

    add r2, r0, #1024*4

1:

    ldr r3, [r1], #4

    str r3, [r0], #4

    cmp r2, r0

    bne 1b

    mov pc, lr


mpll_setup:

    ldr r0, =0x4c000000

    mov r1, #0xffffffff

    str r1, [r0]    /* set locktime register */


    ldr r0, =0x4c000014

    mov r1, #5

    str r1, [r0]    /* set CLKDIVN register */


    mrc  p15, 0, r1, c1, c0, 0   

    orr  r1, r1, #0xc0000000     

    mcr  p15, 0, r1, c1, c0, 0    /* change bus mode */


    ldr r0, =0x4c000004

    mov r1, #MDIV

    add r1, r1,#PSDIV

    str r1, [r0]    /* set MPLLCON register */

    mov pc, lr


mem_setup:

    ldr r0, =0x48000000

    adr r1, mem_cfg_val

    add r2, r0, #13*4

1:

    ldr r3, [r1], #4

    str r3, [r0], #4

    cmp r2, r0

    bne 1b

    mov pc, lr


.align 4

mem_cfg_val:

    .word   0x22000000  /* BWSCON   */

    .word   0x00000700  /* BANKCON0 */

    .word   0x00000700  /* BANKCON1 */

    .word   0x00000700  /* BANKCON2 */

    .word   0x00000700  /* BANKCON3 */

    .word   0x00000700  /* BANKCON4 */

    .word   0x00000700  /* BANKCON5 */

    .word   0x00018005  /* BANKCON6 */

    .word   0x00018005  /* BANKCON7 */

    .word   0x008C04F5  /* REFRESH  */

    .word   0x000000B1  /* BANKSIZE */

    .word   0x00000030  /* MRSRB6   */

    .word   0x00000030  /* MRSRB7   */


@Makefile

objs := start.o led.o


led.bin:$(objs)

    arm-linux-ld -Ttext 0x30000000 -o led_elf $^

    arm-linux-objcopy -O binary -S led_elf $@

    arm-linux-objdump -D -m arm led_elf > led.dis

%.o:%.c

    arm-linux-gcc -c -o $@ $<

%.o:%.S

    arm-linux-gcc -c -o $@ $<

clean:

    rm -f led_elf *.o


为了使程序更加直观,在”start.S”中采用标号将程序进行了分段。


和之前的Makefile进行比较可以发现链接地址由原来的0x40000000变为了0x30000000。


修改完成编译后,仍然使用JLINK将程序下载至内部SRAM(0x40000000)处执行,可以看到流水灯仍正常执行,说明SDRAM控制寄存器初始化成功且程序搬移成功。


有关程序跳转至SDRAM执行的原理可参考《嵌入式应用开发完全指南》或者自行搜索”位置无关代码”以及”装载地址和运行地址”。


关键字:MINI2440  裸机实验  SDRAM 引用地址:MINI2440裸机实验之SDRAM

上一篇:MINI2440 MPLL
下一篇:最后一页

推荐阅读

集微网信息,美光(Micron)推出旗下首款单片容量12Gb(1.5GB)的LPDDR4X低电压内存芯片,该款内存芯片速度为4266Mbps,即4266MHz。        现代人几乎难以摆脱对智能移动终端的依赖,随着系统和应用程序的不断升级优化,对内存的要求将会逐步提高,因此高频率、大容量的LPDDR4X内存将成为主流。今年10月公布的海思麒麟980芯片就非常具有前瞻性地...
  去年4月,中芯国际向荷兰ASML公司订购了一台EUV光刻机,用于研究7nm及以下的先进工艺。花费超过1.2亿欧元(约10亿人民币),预计今年底交货,2020年正式安装。来自日经新闻消息称,因为受到美国政府关切,ASML将延后对中国晶圆代工企业中芯国际出货。  消息发酵后,中芯国际股价因此受挫,今日跌幅一度超过6%。  对此ASML与中芯国际均对此表示否定...
在9月15日美对华为的最强禁令下达之后,业界一直关注台积电为华为制造芯片的“口子”何时能开?据硅谷分析狮引外媒消息称,台积电可能已经被批准可以向华为继续供货了,不过供货的货源是被严格限制的。报道中提到,台积电获得许可是28nm等成熟的工艺,不包括16nm、10nm、7nm、5nm这些先进的制程工艺,这也就意味着台积电依旧不能为华为代工最新的麒麟9000...
11月6日,芯瑞达在投资者互动平台表示,公司一直深耕新型显示领域,在研的Micro LED技术项目可应用于VR/AR显示终端,目前尚未转换为订单。在植物照明领域,自2017年取得相关发明专利以来,目前已售产品包括高光子通量效率在660、730nm等系列红光LED,营收较小,在公司收入结构中占比较低。资料显示,芯瑞达自设立以来,每年均有新增导入品牌厂商的供应链...

史海拾趣

问答坊 | AI 解惑

晓刚电学计算小程序

晓刚电学计算小程序本程序比较简单比较适合像我这样的初学者使用…

查看全部问答∨

新年新气象

新的一年里,我们要紧密扎根在电子工程世界网论坛里,高举\"有空必来,有来必言,有言必留,有留必看\"理论的伟大旗帜,认真贯彻落实\"雁过留声,人过留言\"的要求,坚持\"知无不言、言无不尽\"的思想路线,弘扬\"一不怕手酸,二不怕麻烦\"的大无畏 ...…

查看全部问答∨

请教各位高手

我是一个刚接触手机测试的菜鸟,请问各位高手:如何利用CMU200或8960来判断手机的功放有没有在正常工作. 谢谢各位,请各位高手多多指教!…

查看全部问答∨

老师是这么教我们单片机的(转)

老师是这么教我们单片机的(转) 看到不少网友都在问怎样提高自己的能力,我在这里想谈一下我自己当年的学习过程。 我学的是计算机系的通讯工程专业,主要的发展方向是做计算机网络偏软件这一块,这点从我的毕业设计课题《宾馆客房管理系统》就能看 ...…

查看全部问答∨

你听话吗?两种老板不喜欢的人

一种是固执己见的人,原因就不用讲了。另一种是唯命是从的人,因为老板从你这里不会得到任何启发。在这两点中取得平衡也很不容易呢,一方面要让老板觉得很有想法,另一方面还要让老板感到你不会给他对着干。 哈,可有得学呢。…

查看全部问答∨

波特率的计算

51单片机的晶振是:11.09520MHZ,如果要产生9600bps的波特率,下面是我在网上找到了公式: 波特率=1/16或1/32*(晶振的频率/12*(256-TH1)) 代入: 9600=11059200/32*12*(256-TH1) TH1=TH0=FDH 现在的问题是:为什么要除以:32 呢? …

查看全部问答∨

如何在窗口贴gif格式的动态图片,显示出来还是动态的

如何在窗口贴gif格式的动态图片,显示出来还是动态的,各位帮帮忙…

查看全部问答∨

蓝牙项目外包 蓝牙开发板 蓝牙模块

本人有多年蓝牙项目经验,对蓝牙产品发展,市场运作和开拓,有一套成熟的思路和方法,如有公司或个人打算开发蓝牙产品,可以与我联系,(出售各种蓝牙模块,开发板,外包项目) 邮箱:bt_sw@163.com 电话:0755-29566295 / 13728917520   ...…

查看全部问答∨

创建博客

在这里开始我的博客生涯,将过去几年生活和工作的总结一点点记录下来。由于我的工作主要是语音信号处理,所以接下来的一些文章或者说笔记都是关于以下几个方面:语音增强,声音放大,多麦克风语音处理,语音质量评价,编程语言(MATLAB,C,汇编),DS ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved