JTAG在线调试映射问题

[复制链接]
2324|2
 楼主| kkjiongquan 发表于 2010-2-23 17:42 | 显示全部楼层 |阅读模式
这两天用JTAG调试时发现奇怪的问题:每次发生中断时就跑飞,在网上搜了一下,原来是发生中断时没有找到中断向量表。我用反汇编单步调试,中断发生时,PC并没有跳到0x30000000处的中断向量表处(我已经在ADS把RO Base设置成0x30000000,也在IRQ中断设置了断点)就直接跑飞了。于是我把程序下载到NAND Flash(程序正常运行,中断没问题),在这情况下我再次使用JTAG在线调试,这下子中断不再跑飞了。于是我可以确定,JTAG在线调试发生中断时PC是跳到0x0开始的中断向量表。
    问题是,既然已经设置了RO Base为0x30000000,为什么0x0没有映射到RO Base呢?在线调试都是会这样吗?如果这样的话,是不是在线调试前都要确保NAND Flash 0x0处要写进中断向量表呢?
backupyan 发表于 2010-2-24 08:47 | 显示全部楼层
请问你开启了MMU的地址映射了吗?
可以把虚拟地址0x000000映射到物理地址0x3000 0000上即可不跑飞了.
看看你的启动代码中对MMU的设置.
 楼主| kkjiongquan 发表于 2010-2-25 10:14 | 显示全部楼层
2# backupyan
     我有另外一个问题,如果我在启动代码把整个映像复制到SDRAM,运行时发生了中断,PC可以跳到0x0开始的中断向量表(先不用MMU),当运行中断处理代码时,那不是有两个地方有HandlerIRQ吗?PC是跳到SDRAM的HandlerIRQ还是FLASH里面的HandlerIRQ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

50

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部