嵌入式学习小组
直播中

名士流

9年用户 984经验值
私信 关注

调试底层硬件模块的逻辑是什么

调试底层硬件模块的逻辑是什么?
怎样在基于FPGA的嵌入式硬件设计添加一个debug的硬件模块?

回帖(1)

郑广荣

2021-12-24 15:06:35
以前在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抓取的引脚的高低电平,其实就是调试时,想看的内存的值。
这就是调试的过程中,底层硬件的逻辑。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分