微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > KL 系列 FAQ (三)

KL 系列 FAQ (三)

时间:10-02 整理:3721RD 点击:

4 FLASH

4.1 KL25Z  FLASH 擦写

问题:

在 KL 系列数据手册中,Flash 擦一个 扇区需要时间 14-114ms,请问,在这个

擦过程中,芯片还能否执行程序或响应中断(擦的扇区未放程序代码)?


答案:

在进行 sector 擦除时,内核是可以继续执行代码和响应中断的,前提条件是

所执行代码和中断服务程序必须要放在 RAM 中。如果你的程序是放在 Flash 里面

了,由于只有一个 bank,那么就不可以了。


4.2 KL25 被加 密,芯片锁死

问题:

(1) 在新板子 KL25 中,用 CW10.3 写入经常会遇到写不进程序的情况,CW10.3

提示该芯片被加密。我想请问有没有什么办法解锁,我看芯片手册里面有密钥,这

个有什么用处吗?

(2) 密钥匹配之后,不是只能临时解锁芯片吗,但是复位之后,你的芯片还是处

于加密状态。所以密钥匹配到底起了什么作用?


(3) 使用软件是指使用 Flash 命令吗?比如说擦除一个扇区命令。但是即使不进

行芯片解锁,我也可以通过 Flash 命令对 Flash 配置区域进行擦除和写入吧。因为

芯片在 secure 模式下, 在 NVM  正常模式下,所有 Flash 命令都是可以用的。所以

我在编程的时候,如果写了两个函数,加密和解密函数,我把 0x40c 的值设成

0x80,这样就把芯片设成加密状态,允许后门密钥访问,允许 Mass erase,同时我给

0x400-0x 407 复制 1,2,3,4,5,6,7,8 作为密钥;我通过串口给 MCU 一个命令。这样,芯片

就加密了,但是我串口再发一个命令,使 MCU 执行解密操作,把 0x40c 字段写成

0xFE 不就成了,根本没有用到密钥匹配啊?是不是我对密钥匹配的理解错误啊?

你能给我详细地讲一下,密钥匹配的使用例子吗?


答案:

(1)你需要查看 Flash  地址 0x40C 对应的值,这个值将会在芯片启动时加载到

FSEC(FLASH 安全寄存 器)中。如果是 FSEC [MEEN]位为 Mass erase 使能,这可以

通过 mass erase 命令去 解锁芯片。Backdoor key 方式是 Flash 安全级别最高的保护

方法,只有通过软件接收外部输入的 backdoor key 来解锁芯片,通常后门 key 通过

串口输入。

(2)密钥匹配之后,芯片就会临时解锁,这时候你可以使用软件更改 Flash 地址

0x40C 值(这个需要代码支持编程 Flash 特定地址),改成未保护。之后上电复位

芯片就会处在未保护状态。


4.3 Kinetis 芯片安全设置

问题:

Kinetis 芯片安全设置分为几级?


答案:

Kinetis 芯片安全设置分为 4 级。芯片安全设置位于 FTFL_FSEC 寄存器中,

【KEYEN】设置是否使能后门锁;【MEEN】设置是否使能 Mass Erase;

【FSLACC】设置是否使能工厂入口;【SEC】设置芯片状态。

安全级别如图所示:

级别 0,[SEC]为 unsecure,芯片处于未安全保护状态;

级别 1,[SEC]为 secure,由于 mass erase 使能,芯片可以通过 Flash mass erase 命令

来解锁;

级别 2,[SEC]为 secure,由于 mass erase 使能,芯片可以通过 Flash mass erase 命令

来解锁;

级别 3,[SEC]为 secure,由于仅是后门锁使能,除非在软件中设置了后门锁和相

应 Flash 解锁操作,否则芯片将无法解锁。


4.4 KL25 flash 模块关于 ACCERR 错误

问题:

This command is launched and the backdoor key has mismatched since the last

power downreset 。这句话是说引起 FSTAT[ ACCERR]错误的原因之一。那么 the

last power downreset 通常由于什么引起?


答案:

掉电复位,即 POR(power-on reset)。


4.5 KL25 flash FTFA_FSEC 寄存器疑问

问题:

FTFA_FSEC 寄存器中,KEYEN 位有四中状态,10 是后门秘钥使能,但是

