调试(debug)的底层硬件逻辑——通过FPGA嵌入式软核

以前在vs等上调试代码,查看变量或者内存的值没有去深究调试时底层的硬件的逻辑。看了赛灵思给的microblaze的手册,对于debug的底层硬件逻辑有了了解。

若想在SDK中使用调试模块,在基于FPGA的嵌入式硬件设计(如在赛灵思的vivado中使用block design设计)时,需要添加一个debug的硬件模块——ILA。ILA连接想要在调试时,触发信号到来时,抓取的引脚。

这样当你在CPU(microblaze)运行代码到中断程序处时,开始下面的流程(摘自赛灵思的手册):

The ILA immediately triggers as the application software is continuously performing a write to the GPIO thereby toggling
the net_slot_0_axi_awvalid signal, which causes the ILA to trigger. The ILA in turn, toggles
the TRIG_OUT signal, which signals the processor to stop code execution


简单的理解就是,当代码运行到中断处时,cpu会给调试模块一个使能信号(awvild),让ILA触发,抓取想要得到的引脚的值,调试模块(ILA)会紧接着发送一个触发信号到cpu,cpu收到这个信号,停止代码的执行。

前述ILA抓取的引脚的高低电平,其实就是调试时,想看的内存的值。

这就是调试的过程中,底层硬件的逻辑。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值