优龙YLP2440开发板点滴
来源:互联网 发布:软件工程硕士 在职学费 编辑:程序博客网 时间:2024/06/15 15:16
ARM Jtag调试时,默认AXD并不会初始化SDRAM(这也难怪,AXD并不知道板子的连线情况),因此在把代码下到SDRAM调试之前需要进行初始化。可以利用NAND中已有的bootloader来实现SDRAM初始化:先复位JTAG,然后复位板子,看到SD卡旁的LED闪烁了就说明bootloader已经运行了,SDRAM也可用了。也可以让AXD通过JTAG配置2440的SDRAM控制寄存器实现对SDRAM的初始化,引用别人的;劳动成果:
通过axd命令行对目标板进行设置
因为我用的yl的2440板是配置为nand启动的,sdram是在0x30000000地址的,所以需要先对存储器控制寄存器进行设置,在axd下设置方法是:选systems views->command lines interface,输入如下命令对寄存器设置
地址 值 长度
setmem 0x53000000, 0x00000000, 32
还可以将要设置的寄存器写入一个文件,在命令行用ob(obey) config.ini即可批量执行设置指令或在options->Configure Interface中做如下设置
我的config文件内容如下:
setmem 0x53000000, 0x00000000, 32
setmem 0x4a000008, 0xffffffff, 32
setmem 0x4a00001c, 0x00007fff, 32
setmem 0x48000000, 0x2212d110, 32
setmem 0x48000004, 0x00000f40, 32
setmem 0x48000008, 0x00002e50, 32
setmem 0x4800000c, 0x00002e50, 32
setmem 0x48000010, 0x00002e50, 32
setmem 0x48000014, 0x00002e50, 32
setmem 0x48000018, 0x00002e50, 32
setmem 0x4800001c, 0x00018005, 32
setmem 0x48000020, 0x00018005, 32
setmem 0x48000024, 0x00960542, 32
setmem 0x48000028, 0x00000032, 32
setmem 0x4800002c, 0x00000030, 32
setmem 0x48000030, 0x00000030, 32
如果设置正确则开发版的SDRAM生效,则可以加载目标代码了
工程设置RO_base和Imgae entry point都为0x30100000,实测表明无论把bin文件下载到SDRAM中的任何地方都可以正常执行(当然是通过BIOS下载并移交控制权的),工程设置中将2440init.o定位在映象的最前面,因此2440init.S不仅负责C代码的搬移工作而且它的执行是地址无关的。
以上恰恰说明了刚买来板子的时候可以用JLINK直接跑起来而不需要在AXD中输入SDRAM初始化命令(那个时候还不知道SDRAM要初始化,只是看到2440init.o中有对SDRAM的初始化)或者通过写一个固定txt文件来针对板子初始化。
- 优龙YLP2440开发板点滴
- YLP2440开发板的linux解读
- 开发点滴
- 开发点滴
- 开发点滴
- C++ Builder开发点滴
- mapxtreme开发点滴
- Eclipse开发经验点滴
- 软件开发点滴资料
- 软件开发学习点滴
- Delphi 开发点滴
- Ext js开发点滴
- VC6开发点滴
- wince开发点滴
- Report Service 开发点滴
- WINCE开发点滴
- WEB开发经验点滴
- Flex开发点滴记录
- Git入门教程
- 入侵检测系统(IDS) vs 网络分析
- 一天一个C Run-Time Library 函数(8) assert
- 2008年度最佳开源软件大奖
- 浮躁的人——读后很受影响
- 优龙YLP2440开发板点滴
- dcc32.exe命令行编译工程搜索路径的问题
- char *内容输出
- window.open()的所有参数列表
- 补充一下后来想出的半截子绕过前一篇提到的问题的办法
- csdn开博啦~
- fckeditor添加文件删除功能~!
- Tomcat源码分析(一)
- thread和runable的区别