00、10、11 都是后门秘钥禁止,有什么区别吗?

MEEN 也是同样的情况, 10 是禁止,00、01、10 是使能。

FSLACC 位也是,00、11 使能;01、10 禁止;

SEC :10 不安全;00、01、11 安全;


答案:

FTFA_FSEC  寄存器设定使 用哪种值去 secure  Flash 都 可以,没有任何区 别,

其他寄存器位类似。之所以用两位来表示两种状态,是为了提高可靠性。


4.6 KL25 FTFA 模块问题

问题:

(1) Program Flash IFR MAP,地址为 0xC0 – 0xFF 的 64 字节区域内存的是什么

数据?到底有什么用?

(2) Read 1s Section,Program Check 这两个命令什么意思,不太懂?看了芯片手

册也感觉不太懂?

答案:

(1) Program Flash IFR MAP 0x C0 - 0xFF 这 64 字节不在 Flash 存储空间之内,是

单独与 Flash memor y 存在的。客户可以自己定义这块单次写入区域的用途,通过

Flash 提供的 Read Once 命令和 Progr am Once 命令来进行读写。

(2) Read 1s Section 命令是用来检查特定 Flash 区域是否被擦除过。


Program Check 命令是用来检查 Flash 区域的使用寿命,有两个 margin 设定, 一般

用户使用 user margin。 通常是在 Flash 某个区域写入 4 个字节数据,然后执行

program check 命令看实 际写入的 4 个字节与期待值是否一致。如果不一致,则说

明这块 Flash 使用寿命快到期了。


4.7 Kinetis 芯片解锁

问题:

如何解锁 secure 状态的 Kinetis 芯片?

答案:

根据 Kinetis 芯片安全级别设置来决定是否能够解锁 Kinetis 芯片。通常处于安全级

别 1 和 2 的芯片,可以通过运行 Flash Mass Erase 命令来解锁。目前 Segger J-Link

工具和 P&E Universal Munltilink 工具支持解锁 Kinetis 芯片:

Segger J-Link 工具提供 Commander 工具,可以在 Commander 界面下输入“unlock

Kinetis”命令来解锁。


运行 IAR、CodeWarrio r 工程进入调试界面会弹出芯片处于加密状态的信息,询问

是否通过 mass erase 去 解锁芯片。使用 Segger J-Link 工具和 P&E Universal

Munltilink 工具点击“是”选项以解锁 Kinetis 芯片。



4.8 AN4379 应用 手册问题

问题:

AN4379 将 Flash 区域 0x0 至 0xBFFF 保护,其中包括了 Flash 配置区域,如

何解除保护?


答案:

Flash 配置区域一旦被保护,就不能通过常用的 Flash 擦写命令修改 Flash

保护寄存器的值,其中包括 mass erase 命令。只能进入 EzPort 模式下执行 bulk

erase 命令来擦除 Flash 配置区域。也可以运用 Segger J-Link 提供的命令行(J-

Link Commander)软件运行“unlock Kinetis"命令来擦除 Flash 配置区域。

Kinetis L 系列产品同样存在这样的问题,解决方法是通过外部的 SWD 调试器执行

全擦除操作。


4.9 Program Flash IFR 问题

问题:

Program Flash IFR 主要功能是什么?如何访问?

答案:

Program Flash IFR 是一个非易失的存储空间,独立于 Flash 存储空间之

外,提供 64 字节的仅可单次写入的存储器。可以写于一些重要的信息,可以通过

Read Once 命令进行多次读取操作,也可以通过 Program Once 命令进行单次写入

操作。


4.10 模拟 EEPROM 的问题

问题:

K 系列是可以使用 FlexRAM 以及 FlexNVM 模拟 EEPROM 的,但是 KL 系列是不

带有 FlexNVM 模块的,是否可以利用 flash 模拟 EERPOM 呢?


答案:

KL 系列是可以使用利用 flash 模拟 EEPROM 的。在我们官网论坛中,有一

篇文章讲了 KL25Z 的模拟 EEPROM 的内容,并且还有相关代码,是基于 C90TFS 例程

改编的,具体的链接为:

https://community.freescale.com/docs/DOC-94593


参考阅读:

KL 系列 FAQ (二)
KL 系列 FAQ (一)


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top