ARM JTAG仿真器调试方法之SDRAM篇

http://blog.chinaunix.net/u/26710/showart_257085.html
之前介绍了使用
ARM JTAG 仿真器将映像文件加载到 ARM 处理器内部 SRAM 中进行程序调试的方法,而在实际操作中,将映像文件加载到外部 SDRAM 中进行调试的方式更为常见。

       要把映像文件加载到SDRAM中,除了要正确设置好映像文件的RO段基地址外(对于一个加载时域和运行时域相同的映像文件来说,RO段基地址实际上就是该映像文件在存储空间的起始地址),更关键的是要对SDRAM进行初始化。因为在上电时,SDRAM是没有被初始化的,所谓初始化SDRAM,就是要设置处理器的SDRAM空间以及读写SDRAM的时序参数,因而SDRAM在初始化之前是不能进行读写操作的。

       对于PXA270处理器,初始化SDRAM的工作通过配置存储控制器寄存器来完成,这些寄存器包括MDCNFGMDREFRMDMRS

       由于这些寄存器都映射到了某一存储空间地址,因而可以在AXD的命令行窗口(System Views->Command Line Interface [Alt+L])中使用setmem命令来对寄存器进行配置。setmem命令(简写为smem)可以为存储空间的某一地址单元指定值。例如“setmem 0x48000000 0xac9 32 的含义就是将常数0xac9保存到地址为0x48000000的字中(一个字32bit)。实际上,通过查阅Intel PXA27x Processor Family Developer’s Manual可知,0x48000000正是寄存器MDCNFG的地址,因而这条命令实质上完成了对MDCNFG寄存器的配置,使能SDRAM partition 0,使用32bit宽的SDRAM数据总线,9位列地址,13位行地址,SDRAM内部采用4 bank设计,tRP=3CL=3tRCD=3tRAS7tRC10,采用普通寻址模式;不使用SDRAM partition 2/3。具体设置要根据实际所使用的SDRAM芯片进行。

       因此,可使用34setmem命令初始化SDRAM,之后就可以正确地将映像文件加载到SDRAM中运行了。顺便提一句,PXA270有两种SDRAM存储模式,一种是小空间模式,支持4 64M partition共计 256M 字节,起始地址为0xa0000000;另一种是大空间模式,支持4 256M partition共计1GB,起始地址为0x80000000。应根据实际情况设置正确的RO BASE地址。

       

    关于使用ob命令自动初始化SDRAM

       由于每次上电后往SDRAM加载映像时都需要对其进行初始化,手工输入多条命令有时是很繁琐的。这时,可以把初始化SDRAM的命令序列保存在一个*.ini文本文件中(也可以是*.txt文件),每条命令占一行。然后在AXD命令行窗口使用obey命令调用该*.ini文件,就可以将文件中的命令顺序执行,继而完成SDRAM的初始化。

       例如,将SDRAM初始化命令序列保存在PXA270.ini文件中,执行命令:

       ob $PATH/PXA270.ini

       就可自动执行初始化SDRAM的命令。其中,obobey的简写,$PATHPXA270.ini文件的绝对路径。

       更多AXD命令和内容可以参考ADS手册之《AXD and armsd Debuggers Guide》。

 

       启动AXD时自动初始化SDRAM

       感谢网友Garfield的指点,他提出了在硬件平台不变的情况下,在启动AXD时自动初始化SDRAM的一劳永逸的办法,经笔者证实,该方法确实是可行的。

具体办法如下:

将初始化SDRAM的命令序列保存为一个*.txt文本文件(可以直接将上述的*.ini文件后缀改为.txt),然后在AXD的主窗口下选择菜单Options>Configure Interface...,在Session File一页中选择“Run Configuration Script”,将该.txt文本文件作为一个脚本加进来,确定。这样以后每次启动AXD时,就会自动运行该脚本来完成对SDRAM的初始化。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值