CN114220473A - 一种用于flash读保护改变的测试电路及方法 - Google Patents

一种用于flash读保护改变的测试电路及方法 Download PDF

Info

Publication number
CN114220473A
CN114220473A CN202111586275.4A CN202111586275A CN114220473A CN 114220473 A CN114220473 A CN 114220473A CN 202111586275 A CN202111586275 A CN 202111586275A CN 114220473 A CN114220473 A CN 114220473A
Authority
CN
China
Prior art keywords
flash
program
read protection
chip
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111586275.4A
Other languages
English (en)
Inventor
娄霞
张旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Hongxin Integrated Circuit Co ltd
Original Assignee
Suzhou Hongxin Integrated Circuit Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Hongxin Integrated Circuit Co ltd filed Critical Suzhou Hongxin Integrated Circuit Co ltd
Priority to CN202111586275.4A priority Critical patent/CN114220473A/zh
Publication of CN114220473A publication Critical patent/CN114220473A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry

Landscapes

  • Read Only Memory (AREA)

Abstract

本发明公开了一种用于flash读保护改变的测试电路及方法,包括以下步骤:(1)完成测试电路连接工作;(2)将测试程序烧录到SRAM里并启动;(3)判断寄存器FLASH_OBR是否为初始值,若是,则向flash中写入内容,并写入标记值重启程序;(4)判断寄存器是否为写入的标记值,若是则修改读保护位的值重启程序;(5)判断读保护位的值是否为修改值,若是,对写入内容进行检测;(6)判断写入内容是否被擦除,若是,则验证了flash读保护等级改变会引起程序擦除。本发明将测试程序烧录到芯片自带的SRAM里,并从SRAM启动,避免将flash中的测试程序擦除,且通过对寄存器写入标记值可避免程序进入不断重启的死循环。

Description

一种用于flash读保护改变的测试电路及方法
技术领域
本发明涉及一种用于flash读保护改变的测试电路及方法,属于芯片测试技术领域。
背景技术
flash是存储芯片的一种,通过特定的程序可以修改里面的数据。flash在电子以及半导体领域内往往表示Flash Memory的意思,即平时所说的“闪存”。flash存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。
在实际发布的产品中,例如:在STM32芯片的内部flash存储了控制程序,如果不作任何保护措施的话,可以使用下载器直接把内部flash的内容读取回来,得到bin或hex文件格式的代码拷贝,别有用心的厂商即可利用该代码文件山寨产品。为此,STM32芯片提供了多种方式保护内部flash的程序不被非法读取,但在默认情况下该保护功能是不开启的,若要开启该功能,需要改写内部flash选项字节(Option Bytes)中的配置。
芯片的flash的读保护等级分为无保护、只读保护和禁止调试,芯片的flash的读保护等级发生改变,会引起mass erase,即此时写入flash主体部分的程序内容会全部被擦除,以达到保护用户代码安全的目的,这样发生读保护等级改变之后,由于测试程序被全部擦除了,所以这样后面用于验证flash发生mass erase的程序就无法继续执行了。此外,改变读保护等级的方式是通过修改寄存器FLASH_OBR的读保护选项字节,并且需要调用***函数system reset,使得程序重启之后才会生效,这里的问题就是程序重启之后,程序会重新从第一行开始执行,如果不做处理,程序就会进入不断重启的死循环。
发明内容
本发明的目的在于提供一种用于flash读保护改变的测试电路及方法,旨在解决flash读保护等级改变引起程序擦除而无法测试的问题。
为实现上述目的,本发明提供如下技术方案:一种用于flash读保护改变的测试电路,包括芯片、上位机和程序下载器,芯片内包括flash模块和SRAM模块,所述芯片电源引脚连接相应电压电源,所述芯片GND引脚接地,所述芯片BOOT0和BOOT1接上拉电阻连接至电源,所述程序下载器一端连接芯片JTAG串口,程序下载器另一端连接上位机。
本发明还公开了一种用于flash读保护改变的测试方法,采用上述的用于flash读保护改变的测试电路,具体包括以下步骤:
(1)完成上述测试电路的硬件连接工作;
(2)将测试flash的程序通过下载器烧录到芯片的SRAM里,并从SRAM启动;
(3)判断flash寄存器FLASH_OBR是否为初始值,若是,则向flash中写入内容,并对flash寄存器FLASH_OBR写入标记值,重启程序,让标记值生效,若不是,则执行下一步骤;
(4)判断flash寄存器FLASH_OBR是否为写入的标记值,若是,修改 flash中读保护位的值,重启程序,让读保护状态改变生效,若不是,则执行下一步骤;
(5)判断flash读保护位的值是否为步骤(4)中修改的值,若是,则通过测试程序对步骤(3)中写入flash的内容进行检测,若不是,则说明flash的读保护无法开启,则无法对flash读保护状态改变进行测试;
(6)通过测试程序判断步骤(3)中写入flash的内容是否被擦除,若是,则验证了芯片flash读保护等级的改变会引起程序擦除,若不是,则说明芯片flash读保护等级的改变不会引起程序擦除。
进一步地,上述用于flash读保护改变的测试方法,其中:所述重启程序通过调用芯片程序函数system reset执行。
进一步地,上述用于flash读保护改变的测试方法,其中:所述步骤(3)中向flash中写入内容具体为向flash主体部分写入内容。
进一步地,上述用于flash读保护改变的测试方法,其中:所述步骤(3)中对flash寄存器FLASH_OBR写入标记值,具体步骤为向flash寄存器FLASH_OBR中data部分写入数据,从而实现修改寄存器FLASH_OBR的值。
本发明的有益效果是:本发明将测试程序不烧录到flash主体而将程序烧录到芯片自带的SRAM里,并从SRAM启动,避免将flash中的测试程序擦除;此外,本发明通过在flash寄存器FLASH_OBR写入标记位用来记录发生了程序重启,当下次程序重新开始运行时,跳过这一部分,从而避免进入不断重启的死循环。
附图说明
图1是本发明的测试电路示意图;
图2是本发明的测试方法流程路。
具体实施方式
为能进一步了解本发明的发明内容、特点及功效,配合附图详细说明如下。
请同时参考图1和图2,下面将结合附图对本发明实施例的用于flash读保护改变的测试电路及方法作详细说明。
如图1所示,芯片的连接电路为芯片电源引脚连接相应电压的电源,芯片GND引脚接地,芯片BOOT0和BOOT1接上拉电阻连接至电源,将程序下载器一端连接芯片JTAG串口,程序下载器另一端连接上位机。
上述硬件连接完成后即可执行后续相应软件部分操作。针对现有技术中的问题,解决方法如下:针对flash程序被擦除的问题,可将测试程序不烧录到flash主体,通过电路设置将BOOT0和BOOT1设置成高电平,将程序烧录到芯片自带的SRAM里,并从SRAM启动,这样发生mass erase(程序擦除)的时候,不会将测试程序擦除;针对程序无限重启的问题,由于mass erase只擦除flash主体部分的内容,不会擦除flash寄存器option byte的内容,所以在option byte当中的一些位写入标记位用来记录发生了system reset(重启程序),当下次程序重新开始运行时,跳过这一部分,从而避免进入不断重启的死循环。
如图2所示,具体的步骤如下:(1)完成上述测试电路的硬件连接工作;
(2)将测试flash的程序通过下载器烧录到芯片的SRAM里,并从SRAM启动;
(3)判断flash寄存器FLASH_OBR是否为初始值,若是,则向flash中写入内容,并对flash寄存器FLASH_OBR写入标记值,重启程序让标记值生效,若不是,则执行下一步骤;
(4)判断flash寄存器FLASH_OBR是否为写入的标记值,若是,修改 flash中读保护位的值,开启flash读保护,重启程序,让读保护状态改变生效,由于改变了flash中读保护位的值,因此,寄存器FLASH_OBR的值也随之发生改变,当程序重启后再次运行到步骤(4)时,寄存器FLASH_OBR发生改变从而与写入的标记值不同,这样一来,当判断flash寄存器FLASH_OBR的值并非写入的标记值,即执行下一步骤,即可跳出重启程序的循环;
(5)判断flash读保护位的值是否为步骤(4)中修改的值,若是,则通过测试程序对步骤(3)中写入flash的内容进行检测,若不是,则说明flash的读保护无法开启,则无法验证flash读保护状态改变时是否会引起mass erase;
(6)通过测试程序判断步骤(3)中写入flash的内容是否被擦除,若是,则验证了芯片flash读保护等级的改变会引起mass erase,若不是,则说明芯片flash读保护等级的改变不会引起mass erase。
具体地,上述步骤中,重启程序可通过调用芯片程序函数system reset执行。所述步骤(3)中向flash中写入内容为向flash主体部分写入内容;所述步骤(3)中对flash寄存器FLASH_OBR写入标记值,具体步骤为向flash寄存器FLASH_OBR中data部分写入数据,从而实现修改寄存器FLASH_OBR的值。
通过以上描述可以看出,本发明将测试程序不烧录到FLASH主体而将程序烧录到芯片自带的SRAM里,并从SRAM启动,避免将flash中的测试程序擦除;此外,本发明通过在flash寄存器FLASH_OBR写入标记位用来记录发生了程序重启,当下次程序重新开始运行时,跳过这一部分,从而避免进入不断重启的死循环。
当然,以上只是本发明的典型实例,除此之外,本发明还可以有其它多种具体实施方式,凡采用等同替换或等效变换形成的技术方案,均落在本发明要求保护的范围之内。

Claims (5)

1.一种用于flash读保护改变的测试电路,其特征在于:包括芯片、上位机和程序下载器,芯片内包括flash模块和SRAM模块,所述芯片电源引脚连接相应电压电源,所述芯片GND引脚接地,所述芯片BOOT0和BOOT1接上拉电阻连接至电源,所述程序下载器一端连接芯片JTAG串口,程序下载器另一端连接上位机。
2.一种用于flash读保护改变的测试方法,其特征在于,采用权利要求1中所述的用于flash读保护改变的测试电路,具体包括以下步骤:
(1)完成上述测试电路的硬件连接工作;
(2)将测试flash的程序通过下载器烧录到芯片的SRAM里,并从SRAM启动;
(3)判断flash寄存器FLASH_OBR是否为初始值,若是,则向flash中写入内容,并对flash寄存器FLASH_OBR写入标记值,重启程序,让标记值生效,若不是,则执行下一步骤;
(4)判断flash寄存器FLASH_OBR是否为写入的标记值,若是,修改 flash中读保护位的值,重启程序,让读保护状态改变生效,若不是,则执行下一步骤;
(5)判断flash读保护位的值是否为步骤(4)中修改的值,若是,则通过测试程序对步骤(3)中写入flash的内容进行检测,若不是,则说明flash的读保护无法开启,则无法对flash读保护状态改变进行测试;
(6)通过测试程序判断步骤(3)中写入flash的内容是否被擦除,若是,则验证了芯片flash读保护等级的改变会引起程序擦除,若不是,则说明芯片flash读保护等级的改变不会引起程序擦除。
3.根据权利要求2所述的一种用于flash读保护改变的测试方法,其特征在于:所述重启程序通过调用芯片程序函数system reset执行。
4.根据权利要求2所述的一种用于flash读保护改变的测试方法,其特征在于:所述步骤(3)中向flash中写入内容具体为向flash主体部分写入内容。
5.根据权利要求2所述的一种用于flash读保护改变的测试方法,其特征在于:所述步骤(3)中对flash寄存器FLASH_OBR写入标记值,具体步骤为向flash寄存器FLASH_OBR中data部分写入数据,从而实现修改寄存器FLASH_OBR的值。
CN202111586275.4A 2021-12-23 2021-12-23 一种用于flash读保护改变的测试电路及方法 Pending CN114220473A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111586275.4A CN114220473A (zh) 2021-12-23 2021-12-23 一种用于flash读保护改变的测试电路及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111586275.4A CN114220473A (zh) 2021-12-23 2021-12-23 一种用于flash读保护改变的测试电路及方法

Publications (1)

Publication Number Publication Date
CN114220473A true CN114220473A (zh) 2022-03-22

Family

ID=80705337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111586275.4A Pending CN114220473A (zh) 2021-12-23 2021-12-23 一种用于flash读保护改变的测试电路及方法

Country Status (1)

Country Link
CN (1) CN114220473A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006079449A (ja) * 2004-09-10 2006-03-23 Canon Inc 記憶媒体アクセス制御方法
KR20140148132A (ko) * 2013-06-21 2014-12-31 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
CN104598402A (zh) * 2014-12-30 2015-05-06 北京兆易创新科技股份有限公司 一种闪存控制器和闪存控制器的控制方法
CN108269605A (zh) * 2016-12-30 2018-07-10 谷歌有限责任公司 安全器件状态设备和方法以及生命周期管理
CN112182586A (zh) * 2020-09-29 2021-01-05 中电海康无锡科技有限公司 一种mcu读写保护的测试方法、装置及***
CN113282442A (zh) * 2021-07-22 2021-08-20 翱捷科技(深圳)有限公司 芯片量产自动化校准预设固件高速下载的方法及***
WO2021189322A1 (zh) * 2020-03-25 2021-09-30 华为技术有限公司 一种芯片测试装置及测试方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006079449A (ja) * 2004-09-10 2006-03-23 Canon Inc 記憶媒体アクセス制御方法
KR20140148132A (ko) * 2013-06-21 2014-12-31 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
CN104598402A (zh) * 2014-12-30 2015-05-06 北京兆易创新科技股份有限公司 一种闪存控制器和闪存控制器的控制方法
CN108269605A (zh) * 2016-12-30 2018-07-10 谷歌有限责任公司 安全器件状态设备和方法以及生命周期管理
WO2021189322A1 (zh) * 2020-03-25 2021-09-30 华为技术有限公司 一种芯片测试装置及测试方法
CN112182586A (zh) * 2020-09-29 2021-01-05 中电海康无锡科技有限公司 一种mcu读写保护的测试方法、装置及***
CN113282442A (zh) * 2021-07-22 2021-08-20 翱捷科技(深圳)有限公司 芯片量产自动化校准预设固件高速下载的方法及***

Similar Documents

Publication Publication Date Title
TWI473117B (zh) 具資料修正功能之快閃記憶體儲存裝置
US6587916B2 (en) Microcomputer with built-in programmable nonvolatile memory
US7929354B2 (en) Verified purge for flash storage device
US6798713B1 (en) Implementing software breakpoints
US9437312B2 (en) Management of write-protected data in a semiconductor memory
US20080016415A1 (en) Evaluation system and method
KR100777446B1 (ko) 전자장치 및 그 부팅방법
JP2000045858A (ja) 電子制御装置及び不揮発性メモリの書換回数記憶方法
US6044014A (en) Electronic control unit and method for storing rewrite count of nonvolatile memory
US20030135706A1 (en) Microcontroller having embedded non-volatile memory with read protection
US7574585B1 (en) Implementing software breakpoints and debugger therefor
CN114220473A (zh) 一种用于flash读保护改变的测试电路及方法
US20100083073A1 (en) Data processing apparatus, memory controlling circuit, and memory controlling method
US20070088905A1 (en) System and method for purging a flash storage device
KR100580071B1 (ko) 메모리 오류 검출방법
CN112052112A (zh) 基于NOR Flash存储的位翻转错误检测方法、装置及存储介质
US20070101049A1 (en) Redundant purge for flash storage device
US20050068842A1 (en) Electronic device, nonvolatile memory and method of overwriting data in nonvolatile memory
JP4324149B2 (ja) エミュレータ及びそれを用いた開発支援システム
TWI450275B (zh) 可提升寫入保護之記憶體系統及相關方法
US20070101048A1 (en) Verified purge for flash storage device
CN118057380A (zh) 芯片、芯片启动方法和电子设备
CN111966363A (zh) 配置字初始化设置及读取配置字的方法、控制装置和车辆
CN114942896A (zh) 一种c语言内存块的管理方法及终端
CN116482514A (zh) 用于芯片上电自动校准的装置和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination