【经验】如何进行IC FLASH程序存储器写入安全字节?
SILICON LABS推出C8051F系列单片机产品项目在开发时为了预防FLASH程序会被修改,通常软件工程师会对该IC FLASH程序存储空间进行加密。那么如何进行FLASH程序存储器写入安全字节,如下所述几种方法。
首先,要从相关IC数据手册中确定所用IC FLASH存储器的是多大?一般程序存储器安全字节的地址:例如64K,0xFDFE和0xFDFF;32K,0x7DFE和0x7DFF;16K,0x3DFE和0x3DFF;8K,0x1DFE和0x1DFF。
1、可以用汇编语言来写安全字节;如下
ORG 1DFEH
NOP
NOP
END
2、也可以更改Hex格式文件的形式将0x1DFE和0x1DFF写入00,此方法适用于批量生产。
直接下载Hex格式文件,以32K为例:
在Hex文件倒数第一行与倒数第二行之间插入一个记录:027DFE00000083
*注:为Hex文件的记录开始符。
02 是要写入的字节数
7DFE 是为写入地址的首地址
00 是写入的数据类型(00为数据;01为Hex文件结束标志)
83 是校验和(将它的值与记录中所有字节相加.其结果为0)
以上两种方法都可以对FLASH程序进行与入安全字节,以防FLASH程序被修改起到保护程序的作用。
世强元件电商版权所有,转载请注明来源和链接。
- |
- +1 赞 0
- 收藏
- 评论 0
本网站所有内容禁止转载,否则追究法律责任!
相关研发服务和供应服务
相关推荐
【经验】C8051单片机Flash失效分析
本文将就 Silicon Labs C8051Fxxx单片机Flash失效的问题进行根因分析以及提出解决办法。
设计经验 发布时间 : 2017-07-27
世界上最节能的微控制器EFM32之十大低功耗奥秘
Silicon Labs EFM32 32 位微控制器系列是世界上最为节能的微控制器,特别适用于低功耗和能源敏感型应用,包括能源、水表和燃气表、楼宇自动化、警报及安防和便携式医疗/健身器材。本文着重强调10个Silicon Labs32位MCU功耗低的因素。
新产品 发布时间 : 2016-07-11
【应用】1MByte Flash空间 32位MCU助力无线中继器数据传输
Silicon Labs EFM32JG系列MCU,采用功能强大的 32 位 ARM® Cortex®-M3 内核,EM4H 休眠模式(128 字节 RAM 保留)功耗只有0.39uA,集成AES、ECC 和 SHA 的硬件加密引擎和真随机数发生器(TRNG)
新应用 发布时间 : 2018-03-06
主控MCU通过C2接口对EFM8BB10F8G MCU的Flash存储器进行读写操作,存在概率性失败。从Flash存储器中读数据也是异常,请问这时什么原因导致的?
检查程序中的中断设置,发现是有一处读操作没有关闭中断导致的,将中断关闭后,对EFM8BB10F8G MCU的Flash进行读、写,存在概率性失败的情况得到解决。因为主控MCU用的是ARM芯片,运行的是linux操作系统,所以主控MCU通过C2接口对EFM8BB10F8G MCU的Flash存储器进行读写操作的函数也是以驱动程序的形式存在的,并且系统中各种软硬中断也比较频繁,因此相对时序控制上也需要更加严格,才能保证可靠的读写操作。
技术问答 发布时间 : 2016-10-25
Simplicity Studio IDE编译工程成功生成HEX文件后,怎么查看文件烧录后占用MCU Flash的大小?
Simplicity Studio IDE编译工程成功生成HEX文件后,在编译显示信息栏,text的大小表示占用Flash的大小,另外在工程的.map文件中也可以查看text大小。
技术问答 发布时间 : 2016-10-25
【产品】最大工作频率48MHz的微控制器,嵌入式应用最佳选择
Silicon Labs新推出微控制器EFM8UB3系列,Flash容量为40kB,在512字节扇区内支持在线可编程,提供非易失性数据存储,同时支持固件的现场升级。提供独立的片上系统解决方案,具有多功能的外设接口。
新产品 发布时间 : 2018-02-08
8位单片机EFM8在线烧录时,使用烧录软件Flash Programming Utility每次更换芯片都需要重新连接,请问是否有不需要重新连接的在线烧录软件?
除了Flash Programming Utility烧录软件,Silicon Labs还提供MCUProductionProgrammer烧录软件,后者更换芯片时无需再重新连接。
技术问答 发布时间 : 2016-10-25
8位单片机C8051F930在程序调成完成之后,使用Flash Programming Utility进行程序烧录发现无法烧录进入,提示连接失败,应如何处理?
因为C8051F930单片机是SiLICON LABS的C8051Fxx系列比较后期的产品,所以需要使用4.21.00以上版本的Flash Programming Utility进行程序烧录。
技术问答 发布时间 : 2016-10-25
EFM8BB1系列8位微控制器 参考手册
型号- EFM8BB10F2G-QFN20,EFM8BB10F8I-A-QSOP24,EFM8BB10F2,EFM8BB10F4,EFM8BB10M1069F8GM,EFM8BB10M1069F8GM-AR,EFM8BB10F8,EFM8BB10F8G-A-QSOP24,EFM8BB10F8I-A-QFN20,EFM8BB10F2G-A-QFN20R,EFM8BB10F2G-A-QFN20,EFM8BB10F8G-A-SOIC16,EFM8BB10F8G-A-QFN20,EFM8BB10F8G-A-SOIC16R,EFM8BB10M1069F8GM-A,EFM8BB1,EFM8BB10F4G-A-QFN20R,EFM8BB10F4G-A-QFN20,EFM8BB10F2I-A-QFN20R,EFM8BB10F2G,EFM8BB10F8G-A-QFN20R,EFM8BB10F8G-A-QSOP24R,EFM8BB10F8G-QSOP24,EFM8BB10F2I-A-QFN20,EFM8BB10F8G-QFN20,EFM8BB10F8I-A-QFN20R,EFM8BB10F4G,EFM8BB10F8G
C8051F580内部Flash大小为128K,使用IDE或者Keil编译时,超过64K会提示错误,无法编译通过。请问是什么原因造成的?
在AN130文档里有详细说明,工程需要文件L51_BANK.A51。设置步骤:(1)Project-->tool Chain Integration-->linker-->Customize-->Code Banking Select设置为C8051F580;(2)Project-->Target Build Configuration -->Customize-->Files to link-->Files to linked栏设置文件的BANK区域,然后保存,编译。使用MCU Production Programmer软件烧写时需要根据编译设置,选择对应的BANK区域。详细说明请查看AN130文档。
技术问答 发布时间 : 2017-05-05
使用Simplicity IDE开发EFM8BB10F8G单片机,工程中如何设置常量变量存放在Flash的绝对地址?
使用Simplicity IDE编译EFM8BB10F8G工程,指定常量变量在Flash中地址的设置步骤如下:1,选中工程,鼠标右击->Properties->C/C++ Build->Settings->General Settings,在打开的界面中取消Use Extended Linker (LX51) instead of BL51和Use Extended Assembler (AX51) instead of A51另个选项的勾选。2,在同一个界面,选中Keil 8051 Linker->Miscellanecous,在Additional Flags中增加CODE(?CO?EFM8BB10_main(0x1E00))命令。表示将EFM8BB10_main.c文件中定义的常量变量定义在Flash地址0x1E00之后。设置好重新编译即可。
技术问答 发布时间 : 2017-05-05
EFM32 MCU怎么保证Flash的加密性?
EFM32可实施的加密分为两种方式:硬件加密和软件加密。(1)硬件加密:可通过向Flash的加密lock bit写入使能芯片硬件加密,禁止MCU 的debug功能,以防止代码窃取者读取Flash中的代码。芯片硬件加密使能后,只能通过擦除掉芯片内部Flash的数据,以重新允许芯片的debug调试功能。(2)软件加密:此外,为保证程序代码的唯一性,防止代码窃取者暴力破解芯片后拷贝到其他MCU 中,可结合芯片的唯一ID与加密算法增加芯片的加密特性。实现思路举例:(1)使用编程器在芯片程序烧录时,读取芯片唯一ID,将其与密匙进行AES加密运;算,得到加密的密文①。然后将加密的密文烧录在Flash 的某一固定地址中;(2)在程序启动时,MCU 先读取芯片的唯一ID,通过硬件AES模块对ID与密匙进行加密,得到密文②。然后将得到的密文②与步骤(1)中烧录在Flash中的密文①进行比对,若一致则运行功能代码;若不一致则认为代码被暴力破解移植到其他芯片,跳入异常死循环中。提示:EFM32 具有硬件加密AES模块,仅仅需要数十个内核时钟即可完成计算,实现方便快捷。
技术问答 发布时间 : 2017-05-05
EFM8UB3系列微控制器数据手册
型号- EFM8UB31F40G-A-QSOP24R,EFM8UB3,EFM8UB31F40G-A-QSOP24,EFM8UB30F40G-A-QFN20R,EFM8UB3X-QSOP24,EFM8UB31F40G-A-QFN24R,EFM8UB30F40G-A-QFN20,EFM8UB3X-QFN20,EFM8UB31F40G-A-QFN24,EFM8UB30F40G-A-QFN24R,EFM8,EFM8UB3X-QFN24
电子商城
现货市场
服务
可定制板装式压力传感器支持产品量程从5inch水柱到100 psi气压;数字输出压力传感器压力范围0.5~60inH2O,温度补偿范围-20~85ºС;模拟和数字低压传感器可以直接与微控制器通信,具备多种小型SIP和DIP封装可选择。
提交需求>
定制水冷板尺寸30*30mm~1000*1000 mm,厚度1mm~50mm,散热能力最高50KW,承压可达3MPA;液冷机箱散热能力达500W~100KW。项目单次采购额需满足1万元以上,或年需求5万元以上。
提交需求>
登录 | 立即注册
提交评论