FLASH OTP
OTP 软件加密运用参考
为了防止软件被他人盗用,spansion flash给每个芯片植入了代表身份的unique ID,增加了OTP扇区,目前我们可以运用这两个特性,来实现软件的加密保护。软件加密保护功能分两个目标文件实现:第一个为加密软件,是把加密后的unique ID写入OTP扇区;第二个为正式软件,正式软件里需要增加unique ID的校验功能。具体步骤详情如下:
1. 写OTP,在flash 初始化后,把加密后的unique ID写入OTP扇区,确认OTP扇区写入成功后, 设置状态寄存器S11 S12 S13为1,使OTP区处于只读状态,确保OTP扇区不被随机修改,软件流程:
2. 校验unique ID。确保OTP写入成功后升级正式出货软件,该软件在flash初始化时先读出OTP
扇区里的数据,然后解密,把解密获得的ID跟从flash读到的unique ID作比较,如果相同程序继续运行。

FLASH OTP的更多相关文章
- TMS320F28335项目开发记录6_28335之cmd文件具体解释
1.CMD文件的作用 CMD文件的作用就像仓库的货物摆放记录一样,为程序代码和数据分配指定的空间. 2.C语言生成的段 C语言生成的段大致分为两大类:初始化和未初始化,已初始化的段含有真正的指令和数据 ...
- About Flash
Take SAMSUNG K9F1G08U0E for example, and use S3C2416, Windows CE5.0 platform. 要让Flash工作起来,包括两部分: Fla ...
- (转) 寄存器、RAM、ROM、Flash相关概念区别整理
转自 http://m.blog.chinaunix.net/uid-30077524-id-5570244.html 文章对这几个东西讲得很清楚,值得收藏. 寄存器 寄存器是中央处理器内的组成部份. ...
- OTP【转】
转自:http://baike.baidu.com/link?url=58z3oZfEMvNRiDUmWrxtzfDhv--UZ1jaW4rBHg1d9kIWd6HQaYZ96DH8QAFopSZBK ...
- STM32F40xxx 与 STM32F41xxx Flash结构详解
本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重! 硬件平台:STM32F4 DISCOVERY开发板 型号:MB997A或MB997C主芯片型号:ST ...
- OTP语音芯片和掩模语音芯片(mask)的区别
OTP(One Time Programable)是MCU的一种存储器类型,意思是一次性可编程:程序烧入IC后,将不可再次更改和:因此OTP语音芯片就是指一次性烧录的语音IC. 从OTP定义上来看,只 ...
- FPGA系统中DRAM,SRAM,SDRAM,FLASH 区别(转)
原文:http://hi.baidu.com/abners/item/a9042ef35d3f005bc8f337f5 一般来说这几种存储器是一个nios系统都具有的,sram的好处是接口简单,速度快 ...
- Flash硬件原理
1.2.1. 什么是Flash Flash全名叫做Flash Memory,从名字就能看出,是种数据存储设备,存储设备有很多类,Flash属于非易失性存储设备(Non-volatile Memory ...
- OTP
OTP 是 One Time Programable, 一次性可编程,一种存储器类型.顾名思义,只允许一次编程,后面无法修改. 在嵌入式系统当中,所有的代码和系统数据都是存储在flash芯片内部的,f ...
随机推荐
- poj 3417 Network 题解
题意: 先给出一棵树,然后再给出m条边,把这m条边连上,然后剪掉两条边,一条是原边,一条是新边,问有多少种方案能使图不连通. 思路: 从原边的角度看 1.树加边,一定成环,加一条(u,v)边就有u-& ...
- [POJ2594] Treasure Exploration(最小路径覆盖-传递闭包 + 匈牙利算法)
传送门 引子: 有一个问题,是对于一个图上的所有点,用不相交的路径把他们覆盖,使得每个点有且仅属于一条路径,且这个路径数量尽量小. 对于这个问题可以把直接有边相连的两点 x —> y,建一个二分 ...
- <项目><day12>通讯录(视频)
1 需求分析(需求分析师) 功能分析: 1)添加联系人 2)修改联系人 3)删除联系人 4)查询所有联系人 2 需求设计(系统分析师/架构师/资深开发人员) 2.1设计实体(抽象实体) 联系人实体: ...
- 从Java代码到字节码
http://www.importnew.com/13107.html http://blog.csdn.net/dc_726/article/details/7944154/ http://www. ...
- json转xml报[java.lang.NoClassDefFoundError: nu/xom/Serializer]
原文:http://blog.csdn.net/figo645/article/details/48413571 开始学习JSON了,那么很自然的,我开始要熟悉一些基本的JSON语法 {}代表对象,[ ...
- Go -- 多个go文件包名都是main
用go run *.go 或 go run one.go two.go main.go
- 【APUE】关于信号的一些常用函数
kill和raise函数 #include <signal.h> int kill(pid_t pid,int signo); int raise(int signo);//两个函数返回值 ...
- Web安全漏洞及攻击
背景介绍 先说一个在互联网上常见,但是普通人又不太理解的东西--“验证码”. 验证码(CAPTCHA)是“Completely Automated Public Turing test to tell ...
- UNIX网络编程学习(9)--getsockname和getpeername的用法及实例(转)
getsockname和getpeername #include <sys/socket.h>int getsockname(int sockfd, struct sockaddr *lo ...
- 给GridView设置行高
近期在工作中遇到了这样一个问题,使用一个GridView展示数据,item中仅仅是一个TextView,可是里面显示的文字多少不固定多少,必须所有展示出来. 遇到的问题: 1.把item中的宽和高设置 ...