首页 新闻 会员 周边 捐助

【NIOS2调试求助】NIOS2调试一个定时器中断的实验时遇到的问题

0
悬赏园豆:10 [待解决问题]

问一下大家NIOS2调试的问题
比如一个定时器中断的程序要调试,然后我想看定时器IP核中所说的那几个寄存器STATUS、CONTROL、PERIOD中的内容,能不能在memory中查看?我的SOPC中定时器的端口地址是0x04002000,如下所示:

我在memory中查看了这个地址处的内容,:

但是调试时单步到一个清零STATUS寄存器中的中断状态位的时候,内存中的数值一直没有改变,
是不是0x04002000处就是STATUS状态寄存器的内容?
还有,在定时器的IP核手册上有

也就是说,这些寄存器都是16位的,那么是不是说,在前面的memory图中0x04002000和0x04002001处分别是STATUS寄存器的低8位和高8位,图中0x04002002和0x04002003是不是就是CONTROL寄存器的低8位和高8位


以前一直以为NIOS的存储器是以字(32位)为单位的,但是在memory中一看,才发现是以字节为单位的

问题补充:

这几天看了一些相关的书后,理解了一些新东西,首先,我上面的提问中,0x4002000处和0x4002001处是STATUS寄存器,0x4002002和0x4002003处事CONTROL寄存器的说法是错误的,CONTROL寄存器的内容应该是0x4002004和0x4002005处,虽然STATUS和CONTROL寄存器都是16位的寄存器,但是NIOS是一个32位的处理器,STATUS寄存器后面空出了两个字节,再放的是CONTROL寄存器,也就是说,两个寄存器的地址并不是连续的,或者可以看成两个寄存器虽然是16位的寄存器,但是在存储器中占了32位,这样就可以把这两个寄存器的地址看成是连续的了,但是单步之后,STATUS寄存器的内容一直没变这个问题还一直没有解决

mgpanpan的主页 mgpanpan | 初学一级 | 园豆:192
提问于:2012-09-01 23:36
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册