ARM JTAG 仿真器调试方法之 FLASH 篇
Aaron Wong http://aquarius.cublog.cn/
通常情况下,我们并不推荐在 FLASH 中进行程序调试,这是因为相对于其
他调试方法而言:
(1)将程序下载到 FLASH 中的速度较慢,操作也较复杂;
(2)程序在 FLASH 中的运行和调试速度较慢;
(3)对 FLASH 频繁擦写会缩短 FLASH 的使用寿命。
但某些情况下,必须要在 FLASH 中进行程序调试,这是因为在实际的系统
中,代码总是固化在 FLASH 中,在 FLASH 中运行程序更能反应程序的实际情
况。例如以下情形之一:
(1)程序在 SDRAM 中调试通过可以正确运行,而下载到 FLASH 中却运
行异常;
(2)使用 AXD 调试有中断服务例程的程序。
本文主要简单介绍基于 AXD 使用 JTAG 仿真器(Banyan-UE)在 FLASH 中
调试程序的基本方法。主要步骤如下:
(1)将二进制映像文件(调试对象)下载到 FLASH 中。对于 PXA270,使
用外部 FLASH 存储器,可使用 FlashWrite 软件进行烧写。对于一些有内部
FLASH 的芯片如 LPC21xx 系列,还可以将.axf 或其他格式的映像文件加载到内
部 FLASH 进行调试。
(2)使用 fromELF 工具生成映像文件的反汇编代码,具体做法是:在
CodeWarrior 中对工程进行设置,在 Edit->DebugRel Settings...的 ARM fromELF
一页中选择 Output format 为“Text information”,选中“Disassemble code”(这样
fromELF 工具就可以根据映像文件生成反汇编代码等信息,还可以选上 Print
symbol table、Print object size 等),并在 Output file name 一栏指定输出到某一
文本文件。本文使用这种方法,设置的对话框以及输出文件的部分内容如下图
所示。
评论1