飞思卡尔 加密 解密 MC9S12G128

来源:互联网 发布:2016年网络悲伤情歌 编辑:程序博客网 时间:2024/05/16 13:06
我要做一个功能,对Flash进行加锁,解锁。我用的单片机是MC9S12G128.
加锁部分的代码已经实现了,如下:
C/C++ code
?
1
2
3
4
5
6
const unsigned char flash_array[] @0xFF00 =    //设置密钥(四个字:0XAAAA,0XAAAA,0XAAAA,0XAAAA)
{
 0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA
}; 
 
const char Set_key @0xFF0F = 0X80;              //加锁

但是解锁部分,按照资料设置的,却不能解锁。解锁部分代码如下:
C/C++ code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//    FSTAT_CCIF = 1;         //launch command
//    while(FSTAT_CCIF == 0); //wait for done
//  }
static unsigned char Send_Command[]=
{
  0x1C, 0x01, 0x06, 0x80, 0x1F, 0x01, 0x06, 0x80, 0xFB, 0x3D
};
 
while(FSTAT_CCIF == 0);            // wait if command in progress
  FSTAT = 0x30;                      // clear ACCERR and PVIOL    
   
 
  FCCOBIX = 0x00;                    // Verify Backdoor Access Key
  FCCOB = 0x0C00;
   
  FCCOBIX = 0x01;                    // Backdoor key was defined in the variable
  FCCOB = 0xAAAA;                    // "flash_array" above as
  FCCOBIX = 0x02;                    // 0xAAAA,0xAAAA,0xAAAA,0xAAAA
  FCCOB = 0xAAAA;
  FCCOBIX = 0x03;
  FCCOB = 0xAAAA;
  FCCOBIX = 0x04;
  FCCOB = 0xAAAA;
   
  asm JSR Send_Command;
0 0
原创粉丝点击