你好
我设置 为通过设置 MPUSEGB 1和2中的地址来分频段。
它被写入 FRAM 以设置 MPUSAM。
但是、即使 MPUSAM 的 MPUSEGxWE 被禁止写入、它也会写入。
程序示例
#pragma 位置(UDATA、0x4400)
int UDATA [32][8]={
{0}、
{0}、
{0}、};
int main (空)
MPUCTL0 = MPUPW;
MPUSEGB1 = 0x1000;
MPUSEGB2 = 0x1A00;
MPUSAM = MPUSEG1RE | MPUSEG1XE | MPUSEG1WE|
MPUSEG2RE | MPUSEG2XE | MPUSEG2WE|
MPUSEG3RE | MPUSEG3XE | MPUSEG3WE|
MPUSEGIRE | MPUSEGIWE| MPUSEGIXE;
for (i=0;i<32;i++){
for (j=0;j<8;j++){
UDATA [i][j]= I;
if (j==8){
J=0;
}
}
}
MPUSAM &=~MPUSEG1XE;
MPUSAM &=~MPUSEG1WE;
MPUSAM &=~MPUSEG2XE;
MPUSAM &=~MPUSEG2WE;
for (i=0;i<32;i++){
for (j=0;j<8;j++){
UDATA [i][j]= I+j+0x1000;
if (j==8){
J=0;
}
}
}
在该程序中、我认为0将从0x4400写入、但禁用后的值将写入。
我确认禁止使用 MPUSAM 进行书写。
此致。