飞思卡尔 加密 解密 MC9S12G128

本文介绍了一种在MC9S12G128单片机上实现Flash加锁和解锁的方法。文中详细展示了加锁代码,并针对解锁部分无法正常工作的代码进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我要做一个功能,对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;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值