完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好
我们有一个Spartan 6 SOC设计与Microblaze,MDM和其他一些外围设备。 对于这个系统我写了SW(在C中),一切似乎都有效。 但有时整个软件崩溃并且没有响应。 我们的系统中有一个看门狗,如果发生错误并且sw将不再刷新wd,通常应该触发。 但也没有重置,系统不再响应,没有任何反应。 我现在发现的是,在崩溃之前,sw跳转到向量0x18,这是断开向量。 根据文档,有两种方法可以跳转到这个向量(sw跳转或来自mdm的信号)。 通常我不会使用mdm,只是开发我调试,但是当我们测试我们的系统时,我们不会使用mdm(但它与mdm包含相同的设计)。 所以我的问题是,如果没有配置mdm可能会引发其中一个信号,也可能会停止mb? 我将在一个设计中删除mdm并禁用调试,但它真的很难验证,如果这是解决方案导致错误有时两分钟发生在一分钟后来与sw相同的精灵文件和相同的fgpa设计在百小时内没有 更长的时间。 是否还有更多关于mdm的文档以及如何调试微型激光器,因此我可以理解可能出现的错误(例如,如果mdm可以阻止mb,那么可能是系统在崩溃后不再响应的原因)。 亲切的问候和提前感谢 马丁 以上来自于谷歌翻译 以下为原文 Hi all We have a Spartan 6 SOC design with and Microblaze, MDM and some other peripherie. For this system I wrote SW (in C), everything seems to work. But sometimes the whole SW crashes and do not respond. We have a watchdog in our system, which normally should trigger if an error occured and the sw will no longer refresh the wd. But also no reset occurs, the system respond no longer and nothing happens. What I now discover is that before a crash the sw jumps to the vector 0x18 which is the break vector. According to the documentation, there are two ways to jump to this vector (either a sw jump or a signal from the mdm). Normally I will not use the mdm, only druing developping I debug, but when we test our system we will not use the mdm (but its the same design with the mdm included). So my question is, it is possible that the mdm raises one of the signals if not configured and maybe also stops the mb? I will remove in one design the mdm and disable debugging but its really hard to verifiy if that is the solution cause the error occured sometimes twice in one minute and later with the same elf file from the sw and the same fgpa design in hundred hours no longer. Is there also more documentation about the mdm and how a microblaze is debugged, so I can understand what could maybe the error (for example if the mdm could stop the mb, whats maybe the reason why the system do not respong after the crash). Kind regards and thanks in advance Martin |
|
相关推荐
7个回答
|
|
嗨,
MDM本身不做任何事情。 仅限来自XMD的命令。 如果你根本不使用XMD那么它将是沉默的。 如果通过调试实现MicroBlaze并执行BRKI 0x18(软断点),那么它将跳转到0x18并进入调试状态(暂停)。 因此,系统中的某些内容使MicroBlaze执行BRKI 0x18。 我建议使用Chipscope ILA并将其连接到MicroBlaze跟踪信号。 这将允许您在地址0x18上执行时设置触发器并查看指令流到达那里。 戈兰 以上来自于谷歌翻译 以下为原文 Hi, MDM doesn't do anything by itself. Only by commands from XMD. If you don't use XMD at all then it would be silent. If MicroBlaze is implement with debugging and execute a BRKI 0x18 (soft breakpoint) so will it jump to 0x18 and enter debug state (halted). So something in your system makes MicroBlaze to execute BRKI 0x18. I would suggest to use Chipscope ILA and connect it to MicroBlaze trace signals. This would allow you to set a trigger on executing on address 0x18 and see the instruction flow getting there. Göran |
|
|
|
感谢您的回复。
如何以及何时生成软断点? 在编译期间或运行时? 将指令替换为此brki 0x18或者MicroBlaze的软断开机制如何? 一个关于看门狗的问题,如果发生了一次轻微的中断,如果他之前被启用了看门狗会发生什么? 王尊敬 马丁 以上来自于谷歌翻译 以下为原文 Thanks for your reply. How and when are soft breakpoints generated? During compile or during runtime? Will a instruction be replaced with this brki 0x18 or how is the mechanism of soft breaks with MicroBlaze? A question concerning the watchdog, if a soft break occured, what happend with the watchdog if he was enabled before? King regards Martin |
|
|
|
嗨,
正常编译永远不应生成软断点,除非您明确添加它。 在调试会话中设置断点时,只有XMD会插入软断点。 您的系统中可能有一个错误导致MicroBlaze在不应该执行的地址执行或者指令内存可能被损坏。 当MicroBlaze由于软断点而进入调试状态时,它会停止运转并且不会发生任何事情。 通常,看门狗超时会产生中断,但您可能会执行复位。 但我怀疑这是一个很好的解决方案,你应该找到MicroBlaze进入调试状态背后的原因。 戈兰 以上来自于谷歌翻译 以下为原文 Hi, Normal compilation should never generate soft breakpoints unless you explicity add it. Only XMD will insert soft breakpoints when you set a breakpoint in your debugging session. You might have an error in your system that causes MicroBlaze to execute at addresses it shouldn't or instruction memory can be corrupted. When MicroBlaze enters debug state due to a soft breakpoints, its stalled and nothing will happen. Normally watchdog timeouts generates an interrupt but you might do a reset instead. But I doubt that this is a good solution, you should find the reason behind MicroBlaze entering debug state. Göran |
|
|
|
如果我设置跳转到地址0x18上的处理程序,是否执行此处理程序?
所以我可以存储r16寄存器,在跳转到地址0x18之前存储PC,所以我可以从MB进入调试状态的地方找到。 以上来自于谷歌翻译 以下为原文 If I set a jump to a handler on address 0x18, is this handler executed? So I could maybe store the r16 register, where the PC was stored before the jump to address 0x18, so I could find out from where MB enters debug state. |
|
|
|
嗨,
如果您已将MicroBlaze配置为debug,那么它将在执行BRKI 0x18时进入调试状态。 它不会在地址0x18执行任何操作,而是等待来自XMD的命令。 您可以在不进行调试的情况下实现MicroBlaze,并将一些代码放在0x18,以便您可以将调用捕获到0x18以进一步调试问题。 我会像之前所说的那样在MicroBlaze跟踪信号上添加Chipscope ILA,以便我可以看到发生了什么。 戈兰 以上来自于谷歌翻译 以下为原文 Hi, If you have configured MicroBlaze with debug so will it enter a debug state when executing BRKI 0x18. It will not execute anything at address 0x18 but instead wait on commands from XMD. You can implement a MicroBlaze without debug and place some code at 0x18 so that you can trap the calls to 0x18 to further debug the issue. I would as I stated before add Chipscope ILA on MicroBlaze trace signals so that I can see what's going on. Göran |
|
|
|
好的,谢谢你的解释,我现在将在MB跟踪信号上添加chipcope ILA,并希望很快就能发生崩溃并获得更多信息。
亲切的问候 马丁 以上来自于谷歌翻译 以下为原文 Ok, thank you for your explanations, I will now add chipscope ILA on MB trace signals and hope that the crash will occur soon and get some more information what's exactly going on. Kind regards Martin |
|
|
|
我在SW中发现了一个错误,有时可能会发生带有单位指针的写入,这可能指向代码中的地址。
谢谢göran的帮助,添加chipscope ILA是发现此错误的最佳方法。 亲切的问候 马丁 以上来自于谷歌翻译 以下为原文 I found an error in the SW where it could sometimes be that a write with a unitialized pointer happend, which could point to an address in the code. Thank you göran for your help, add chipscope ILA was the best way to found this error. Kind regards Martin |
|
|
|
只有小组成员才能发言,加入小组>>
2416 浏览 7 评论
2821 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2292 浏览 9 评论
3372 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2459 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1145浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
582浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
448浏览 1评论
2003浏览 0评论
727浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 16:52 , Processed in 1.423255 second(s), Total 87, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号