问一下大家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寄存器的内容一直没变这个问题还一直没有解决