查看: 113|回复: 0

[求助] 基于S9KEAZ128-Flash-FSEC的问题

[复制链接]

该用户从未签到

2

主题

2

帖子

0

注册会员

Rank: 2

积分
131
最后登录
2026-4-20
发表于 2026-4-17 14:17:09 | 显示全部楼层 |阅读模式
大家好,我希望把芯片设置为:1.不允许通过SWD口访问内部FLASH数据;2.如果需要访问,则必须通过后门解锁服务。我按照参考手册中的《18.3.7 安全》这一章将s文件中的FSEC改为0xBC,密匙改为:0x123456789ABDCEF0,解除安全状态程序如下:uint8_t Flash_CheckKey(void){
        uint8_t State = 0x00;
    // 1. 清除错误标志
    FTMRE_FSTAT = 0x30;

    // 2. 写入校验命令 0x0C
    FTMRE_FCCOBIX = 0;
    FTMRE_FCCOBHI = 0x0C;
    FTMRE_FCCOBLO = 0;

    // 3. 写入8字节密钥
    FTMRE_FCCOBIX = 1;
    FTMRE_FCCOBLO = 0x12;  // 低字节
    FTMRE_FCCOBHI = 0x34;  // 高字节
       
    FTMRE_FCCOBIX = 2;
    FTMRE_FCCOBLO = 0x56;  // 低字节       
    FTMRE_FCCOBHI = 0x78;  // 高字节
       
    FTMRE_FCCOBIX = 3;
    FTMRE_FCCOBLO = 0x9A;  // 低字节               
    FTMRE_FCCOBHI = 0xBC;  // 高字节
       
    FTMRE_FCCOBIX = 4;
    FTMRE_FCCOBLO = 0xDE;  // 低字节       
    FTMRE_FCCOBHI = 0xF0;  // 高字节
       
        //FTMRE_FSTAT |= FTMRE_FSTAT_CCIF_MASK;
        FlashState_Cmd(&FTMRE_FSTAT);
//        while((FTMRE_FSTAT & FTMRE_FSTAT_CCIF_MASK) == 0)
//        {

//        }   
    // 7. 检查错误
    if(FTMRE_FSTAT & FTMRE_FSTAT_ACCERR_MASK)
        {

    }
        State = FTMRE_FSEC;//返回寄存器数值
        return State;
},其中FlashState_Cmd(&FTMRE_FSTAT)函数为RAM中运行的。目前的现象为:当我执行解锁指令后,读取FSEC数值为0xBC,已进入解除安全状态,但是如果我此时使用JLINK连接,会提示失败,并且芯片会进入不工作状态。为什么在解锁安全状态后JLINK仍然无法正常访问


我知道答案 目前已有0人回答
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2026-6-25 02:03 , Processed in 0.086259 second(s), 21 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表