本帖最后由 FSL_TICS_ZJJ 于 2014-7-15 14:03 编辑
二, 安全与保护
Kinetis的secure级别有三级,级别最高是只能通过backdoor的方式进行解锁,即必须通过用户的应用程序才能解锁,所以如果程序里面没有加入backdoor解锁的功能,慎用secure。
那么如何进行解锁呢?这里提供了三种方法,backdoor key, 你可以理解为密码解锁,Debug access,通过JTAG/cJTAG/SWD接口解锁,或者通过EzPort进行全擦除操作来解锁,这里面backdoor解锁的权限最高,其它的两种都有一定的限制。
Kinetis还提供了三个寄存器对存储空间进行保护,分别对应PFLASH,DFLASH和EEPROM这三种类型的存储器。这里要注意的是DFLASH在使能EEPROM的情况下会被占用一部分空间,如果剩下空间的大小是2的N次方,那么就是对剩下空间8等分,由DPROT【7:0】进行保护,而对于非2的N次方的情况,像192KB和224KB,就是以32KB对剩下空间进行分区,这时候就不一定是8个分区,可能是6或者7个,那么只有DPROT【5:0】或DPROT【6:0】会起作用 这些保护信息会在复位的时候自动从Flash Configuration Field里加载到上述的三个寄存器里,所以客户需要预先定义好这几个数值,当然也可以动态修改这几个寄存器对相关分区进行临时的保护。
但是解除保护不能动态的进行,你只能通过flash编程来修改保护信息并将系统复位使之生效。当然如果你把存放保护信息的空间也保护起来的话,只能通过mass erase来取消保护了。
|