This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PIECTRL写不进去值



  MOVW     DP,#PIECTRL>>6
  MOV         PIECTRL,#1H

这两条指令是使能PIE,但是跑的时候PIECTRL写不进去值,看反汇编结果是这样:

                             287         MOVW      DP,#PIECTRL>>6
0x13e506:   761F0033    MOVW         DP, #0x33
                             288         MOV      PIECTRL,#1H       ;中断向量从PIE提取
0x13e508:   28600001    MOV          *-SP[32], #0x0001

但是前面的寄存器也是这样赋值的,反汇编也是对的:

                           264         MOVW     DP,#TIMER2PRD>>6
0x13e4fa:   761F0030    MOVW         DP, #0x30
                           272         MOV      TIMER2PRD,#30000;周期值为500us 60M
0x13e4fc:   28127530    MOV          @0x12, #0x7530
                           274         MOV        TIMER2TCR,#1100000000100000B;减计数,无中断,清中断标志,自动重装
0x13e4fe:   2814C020    MOV          @0x14, #0xc020

问题在哪?试着把MOV     PIECTRL,#1H   改成   MOV  0X20,#1H,这样倒是可以使能PIE。那以后碰到直接写寄存器咋办?