最近在DE10-Nano开发板FPGA端为ARM增添了一个pwm 外设,通过linux 底层驱动与pwm 的外设寄存器进行交互。

其中,pwm外设定义了2个32位寄存器:

 

寄存器写入的数据和读出的数据不一致:

 

于是我用signaltap查看外设寄存器的值:

 

最终发现是读写偏移地址弄错了: