STM8S/32的读保护

发布者:BlissfulAura最新更新时间:2015-10-21 来源: eefocus关键字:STM8S  读保护  stm32 手机看文章 扫描二维码
随时随地手机看文章
一、代码写入及加读保护的步骤:

1.准备工作:HEX文件和JLINK驱动(JLinkARM_V420以上,4.08中secure chip可能出现灰色不可选)
安装完毕后,可以在开始--所有程序--SEGGER--J-Flash ARM打开该应用程序
先设置要写入的芯片和写入方式,
选择JATG还是SWD
选择芯片型号:Option-->Project settings-->CPU-->Device(型号不对程序写入不了,设置Option-->Project settings-->Production,选中Securechip;)
2.打开要烧写的HEX文件:File--Open data file ,可以下拉选择HEX文件类型
3.连接要写入的芯片:Target--Connect(此步之前可以先清除再读出看是否读出为全空,好与后面对比)
4.写入代码:Target--Program & Verify(F6)
(到此,就是代码的写入过程,下面是加读保护的步骤)
5.加读保护:Target---Secure chip,点击是,就是加上了读保护!
二、如何验证是否已读保护
验证方法,可以使用一个没有加读保护的芯片,重复步骤中的3,连接上之后,read back一下,看看是否能读出?
然后再使用一个加了读保护的芯片,重复步骤中的3,连接之后,read back一下,看看是不是真的不能读出了,如果成功加了读保护,它会一直停在那里,数据一直读不出来,最后弹出一个错误警告!
到此,读保护已经加载进去了!
三、代码更新如何解除读保护
代码需要更新,如果不解除读保护功能,则很难再次将程序写入,解除方法也就是步骤中的5项中的反操作:Target---Unsecure chip
解除成功后,你就可以再次写入你更新后的代码了。并没有网友所说的要更改BOOT0和BOOT1的设置,等等。。。
四、如何一键写入读保护
这个加载代码读保护功能的步骤可能对有些人来说还是比较麻烦的,毕竟产品多的时候,写入之后还要按一下写保护命令,对于产线操作员来说,可能一时疏忽忘记其中一个,就会造成代码的外泄,是不是应该还有更简单的办法一键写入呢,答案是肯定的!
具体做法,就是要在生成HEX文件之前,要多几个步骤
1.首先,加载: C:KeilARMBoardsKeilMCBSTM32Blinky文件夹中的一个STM32F10xOPT.s文件
2.修改下面两个值为1
3.生成HEX文件之前务必进行一下此配置
这样简单的一个HEX文件就会使你的产品流入市场之后,即便是被抄板成功,也不会代码流了,只要自己公司的员工不外泄。

ulink-Jlink下在ram和flash中调试STM32的方法

http://www.21ic.com/app/embed/201209/142684.htm
时间:2012-09-11 来源: 作者:
关键字:ulink-Jlink   flash   ram   STM     
Keil MDK3.20 在ULINK下调试stm32方法
1. 程序在RAM中运行
要点:(1)程序的下载地址改到RAM空间中
(2)程序的debug之前要设定SP,PC指针到Ram空间
a 新建工程,选择STM32 的具体型号。 
b 设定程序下载地址,如下图所示,IROM1的地址指向了STM32的ram空间。
c 空间大小如何分配取决于自己的需求。本款处理器内部ram大小为20K,分配16K给只读区,4K给可读可写区。这样IROM设定的大小为0x4000,IRAM1的起始就变为0X20004000,大小只剩下0X1000。
d Debug标签选择ULINK1 Cortex Debugger(软件采用yjgyiysbcc兄crack方法)。不选Load Application at Start,在Initialization中加入启动脚本RAM.ini。 
RAM.ini中具体内容如下:
FUNC void Setup (void) {
SP = _RDWORD(0x20000000); // Setup Stack Pointer
PC = _RDWORD(0x20000004); // Setup Program Counter
_WDWORD(0xE000ED08, 0x20000000); // Setup Vector Table Offset Register
}
LOAD XXX.axf INCREMENTAL // Download,红色代表工程文件名.axf
Setup(); // Setup for Running
g, main
Utilities下Update Target before Debugging不选
这样添加后就可以在RAM中调试了。
>>>>>>我们需要在代码中设置正确的中断向量表位置。中断向量表通常被放置在用户程序的开始,所以flash中运行时,向量表位于0x08000000处,而当代码被放置在SRAM中运行时,他的位置就成了0x20000000。在初始化NVIC时,我们可以放置如下代码,定义向量表的位置
NVIC_SetVectorTable(0x20000000 , 0x0);

NVIC_SetVectorTable(0x08000000 , 0x0);

 
>>>>>工程选项中Debug项,Download选项卡中,去掉所有钩子,不下载代码到flash,这样就可以在RAM中调试程序了!
2. Flash中调试
新建工程后系统默认设定好IROM1为FLASH的地址和空间大小。只需要两步:
1) 设定调试工具为ULINK1 CORTEX DEBUGGER,如下图所示,不需要设定起始脚本。
 2) 在Utility中设定选择ULINK1 cortex debugger,并设定编程算法。如下图所示。
 之后就可以FLASH调试了。
硬件:万利的 EK-STM32F开发板,硬件去掉RS3,RS4 排阻,断开开发板本身的仿真器。
软件:KEIL MDK3.20+ULINK驱动替换文件。
仿真器:ULINK

STM8S读保护:

看了文档,感觉和MEGA88的保护措施没什么两样的。
ATMEL死活不承认MEGA88能被解密.但是,的确1000元就能把完整的代码给你,而且是反汇编的.编译后,重新烧录一切正常
STM8S103K3保密性到底如何?有没有指标可以参照的?

第一:IC没有留后门.很多不良的IC设计公司,尤其是台湾的,都留有后门.代理商很容易就能把ROM的代码读出来给客户.
第二:目前解密,都是把IC刨开直接读里面的东西.很多解密公司都是这么做的.据说STM8SXX里面有检测机制:发现IC被刨开后,自动擦出FLASH的东西.这个只是听说,没有得到考证.
 

但从芯片设计角度讲,芯片也像PCB一样有很多层,通常至少十几、二十几层,我们把需要保密的部分,例如Flash和Flash的锁,设计在比较靠下面的层面上,这样即使把芯片剖开,也要磨掉很多层之后才能找到需要的层,由于不知道Flash在哪一层,解剖的难度就进一步加大了。
--------------------------------------------------------------------------------
我想ATMEL的MCU也是这样设计的.但是却很容易就被破解了.
象台湾的MCU,根本就不用刨开IC,500块全给你读出来.ELAN,SONIX等等,也号称IC加密了,

关键字:STM8S  读保护  stm32 引用地址:STM8S/32的读保护

上一篇:串口实验printf输出是乱码
下一篇:只要单片机具有真正唯一ID,就可以让加密坚不可摧

推荐阅读最新更新时间:2024-03-16 14:36

STM32 can 实例代码
#include sysdef.h #define MAX_MAIL_NUM 3 //CAN总线调试:0=运行 1=自环调试 #define CAN_DEBUG 0 //CAN总线波特率:0=250kbps,1=500kbps,2=1Mbps #define CAN1_BPS 0 unsigned char can1_addr = 0; unsigned short Can1_Tx_Count =0; unsigned short Can1_Rx_Count =0; unsigned short Can1_Send_Delay =0; unsigned char Can1_Send_Buf ={0xe
[单片机]
怎样去设计一种基于STM32单片机的智能手环脉搏心率计步器
一:功能 基于STM32单片机智能手环心率计步器体温显示设计 本设计由STM32F103C8T6单片机核心板电路+ADXL345传感器电路+心率传感器电路+温度传感器+lcd1602电路组成。 1、通过重力加速度传感器ADXL345检测人的状态,计算出走步数、走路距离和平均速度。 2、通过心率传感器实时检测心率,通过温度传感器检测温度。 3、lcd1602实时显示步数、距离和平均速度、心率以及温度值。 二:电路图 三:源代码 #include led.h #include delay.h #include sys.h #include usart.h #include #include t
[单片机]
怎样去设计一种基于<font color='red'>STM32</font>单片机的智能手环脉搏心率计步器
关于STM32复位的那些事
1. 硬件复位 硬件复位电路如下图,直接将RESET引脚拉低即可,如下: 2. 软件复位 软件复位库函数: NVIC_SystemReset(); STM32F1XX系列中,复位函数在core_cm3.h文件中: /** * @brief Initiate a system reset request. * * Initiate a system reset request to reset the MCU */static __INLINE void NVIC_SystemReset(void){ SCB- AIRCR = ((0x5FA SCB_AIRCR_VECTKEY_Po
[单片机]
关于<font color='red'>STM32</font>复位的那些事
stm32 通过串口控制led灯亮灭 并通过lcd显示led灯的亮灭状态
#include main.h #include stm32f0xx_hal.h /* USER CODE BEGIN Includes */ #include lcd.h /* USER CODE END Includes */ /* Private variables ---------------------------------------------------------*/ UART_HandleTypeDef huart1; /* USER CODE BEGIN PV */ /* Private variables ----------------------------------------
[单片机]
STM32中stm32f10x.h头文件如何把宏定义的常量转化为地址
#define PERIPH_BASE ((uint32_t)0x40000000) /*! Peripheral base address in the alias region */ //单独此语句理解只是宏定义常量,不能作为地址,虽然((uint32_t)0x40000000)数字大小等于基值 #define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) //单独此语句理解只是宏定义常量,不能作为地址 #define GPIOE_BASE (APB2PERIPH_BASE + 0x1800) //单独此语句理解只是宏定义常量,不能作为地址 #define
[单片机]
STM32开发工具荣登EE Times年度10大产品榜首
    意法半导体以创新的STM32 Primer2手持原型开发工具荣登EE Times 2009年度10大产品的榜首。STM32 Primer2手持原型开发工具让产品开发人员轻松使用意法半导体的基于ARM Cortex-M3的32位STM32微控制器的强大功能。STM32 Primer2和其它产品凭借在EETimes的 EE Product Center中所记录的点击量进入十大排名榜。     意法半导体的STM32 Primer2于2009年2月发布,大小如同手机,提供彩色触摸屏、强大的音频等多项功能,让开发人员能够快速设计外观时尚的演示产品。与传统的工程开发电路板不同,用户使用STM32 Primer2可以演示高品
[嵌入式]
stm32中出现的hard_fault问题 如何解决
最近移植别人的一个lora程序,公司前任同事已经搞定的程序,从IAR平台移植到KEIL中,移植后,居然出现了hardfault问题。一直以来,我很少遇到这个问题,遇到了,也算是好事。 然后看看如何解决的吧。 1、单步执行,发现程序运行到哪的时候出现了hardfault问题。发现是初始化的时候。应该是结构体指针的初始化问题。 2、其实也从晚上找了一些如何定位hardfault的问题点的方法。充分利用call stack以及但不调试的工具。 3、问题点通常发生在数据越界,指针未初始化,堆栈溢出的这些情况。 method-1 试过它的方法,查看寄存器,利用反汇编,定位出问题点。http://bbs.ednchina.com/BLO
[单片机]
STM32的ADC单次转换设计
下面分别为库函数和直接操作寄存器的两个范便,我都已测试通过 使用此程序前必要对GPIO设好为模拟输入方式 =====================================库函数版========================================= void AD_CONFIG_SINGLE(void ) { //先配置IO口: ADC_InitTypeDef adcInitStruct; ////PB1 作为模拟通道输入引脚 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE);//使能ADC和GPIOC时钟 //配置ADC: //将ADC配置成非
[单片机]
<font color='red'>STM32</font>的ADC单次转换设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved