共2条
1/1 1 跳转至页
AXD AXD中如何跟踪中断函数??
问
我用AT91SAM7S64-Interrupt的例程载入到AXD中调试,发现程序可以运行,但是我无法跟踪到中断函数的执行过程,请问有什么方法呢?而且我在main()入口处加了断点,然后全速执行,程序并没有跑到断点处,可是当我暂停执行时,却发现程序停到了在一个只可能在main()中调用的函数里,请问这是什么原因?
答 1:
能否将问题说的详细点?你是载入到SRAM里?中断向量表是从0开始
答 2:
我们的例程和教程可以解决问题现在购买我公司USB2.0仿真器,赠送sam7s64开发板和教程,880元,人人用得起,详情清浏览www.fftchina.com
答 3:
请告知你的邮箱,我可以发相关资料给你
答 4:
全部资料比较大
答 5:
re:阿南大侠对,我是将程序下到了SRAM中执行的,而且调用了AT91F_AIC_ConfigureIt()函数。
请问此函数的最后一个参数是否就应该是中断服务函数的地址?是不是要用此函数的话还要先进行重映射??可是我的程序在ADS中设置的RO地址是0x200000,RW地址为空,应该不用进行重映射了吧?望大侠们赐教! 答 6: to sh_fft你们的USB2.0仿真器(880元)是骗人的,其功能还不如一个EASY_JATE.其里面的就一个带USB的51芯片和一个244.(1)传输速度极快:100KB以上是吹的.(2)完全支持各类片内FLASH的烧写功能!超速烧写!只能烧AT91SAM7而且极不稳定.(3)全面支持硬件断点(2个)和软件断点(不限制);更本不支持2个硬件断点,而且单步调试是不响应中断的.
用起来极不稳定用用就说USB2.0通讯错误. 答 7: to sh_fft我的邮箱地址:tyrael.cui@gmail.com,thx! 答 8: re:tyrael如果你在ADS中设置的RO地址是0x200000,则你的所有代码就都定位在0x200000开始处,包括你程序中的中断向量表,但实践的中断入口都是固定在0x0开始的,所以你还必须将0x200000开始的代码重映射到0x0开始处。 答 9: to:阿南你的意思是说如果我在调试的时候,必须将代码重映射到0x0处才能进入到中断函数中去?如果不进行重映射的话,那影响中断函数的执行吗?在我用到的例程中启用了定时器中断,它没有进行重映射,可是它的中断一样响应的了(它在中断中反复点亮一个LED),只是我跟不到它的中断函数里去(我在函数处设了断点),请问这是什么原因呢?还有,串口中断在调试的时候会不会暂停响应呢? 答 10: re:tyrael"在我用到的例程中启用了定时器中断,它没有进行重映射,可是它的中断一样响应"
答:这是因为在目标芯片0x0处已经有中断向量表,你可以试一下将目标芯片的程序擦除,在试一下能否进入中断。
串口中断在调试的时候会不会暂停响应呢?
答:不会的
还有,如果想看是否产生中断,可以在中断入口设置断点,如0x18处
答 11: 我看的头都大了 答 12: to:阿南问题西里糊度的解决了@_@
我直接把程序烧到了FLASH中,中断函数就得到响应了!
还是阿南大侠说得有道理,这个问题肯定和重映射以及AXD的调试有关。调试时必须要将RAM地址映射到0x0处中断才可以得到响应,有关这一点,由于在下学艺未精,所以还没有亲手验证,待日后略有小成时,在做一结论。
不过有一点让我有些郁闷:难道以后的中断调试都要进行重映射的工作才能进行调试?这可有些麻烦呀:P
不知道诸位有什么好的方法?还有,俺现在用得是最土得简易JTAG仿真器,他对调试有多大影响呢?
在此万分感谢阿南大侠的赐教以及诸位的关注。
请问此函数的最后一个参数是否就应该是中断服务函数的地址?是不是要用此函数的话还要先进行重映射??可是我的程序在ADS中设置的RO地址是0x200000,RW地址为空,应该不用进行重映射了吧?望大侠们赐教! 答 6: to sh_fft你们的USB2.0仿真器(880元)是骗人的,其功能还不如一个EASY_JATE.其里面的就一个带USB的51芯片和一个244.(1)传输速度极快:100KB以上是吹的.(2)完全支持各类片内FLASH的烧写功能!超速烧写!只能烧AT91SAM7而且极不稳定.(3)全面支持硬件断点(2个)和软件断点(不限制);更本不支持2个硬件断点,而且单步调试是不响应中断的.
用起来极不稳定用用就说USB2.0通讯错误. 答 7: to sh_fft我的邮箱地址:tyrael.cui@gmail.com,thx! 答 8: re:tyrael如果你在ADS中设置的RO地址是0x200000,则你的所有代码就都定位在0x200000开始处,包括你程序中的中断向量表,但实践的中断入口都是固定在0x0开始的,所以你还必须将0x200000开始的代码重映射到0x0开始处。 答 9: to:阿南你的意思是说如果我在调试的时候,必须将代码重映射到0x0处才能进入到中断函数中去?如果不进行重映射的话,那影响中断函数的执行吗?在我用到的例程中启用了定时器中断,它没有进行重映射,可是它的中断一样响应的了(它在中断中反复点亮一个LED),只是我跟不到它的中断函数里去(我在函数处设了断点),请问这是什么原因呢?还有,串口中断在调试的时候会不会暂停响应呢? 答 10: re:tyrael"在我用到的例程中启用了定时器中断,它没有进行重映射,可是它的中断一样响应"
答:这是因为在目标芯片0x0处已经有中断向量表,你可以试一下将目标芯片的程序擦除,在试一下能否进入中断。
串口中断在调试的时候会不会暂停响应呢?
答:不会的
还有,如果想看是否产生中断,可以在中断入口设置断点,如0x18处
答 11: 我看的头都大了 答 12: to:阿南问题西里糊度的解决了@_@
我直接把程序烧到了FLASH中,中断函数就得到响应了!
还是阿南大侠说得有道理,这个问题肯定和重映射以及AXD的调试有关。调试时必须要将RAM地址映射到0x0处中断才可以得到响应,有关这一点,由于在下学艺未精,所以还没有亲手验证,待日后略有小成时,在做一结论。
不过有一点让我有些郁闷:难道以后的中断调试都要进行重映射的工作才能进行调试?这可有些麻烦呀:P
不知道诸位有什么好的方法?还有,俺现在用得是最土得简易JTAG仿真器,他对调试有多大影响呢?
在此万分感谢阿南大侠的赐教以及诸位的关注。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |