(mini2440)keil+jlink裸机中断程序如何调试

暗夜精灵 2012-10-31 10:51:24
环境为Keil uVision4+jlink(黑色那种)+mini2440
之前在这环境下调试led程序,可单步调试没问题,是运行在sdram里面的
现在不知如何调试终端程序
中断程序代码是我从网上下的,按键中断
自己写的怕错了,所以到网上下
已测试,程序没问题,因为不调试,只编译,把编译后的bin通过supervivi下载到nandflash中,再从nandflash启动,是可用的
但如果在keil的options for target设置Target标签页中,ROM1:0x30000000,size:0x1000000;RAM1:0x31000000,size:0x1000000;IRAM1:0x40000000,size:0x1000
再加上作者提供的RuninRAM.sct和Ext_RAM.ini无法调试
但貌似可以下到开发板上去,因为程序刚开始的时候可以单步调试,调试的是汇编启动代码中的Vectors后面部分,之后的断点,以及main中的断点也都不起作用了,再点停止的时候,pc指针已经指乱了
所以,现在不知如何调试这段程序:
1.中断程序不可以在sdram中调试吗?
2.keil+jlink+mini2440可不可以在norflash中调试程序
感谢!!!!
...全文
529 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
蜗牛推磨 2014-11-25
  • 打赏
  • 举报
回复
寫的比較詳細,實用。
呆滞的眼神 2014-03-24
  • 打赏
  • 举报
回复
同样的疑问,有哪位大神可以解释一下!
imwise1 2012-11-27
  • 打赏
  • 举报
回复
我和你一个问题,经过查阅资料我发现貌似是中断向量跳转的问题,由于汇编的跳转范围不够的因素所以不能正确跳转。网上解释是在启动代码中添加二次跳转的指令,但是写这个解决方案的人提供的示例程序编译不能通过,经尝试失败。还有一个方案是开启虚拟内存映射,将sdram中的0x3000_0000映射到0x0000_0000去。此外在学嵌入式和学单片机一样简单视频中貌似采用的是第一个方案但是,跳转程序是加载在主文件中的,讲解人语焉不详。我现在觉得还是将程序下载到norflash中,但是这样的话就不能像sdram中一样在线调试了。也比较麻烦。不知道你这个问题解决了没?我们讨论下吧。
暗夜精灵 2012-10-31
  • 打赏
  • 举报
回复
顶上去···············

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