之前介绍了使用ARM JTAG仿真器将映像文件加载到ARM处理器内部SRAM中进行程序调试的方法,而在实际操作中,将映像文件加载到外部SDRAM中进行调试的方式更为常见。
要把映像文件加载到SDRAM中,除了要正确设置好映像文件的RO段基地址外(对于一个加载时域和运行时域相同的映像文件来说,RO段基地址实际上就是该映像文件在存储空间的起始地址),更关键的是要对SDRAM进行初始化。因为在上电时,SDRAM是没有被初始化的,所谓初始化SDRAM,就是要设置处理器的SDRAM空间以及读写SDRAM的时序参数,因而SDRAM在初始化之前是不能进行读写操作的。
对于PXA270处理器,初始化SDRAM的工作通过配置存储控制器寄存器来完成,这些寄存器包括MDCNFG,MDREFR,MDMRS。
由于这些寄存器都映射到了某一存储空间地址,因而可以在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=3,CL=3,tRCD=3,tRAS=7,tRC=10,采用普通寻址模式;不使用SDRAM partition 2/3。具体设置要根据实际所使用的SDRAM芯片进行。
因此,可使用3~4条setmem命令初始化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的命令。其中,ob是obey的简写,$PATH是PXA270.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的初始化。
附:每次系统重新上电或硬件复位后都需要重新初始化SDRAM才能把映像文件加载到SDRAM。可以设置在AXD启动时自动对SDRAM进行初始化,见“启动AXD时自动初始化SDRAM”部分。有时候AXD启动后需要重新配置,这是ADS自身的问题,主要是看启动后在Command Line Interface窗口有没有出现初始化SDRAM的命令,另外在AXD的源码窗口右键Interleave Disassembly,看各条代码在SDRAM中对应地址的内容是否为正确的机器码,来检查映像文件是否成功加载。
关键字:ARM JTAG仿真器 调试方法 SDRAM
引用地址:
ARM JTAG仿真器调试方法之SDRAM篇
推荐阅读最新更新时间:2024-03-16 14:35
单片机与ARM的区别
相信很多网友在印象中对于单片机与ARM的区别非常疑惑,下面小编就为大家一一阐述两者的差别: 1、软件方面 这应该是最大的区别了 。 引入了操作系统。为什么引入操作系统?有什么好处嘛? 1)方便。主要体现在后期的开发,即在操作系统上直接开发应用程序。不像单片机一样一切都要重新写。前期的操作系统移植工作,还是要专业人士来做。 2)安全。这是LINUX的一个特点。LINUX的内核与用户空间的内存管理分开,不会因为用户的单个程序错误而引起系统死掉。这在单片机的软件开发中没见到过。 3)高效。引入进程的管理调度系统,使系统运行更加高效。在传统的单片机开发中大多是基于中断的前后台技术,对多任务的管理有局限性。 2、硬件方面 现
[单片机]
双ARM7 SoC参考设计实现多电压AVS
电压调节技术与频率调节技术的结合使用为时钟切换添加了新原则,以确保新时钟频率拥有安全的电压电平。此外,电压调节功能需要在SoC内创建电压域。这将在两个可变电压域之间或可变电压域和静态电压域之间创建电压域接口。跨越接口的可变电压电平差为接口设计带来了独特挑战。时钟、信号电平转换以及电压域隔离等问题都必须仔细考虑,以确保最短延迟和信号完整性。
先进电源控制器 作为美国国家半导体PowerWise技术的一部分,先进电源控制器(APC)旨在协助调节电压域的电压控制。APC支持闭环自适应电压调节(AVS)和开环动态电压调节(DVS)。APC支持动态频率调节功能,带有至时钟管理单元(CMU)的接口,可为SoC提供时钟信号。
[电源管理]
苹果将在开发者大会上公布自制的ARM版Mac处理器
WWDC开发者大会上,苹果要发布多款新系统,不过这次可能这些并不是重点,那是什么? 知名分析师郭明錤今天给出的报道称,苹果会在明天举行的WWDC上发布Mac电脑转换至自家设计的 ARM 处理器计划。为了让开发者有时间可准备ARM版本的macOS app,故将在 WWDC发布Mac转换至ARM的计划。 在这份报告中,郭明錤透露,首批支持ARM处理器的Mac包括13英寸MacBook Pro和全新外观设计的24英寸iMac,这两款机器将于今年年底或明年初发布。 与搭载 Intel 处理器的 Mac 相比,ARM Mac 的效能会改善至少50-100%,而来2年内,MacBook产品线核心竞争力就是苹果ARM处理器、 min
[嵌入式]
JFlash ARM对stm32程序的读取和烧录
本篇文章主要是记录一下JFlash ARM 的相关使用和操作步骤,读取程序说不上破解,这只是在没有任何加密情况下对Flash的读写罢了! 在我们装了JLINK驱动后再根目录下找到JFlash ARM ,运行。 读取Flash程序: 第一步:Option-- Project Settings-- CPU下选择 Device 在下拉菜单中找到自己的芯片型号后点击确定。 第二步:Targect-- Connect链接JLINK ;Targect-- Read back-- Entrie chip读取整个Flash区域, 接下来就等待读取完成了。 第三部:File-- Save file as 选择要储存的文件类型如:HE
[单片机]
ARM增效能 x86降功耗 两阵营投入服务器市场长期竞争
DIGITIMES Research观察研究,ARM架构已逐步提升、强化其功效机制,使ARM架构的处理器能合乎伺服器系统的需求,这些功效机制包含多核、记忆体传输时的资料错误检查与更正、超越4GB的系统主记忆体定址能力,及64位元的运算等。 若将ARM架构针对伺服器的提升历程与x86架构相比较,可发现两者的提升历程相类似,差别在于x86架构的演进历程较早,然ARM架构的追赶脚步快速,功效差距已从10~15年拉近至7年。 当ARM架构逐渐提升后,x86架构的发创、主导、主占者英特尔亦有所警惕,以原有的Atom晶片为基础,衍生出高整合、低功耗的伺服器用处理器,即Atom S系列、C系列。 ARM架构以低功耗出发逐渐提升效能,x86
[手机便携]
第5课:ARM的中断
中断分为硬件中断和软件中断SWI 而硬件中断有内部中断,即中断控制器中所列出的那些中断。而外部中断在中断控制器里列的是EINT。 总共有60个中断源,而在中断控制器中列出32个,还有一些子中断在子中断控制器里列出。这些控制器我们都是通过寄存器的某一位来控制。 中断发生之后的流程: 1把下一条指令的地址放入LR,不过PC是5级流水线,所以LR的值要减去4才是正真的下一条指令的地址。 2把cpsr复制到中断模式的spsr 3pc设置到0x18的位置,这个位置是中断向量表,他指引程序跳转到中断处理程序。而中断处理程序的作用是1:保存上下文2:继续跳转到中断服务程序。 4退出的时候要恢复上下文,最重要的是把中断的spsr复制到c
[单片机]
面向无人驾驶,ARM推出最先进的安全处理器
2016年9月20日,北京讯 ARM推出具备先进安全特性的全新实时处理器,面向无人驾驶、医疗和工业机器人领域。ARM Cortex-R52旨在帮助系统实现功能安全,满足汽车和工业市场中最严格的安全标准ISO 26262 ASIL D 和 IEC 61508 SIL 3。 Cortex-R52针对有先进安全功能需求的系统量身打造,并同时具备高效能和实时反应的执行运算能力。它将满足多元化应用程序的需求,例如外科手术自动化、安全管理和汽车动力系统控制等。意法半导体是首位宣布获得该高性能处理器授权的合作伙伴,将用于针对汽车市场研发高度集成的系统级芯片(SoC)。 ARM处理器和多媒体处理部门总经理James McNiven表示: Cort
[汽车电子]
基于ARM Linux的Gameboy模拟器移植和优化研究
引言 面向A R M微处理器构架的嵌入式操作系统的使用量这些年持续增长,在各种嵌入式操作系统中, L inux是获得支持最多的第三大力量。 目前,ARM L inux支持包括ARM610、A RM710、ARM720T cores、ARM920T cores、StrongARM 110、StrongARM1100、XScale等系列的ARM处理器。 Gameboy是目前比较流行的8位掌上游戏机,通常被简称为GB,它的最终态Game Boy Color (GBC)是完全向后兼容的。Gnuboy是GB /GBC的软件模拟器,是一种自由软件,它是基于Qt系统的,能够运行几乎所有的黑白和彩色的GB /GBC游戏ROM,但
[单片机]