CN102207913A - 嵌入式系统中写保护的控制方法和装置 - Google Patents

嵌入式系统中写保护的控制方法和装置 Download PDF

Info

Publication number
CN102207913A
CN102207913A CN2011101542808A CN201110154280A CN102207913A CN 102207913 A CN102207913 A CN 102207913A CN 2011101542808 A CN2011101542808 A CN 2011101542808A CN 201110154280 A CN201110154280 A CN 201110154280A CN 102207913 A CN102207913 A CN 102207913A
Authority
CN
China
Prior art keywords
write
address
writes
zone
illegally
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.)
Granted
Application number
CN2011101542808A
Other languages
English (en)
Other versions
CN102207913B (zh
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201110154280.8A priority Critical patent/CN102207913B/zh
Publication of CN102207913A publication Critical patent/CN102207913A/zh
Application granted granted Critical
Publication of CN102207913B publication Critical patent/CN102207913B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供了一种嵌入式系统中写保护的控制方法和装置,其中,该方法包括:获取引起CPU总线异常中断的写指令所要写入的非法写入地址,其中,非法写入地址被预先设置为写保护;将非法写入地址修改为允许写入的区域的地址;对允许写入的区域的地址执行写指令的操作。本发明解决了现有技术中的嵌入式系统中写保护方法安全性较低的问题,提高了嵌入式系统中写保护的安全性。

Description

嵌入式系统中写保护的控制方法和装置
技术领域
本发明涉及嵌入式系统领域,具体而言,涉及一种嵌入式系统中写保护的控制方法和装置。
背景技术
在当前的嵌入式系统设备中,广泛的使用了嵌入式操作系统。嵌入式操作系统接管了嵌入式系统设备中的绝大部分硬件资源管理,包括通过CPU数据地址总线访问外部设备的物理地址空间,将外设的读、写、控制操作封装成几种固定的API(应用程序接口)提供给开发人员,如read(读取),wnte(写入),ioctrl(输入输出控制)等驱动接口函数。这种方式给开发人员带来了很多便利,不需要关心硬件底层的实现细节,加快了开发速度,但是也带来了一些硬件控制上的隐患,比如低效率、不安全和不灵活。下面将会逐一举例说明。
在一些应用场景中,嵌入式系统需要对某一段地址空间内容进行写保护,只能进行读取数据操作而不允许进行写入数据操作,如存储嵌入式系统启动程序或重要数据的FLASH(闪存),EEPROM(电可擦可编程只读存储器)等,是禁止非法写入的;某些上位机和下位机通讯过程中,下位机准备就绪之前是禁止上位机进行写入数据操作的。
在使用了操作系统的嵌入式系统中,这种写保护通常是通过软件来实现的,普遍做法是使用操作系统提供的信号量或者互斥量进行保护。如图1所示,这种使用操作系统提供API来保护数据区域的方法包括如下步骤:
S101,创建信号量(semaphore)用来保护一段数据区域,如在嵌入式操作系统pSOSystem中,使用系统调用sm_create来创建信号量“WPSM”;
S102,在对数据区域进行写入操作前,先对“WPSM”信号量进行P操作,如pSOSystem中的系统调用sm_p;
S103,提前对“WPSM”信号量进行P操作,即可实现数据区域的写保护,后续写入动作的P操作将会失败;
S104,对“WPSM”信号量进行V操作,如pSOSystem中的系统调用sm_v,即可解除数据区域的写保护,后续写入动作对“WPSM”的P操作成功,可以写入。
然而,用这种方式实现的数据区域写保护方法,存在实时性不高(软实时),效率低(无法一次保护整段连续的物理地址空间)的特点。同时这种写保护方式安全性差,因为始终存在绕过操作系统提供API直接写入数据的可能,如CIH病毒绕过WINDOWS操作系统直接写入主板BIOS(基本输入输出系统)导致微机无法启动,或是CPU掉电时的数据地址总线的随机状态产生写入非法数据操作。
此外,如果不使用操作系统提供的软件接口,这种写保护也可以通过硬件来实现,普遍做法是通过机械开关、硬件跳线或逻辑寄存器来设置写保护状态,外带硬件写保护电路,通过判断写保护状态来打开或关闭写保护功能。用这种方式实现的数据区域写保护方法,存在成本高(需要额外硬件电路或逻辑资源),不灵活(需要外界设置干预)的特点。如带写保护开关的U盘,需要增加开关和内部电路,增加了成本,并且要用户手动拨才能实现打开或禁止写入数据的效果。
如果数据存储在某种具备写保护功能的存储介质上如FLASH,EEPROM等,可以使用存储介质自带的写保护功能,如图2所示,使用带写保护功能存储介质来保护数据区域的装置包括:外部控制接口201;写保护开关202,用于控制写保护电路的工作状态;写保护电路203,用于根据开关状态控制写入使能信号;带写保护功能的存储介质204。
但是如果数据位于自身不带写保护功能的存储介质如SRAM(静态随机存取存储器)、SDRAM(同步动态随机存取存储器)或DPRAM(双端口随机存储器)等,或下位机如单片机、MCU(微控制器),DSP(数字信号处理器)等,就无法使用这种方式进行数据写保护,因此,这种设计方案具有较大的局限性。
此外,现有技术中还可以使用CPU的MMU保护数据区域,其流程图如图3所示,包括如下步骤:
S301,将需要写保护数据区域定义为一个特殊的MMU(内存管理单元)内存页面;
S302,设定要进行写保护控制的内存页其MMU数据存取权限为只读不可写,则写保护控制生效;
S303,当有程序指令写入到设置写保护的页时,将进入MMU异常中断,产生数据存取违背权限的异常;
S304,在异常处理程序中进行处理,按该指令正常读写内存处理,完成后退出异常处理程序,返回中断点;
S305,设置被写保护控制的内存页其MMU数据存取权限为可读写,则撤销写保护控制。
然而,现有技术中的嵌入式系统中写保护方法安全性较低。
发明内容
本发明的主要目的在于提供一种嵌入式系统中写保护的控制方法,以至少解决现有技术中的嵌入式系统中写保护方法安全性较低的问题。
根据本发明的一个方面,提供了一种嵌入式系统中写保护的控制方法,其包括:获取引起CPU总线异常中断的写指令所要写入的非法写入地址,其中,非法写入地址被预先设置为写保护;将非法写入地址修改为允许写入的区域的地址;对允许写入的区域的地址执行写指令的操作。
在获取引起CPU总线异常中断的写指令所要写入的非法写入地址之前,嵌入式系统中写保护的控制方法还包括:检测到出现CPU总线异常中断;通过内存状态寄存器中的标志位来判断引起CPU总线异常中断的写指令所要写入的写入地址是否属于被写保护的数据区域;若属于,则判断出引起CPU总线异常中断的写指令所要写入的写入地址为非法写入地址,并执行获取引起CPU总线异常中断的写指令所要写入的非法写入地址的步骤。
将非法写入地址修改为允许写入的区域的地址的步骤包括:通过环形队列来存储允许写入的区域的地址,其中,每一个队列成员中记录一个允许写入的区域的地址;将非法写入地址修改为环形队列的首指针指向的队列成员中记录的地址;将环形队列的首指针指向环形队列中的下一个队列成员。
在将非法写入地址修改为允许写入的区域的地址之后,嵌入式系统中写保护的控制方法还包括:记录写指令的指令地址;根据所记录的指令地址对写指令所在的程序进行错误定位。
根据所记录的指令地址对写指令所在的程序进行错误定位的步骤包括:将所记录的指令地址发送给用户,并接收用户输入的错误定位信息,其中,错误定位信息根据所记录的指令地址计算得到;或者接收用户输入的读取所记录的指令地址的请求消息,响应于请求消息将所记录的指令地址发送给用户,并接收用户输入的错误定位信息,其中,错误定位信息根据所记录的指令地址计算得到。
通过以下步骤来设置允许写入的区域的地址:通过设置寄存器中的标志位来取消CPU外接的芯片的整个存储区域的写保护功能;将取消了写保护功能的芯片的整个存储区域的地址设置为允许写入的区域的地址。
根据本发明的另一方面,提供了一种嵌入式系统中写保护的控制装置,其包括:获取单元,用于获取引起CPU总线异常中断的写指令所要写入的非法写入地址,其中,非法写入地址被预先设置为写保护;修改单元,用于将非法写入地址修改为允许写入的区域的地址;执行单元,用于对允许写入的区域的地址执行写指令的操作。
嵌入式系统中写保护的控制装置还包括:存储单元,用于记录写指令的指令地址;定位单元,用于根据所记录的指令地址对写指令所在的程序进行错误定位。
定位单元包括:发送模块,用于将所记录的指令地址发送给用户,或者,响应于请求消息将所记录的指令地址发送给用户;接收模块,用于接收用户输入的读取所记录的指令地址的请求消息,并接收用户输入的错误定位信息,其中,错误定位信息根据所记录的指令地址计算得到。
嵌入式系统中写保护的控制装置还包括:设置单元,用于通过以下步骤来设置允许写入的区域的地址:通过设置寄存器中的标志位来取消CPU外接的芯片的整个存储区域的写保护功能;将取消了写保护功能的芯片的整个存储区域的地址设置为允许写入的区域的地址。
在本发明中,通过将非法写入地址修改为允许写入的区域的地址来执行要求非法写入地址的写指令,使得对于写保护的控制不依赖于操作系统提供的设备驱动接口、CPU(中央处理器)的MMU(内存管理单元)功能、专门的硬件写保护电路和逻辑资源或存储介质自带的写保护功能,从而能够解决现有技术中的嵌入式系统中写保护方法安全性较低的问题,提高了嵌入式系统中写保护的安全性;此外,由于本发明可以独立完成、并且不需要额外增加任何硬件电路或逻辑资源,因此,使得本发明的应用成本较低,并能够适用于多种应用场景;另一方面,本发明由嵌入式软件控制底层硬件来实现一段指定范围地址空间内的数据写保护功能,从而能够实现根据既定策略对嵌入式系统中指定数据区域打开或关闭写保护功能,同时读取功能不受影响;又一方面,可以通过记录的写指令的指令地址对写保护期间的写入操作进行记录和反向追踪分析,便于开发人员的程序错误定位和处理。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是现有技术中使用操作系统提供API来保护数据区域的流程图;
图2是现有技术中使用带写保护功能存储介质来保护数据区域的装置的结构图;
图3是现有技术中使用CPU的MMU保护数据区域的流程图;
图4是根据本发明实施例的嵌入式系统中写保护的控制方法的优选流程图;
图5是本发明实现指定数据区域写保护控制方法的流程示意图;
图6是图5中步骤S503判断中断来源的流程图;
图7是图5中步骤S505修改非法写入地址并记录非法操作的流程图;
图8是根据本发明实施例的嵌入式系统中写保护的控制装置的优选结构图。
具体实施方式
实施例1
图4是根据本发明实施例的嵌入式系统中写保护的控制方法的优选流程图,其包括如下步骤:
S401,获取引起CPU总线异常中断的写指令所要写入的非法写入地址,其中,非法写入地址被预先设置为写保护;
S402,将非法写入地址修改为允许写入的区域的地址;
S403,对允许写入的区域的地址执行写指令的操作。
在本实施例中,通过将非法写入地址修改为允许写入的区域的地址来执行要求非法写入地址的写指令,使得对于写保护的控制不依赖于操作系统提供的设备驱动接口、CPU(中央处理器)的MMU(内存管理单元)功能、专门的硬件写保护电路和逻辑资源或存储介质自带的写保护功能,从而能够解决现有技术中的嵌入式系统中写保护方法安全性较低的问题,提高了嵌入式系统中写保护的安全性。此外,由于本发明可以独立完成、并且不需要额外增加任何硬件电路或逻辑资源,因此,使得本发明的应用成本较低,并能够适用于多种应用场景。
在获取引起CPU总线异常中断的写指令所要写入的非法写入地址之前,嵌入式系统中写保护的控制方法还包括:检测到出现CPU总线异常中断;通过内存状态寄存器中的标志位来判断引起CPU总线异常中断的写指令所要写入的写入地址是否属于被写保护的数据区域;若属于,则判断出引起CPU总线异常中断的写指令所要写入的写入地址为非法写入地址,并执行获取引起CPU总线异常中断的写指令所要写入的非法写入地址的步骤。在本实施例中,通过标志位的判断,能够准确快速地判断总线异常中断的原因。
在上述检测CPU总线异常中断的过程中,设置CPU总线访问异常入口地址,接管总线异常处理中断程序,优选的,异常处理中断入口地址由CPU提供。
将所述非法写入地址修改为允许写入的区域的地址的步骤包括:通过环形队列来存储允许写入的区域的地址,其中,每一个队列成员中记录一个允许写入的区域的地址;将所述非法写入地址修改为所述环形队列的首指针指向的队列成员中记录的地址;将所述环形队列的首指针指向所述环形队列中的下一个队列成员。通过上述环形队列的方式来存储允许写入的区域的地址,可以实现快速地合法地址替换,并节约了存储空间。
在上述将所述非法写入地址修改为允许写入的区域的地址的过程中,异常处理程序解析机器指令中被写保护地址并修改其为可写地址,这里,机器指令一般为RISC(精简指令集)格式。在嵌入式系统中使用的CPU广泛采用RISC格式。可以根据修改存放写入地址的寄存器值为预先设定的可写入地址,并保存当前写入指令的物理地址,达到非法写入动作重新定向到合法地址和记录写入操作来源的效果。预先设定的写入地址空间由一个环形队列构成,每个队列成员均包含写入操作的指令地址,对写保护数据区域的写入操作将通过FIFO(先入先出)的方式进入队列保存或者被后续写入操作覆盖;根据需要,队列成员还可以包含当前时间戳等记录,便于更好的反向追踪分析。
在将所述非法写入地址修改为允许写入的区域的地址之后,嵌入式系统中写保护的控制方法还包括:记录所述写指令的指令地址;根据所记录的指令地址对所述写指令所在的程序进行错误定位。在本实施例中,可以通过记录的写指令的指令地址对写保护期间的写入操作进行记录和反向追踪分析,便于开发人员的程序错误定位和处理。优选的,还可以对环形队列进行分析,从而得出非法写入操作的来源及写入值的记录,记录最大长度为环形队列的成员个数。
根据所记录的指令地址对所述写指令所在的程序进行错误定位的步骤包括:将所记录的指令地址发送给用户,并接收用户输入的错误定位信息,其中,所述错误定位信息根据所记录的指令地址计算得到;或者接收用户输入的读取所记录的指令地址的请求消息,响应于所述请求消息将所记录的指令地址发送给用户,并接收用户输入的错误定位信息,其中,所述错误定位信息根据所记录的指令地址计算得到。在本实施例中,通过这种主动和被动的方式来与用户交互记录的指令地址和错误定位信息,可以满足不同的场景需求,便于开发人员的程序错误定位和处理。
通过以下步骤来设置所述允许写入的区域的地址:通过设置寄存器中的标志位来取消所述CPU外接的芯片的整个存储区域的写保护功能;将取消了写保护功能的芯片的整个存储区域的地址设置为允许写入的区域的地址。在本实施例中,由嵌入式软件控制底层硬件来实现一段指定范围地址空间内的数据写保护功能,从而能够实现根据既定策略对嵌入式系统中指定数据区域打开或关闭写保护功能,同时读取功能不受影响。
优选的,CPU外接的芯片的选择通过片选属性或标志位来完成,其中,CPU片选访问属性通常由CPU提供的内部寄存器来设置,片选写保护功能属性由CPU硬件提供:如嵌入式系统中常用的PowerPC系列处理器就提供这种功能,在ARM和MIPS系列某些处理器中也提供类似功能。
实施例2
以下结合附图和具体实施例对本发明进行详细描述。以网络通信设备类嵌入式系统中常用的32位RISC指令集的CPU,Freescale(飞思卡尔)公司的通信处理器MPC860系列为例。
如图5所示,包括以下步骤:
步骤S501、确定CPU的总线异常中断处理入口地址。通过MPC860用户手册中芯片描述可知,MPC860处理总线异常的中断向量偏移地址为0x00200(见用户手册7.1.2.2章节):机器检查中断(Machine Check Interrupt)。机器检查中断由MSR[ME](MSR:机器状态寄存器的ME比特位)置位来使能,产生原因一般是访问地址不存在或发生数据错误,写入总线保护的区域也会产生中断。
步骤S502、接管CPU总线异常处理中断程序。通过将用户自定义ISR(中断服务程序)UsrMachChk注册到0x00200中断向量入口处,并置位MSR寄存器ME位,即可接管该中断,取得机器检查中断的控制权。
步骤S503、检查触发总线异常处理中断原因。机器检查中断在MPC860中使用菊花链的处理方式级联,在机器检查中断服务程序UsrMachChk中,首先进行中断来源判断。可以通过判断MSTAT(内存状态寄存器,Memory Status Register)的标志位WPER是否置位,来判断机器检查中断产生原因是被写保护的数据区域有写入操作。如果MSTAT[WPER]没有置位,则跳转到原来的机器检查中断服务程序中处理;若置位,先清掉MSTAT[WPER],避免重复处理。具体的,本发明还提供了一种优选的判断中断来源的方法,如图6所示的步骤S601-S606。
步骤S504、解析写入操作的指令获取写入地址、指令物理地址等内容。触发中断的指令物理地址存放在r0寄存器中,作为中断的返回地址。从r0寄存器中可以获取写入指令地址,并根据其地址读取指令内容。根据PowerPC的RISC指令集分析,指令写入目的地址一般是内部寄存器,位于32比特长度指令操作码后的第6到10比特(指令操作码起始比特位为0)位域,可以获得写入指令的目的寄存器地址(一般是r31),该寄存器内容即是被写入的物理地址。
步骤S505、修改写入指令目标寄存器内容,将非法的(被保护)写入地址改为合法的地址即预先设置的环形队列首指针指向的成员地址,并移动环形队列的首指针指向下一个队列成员。如果有必要同时记录如系统时间等有用数据。具体的,本发明还提供了一种优选的修改非法写入地址并记录非法操作的方法,如图7所示的S701-S704
步骤S506、退出机器检查中断服务程序。
步骤S507、根据对嵌入式系统硬件具体设计的分析(电路原理图、文档等),可确定被保护的数据区域使用MPC860的x号(取值范围0~7)片选访问。
步骤S508、将MPC860的x号片选对应片选设置寄存器BRx(BR0~BR7)的WP位置为1,即可使写保护功能生效。任何对保护区域的写入操作将会触发机器检查中断,并进入被接管的机器中断服务程序UsrMachChk中处理。
步骤S509、将MPC860的x号片选对应片选设置寄存器BRx(BR0~BR7)的WP位置为0,即可将写保护功能取消,对该片选区域的写入操作将会恢复正常,不会触发机器检查中断。如果有其他原因产生了机器检查中断,中断服务程序UsrMachChk会通过步骤S503的判断,跳转到原有的机器检查中断服务程序中,不会影响其他中断源的正常处理。
步骤S510、通过对预先定义的环形队列内容(步骤S505产生该数据)进行分析,即可得出非法写入操作的来源等记录,达到类似日志系统的效果。
实施例3
图8是根据本发明实施例的嵌入式系统中写保护的控制装置的优选结构图,其包括:获取单元801,用于获取引起CPU总线异常中断的写指令所要写入的非法写入地址,其中,非法写入地址被预先设置为写保护;修改单元802,用于将非法写入地址修改为允许写入的区域的地址;执行单元803,用于对允许写入的区域的地址执行写指令的操作。
在本实施例中,通过将非法写入地址修改为允许写入的区域的地址来执行要求非法写入地址的写指令,使得对于写保护的控制不依赖于操作系统提供的设备驱动接口、CPU(中央处理器)的MMU(内存管理单元)功能、专门的硬件写保护电路和逻辑资源或存储介质自带的写保护功能,从而能够解决现有技术中的嵌入式系统中写保护方法安全性较低的问题,提高了嵌入式系统中写保护的安全性。此外,由于本发明可以独立完成、并且不需要额外增加任何硬件电路或逻辑资源,因此,使得本发明的应用成本较低,并能够适用于多种应用场景。
在获取引起CPU总线异常中断的写指令所要写入的非法写入地址之前,获取单元801检测到出现CPU总线异常中断,并通过内存状态寄存器中的标志位来判断引起CPU总线异常中断的写指令所要写入的写入地址是否属于被写保护的数据区域;若属于,则判断出引起CPU总线异常中断的写指令所要写入的写入地址为非法写入地址,并执行获取引起CPU总线异常中断的写指令所要写入的非法写入地址的步骤。在本实施例中,通过标志位能够准确快速地判断总线异常中断的原因。
在上述检测CPU总线异常中断的过程中,设置CPU总线访问异常入口地址,接管总线异常处理中断程序,优选的,异常处理中断入口地址由CPU提供。
修改单元802通过以下步骤将所述非法写入地址修改为允许写入的区域的地址:通过环形队列来存储允许写入的区域的地址,其中,每一个队列成员中记录一个允许写入的区域的地址;将所述非法写入地址修改为所述环形队列的首指针指向的队列成员中记录的地址;将所述环形队列的首指针指向所述环形队列中的下一个队列成员。通过上述环形队列的方式来存储允许写入的区域的地址,可以实现快速地合法地址替换,并节约了存储空间。
在上述将所述非法写入地址修改为允许写入的区域的地址的过程中,异常处理程序解析机器指令中被写保护地址并修改其为可写地址,这里,机器指令一般为RISC(精简指令集)格式。在嵌入式系统中使用的CPU广泛采用RISC格式。可以根据修改存放写入地址的寄存器值为预先设定的可写入地址,并保存当前写入指令的物理地址,达到非法写入动作重新定向到合法地址和记录写入操作来源的效果。预先设定的写入地址空间由一个环形队列构成,每个队列成员均包含写入操作的指令地址,对写保护数据区域的写入操作将通过FIFO(先入先出)的方式进入队列保存或者被后续写入操作覆盖;根据需要,队列成员还可以包含当前时间戳等记录,便于更好的反向追踪分析。
根据本发明实施例的嵌入式系统中写保护的控制装置还包括:存储单元804,用于记录所述写指令的指令地址;定位单元805,用于根据所记录的指令地址对所述写指令所在的程序进行错误定位。在本实施例中,可以通过记录的写指令的指令地址对写保护期间的写入操作进行记录和反向追踪分析,便于开发人员的程序错误定位和处理。优选的,还可以对环形队列进行分析,从而得出非法写入操作的来源及写入值的记录,记录最大长度为环形队列的成员个数。
所述定位单元805包括:发送模块,用于将所记录的指令地址发送给用户,或者,响应于请求消息将所记录的指令地址发送给用户,接收模块,用于接收用户输入的读取所记录的指令地址的所述请求消息,并接收所述用户输入的错误定位信息,其中,所述错误定位信息根据所记录的指令地址计算得到。在本实施例中,通过这种主动和被动的方式来与用户交互记录的指令地址和错误定位信息,可以满足不同的场景需求,便于开发人员的程序错误定位和处理。
根据本发明实施例的嵌入式系统中写保护的控制装置还包括:设置单元806,用于通过以下步骤来设置所述允许写入的区域的地址:通过设置寄存器中的标志位来取消所述CPU外接的芯片的整个存储区域的写保护功能;将取消了写保护功能的芯片的整个存储区域的地址设置为允许写入的区域的地址。在本实施例中,由嵌入式软件控制底层硬件来实现一段指定范围地址空间内的数据写保护功能,从而能够实现根据既定策略对嵌入式系统中指定数据区域打开或关闭写保护功能,同时读取功能不受影响。
优选的,CPU外接的芯片的选择通过片选属性或标志位来完成,其中,CPU片选访问属性通常由CPU提供的内部寄存器来设置,片选写保护功能属性由CPU硬件提供:如嵌入式系统中常用的PowerPC系列处理器就提供这种功能,在ARM和MIPS系列某些处理器中也提供类似功能。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种嵌入式系统中写保护的控制方法,其特征在于,包括:
获取引起CPU总线异常中断的写指令所要写入的非法写入地址,其中,所述非法写入地址被预先设置为写保护;
将所述非法写入地址修改为允许写入的区域的地址;
对所述允许写入的区域的地址执行所述写指令的操作。
2.根据权利要求1所述的方法,其特征在于,在获取引起CPU总线异常中断的写指令所要写入的非法写入地址之前,还包括:
检测到出现CPU总线异常中断;
通过内存状态寄存器中的标志位来判断引起CPU总线异常中断的写指令所要写入的写入地址是否属于被写保护的数据区域;
若属于,则判断出引起CPU总线异常中断的写指令所要写入的写入地址为非法写入地址,并执行获取引起CPU总线异常中断的写指令所要写入的非法写入地址的步骤。
3.根据权利要求1所述的方法,其特征在于,将所述非法写入地址修改为允许写入的区域的地址的步骤包括:
通过环形队列来存储允许写入的区域的地址,其中,每一个队列成员中记录一个允许写入的区域的地址;
将所述非法写入地址修改为所述环形队列的首指针指向的队列成员中记录的地址;
将所述环形队列的首指针指向所述环形队列中的下一个队列成员。
4.根据权利要求1至3中任一项所述的方法,其特征在于,在将所述非法写入地址修改为允许写入的区域的地址之后,还包括:
记录所述写指令的指令地址;
根据所记录的指令地址对所述写指令所在的程序进行错误定位。
5.根据权利要求4所述的方法,其特征在于,根据所记录的指令地址对所述写指令所在的程序进行错误定位的步骤包括:
将所记录的指令地址发送给用户,并接收用户输入的错误定位信息,其中,所述错误定位信息根据所记录的指令地址计算得到;或者
接收用户输入的读取所记录的指令地址的请求消息,响应于所述请求消息将所记录的指令地址发送给用户,并接收用户输入的错误定位信息,其中,所述错误定位信息根据所记录的指令地址计算得到。
6.根据权利要求1所述的方法,其特征在于,通过以下步骤来设置所述允许写入的区域的地址:
通过设置寄存器中的标志位来取消所述CPU外接的芯片的整个存储区域的写保护功能;
将取消了写保护功能的芯片的整个存储区域的地址设置为允许写入的区域的地址。
7.一种嵌入式系统中写保护的控制装置,其特征在于,包括:
获取单元,用于获取引起CPU总线异常中断的写指令所要写入的非法写入地址,其中,所述非法写入地址被预先设置为写保护;
修改单元,用于将所述非法写入地址修改为允许写入的区域的地址;
执行单元,用于对所述允许写入的区域的地址执行所述写指令的操作。
8.根据权利要求7所述的装置,其特征在于,还包括:
存储单元,用于记录所述写指令的指令地址;
定位单元,用于根据所记录的指令地址对所述写指令所在的程序进行错误定位。
9.根据权利要求8所述的装置,其特征在于,所述定位单元包括:
发送模块,用于将所记录的指令地址发送给用户,或者,响应于请求消息将所记录的指令地址发送给用户;
接收模块,用于接收用户输入的读取所记录的指令地址的所述请求消息,并接收所述用户输入的错误定位信息,其中,所述错误定位信息根据所记录的指令地址计算得到。
10.根据权利要求7所述的装置,其特征在于,还包括:设置单元,用于通过以下步骤来设置所述允许写入的区域的地址:
通过设置寄存器中的标志位来取消所述CPU外接的芯片的整个存储区域的写保护功能;
将取消了写保护功能的芯片的整个存储区域的地址设置为允许写入的区域的地址。
CN201110154280.8A 2011-06-09 2011-06-09 嵌入式系统中写保护的控制方法和装置 Active CN102207913B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110154280.8A CN102207913B (zh) 2011-06-09 2011-06-09 嵌入式系统中写保护的控制方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110154280.8A CN102207913B (zh) 2011-06-09 2011-06-09 嵌入式系统中写保护的控制方法和装置

Publications (2)

Publication Number Publication Date
CN102207913A true CN102207913A (zh) 2011-10-05
CN102207913B CN102207913B (zh) 2019-05-31

Family

ID=44696755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110154280.8A Active CN102207913B (zh) 2011-06-09 2011-06-09 嵌入式系统中写保护的控制方法和装置

Country Status (1)

Country Link
CN (1) CN102207913B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102867154A (zh) * 2012-09-12 2013-01-09 迈普通信技术股份有限公司 一种源代码保护方法和装置
CN103902426A (zh) * 2012-12-27 2014-07-02 英飞凌科技股份有限公司 多层追踪
CN105183676A (zh) * 2015-10-21 2015-12-23 上海斐讯数据通信技术有限公司 对存储器写保护的系统及方法
CN105279094A (zh) * 2014-06-09 2016-01-27 中兴通讯股份有限公司 NAND Flash操作处理方法、装置及逻辑器件
CN106708679A (zh) * 2015-11-17 2017-05-24 深圳市中兴微电子技术有限公司 一种片上系统总线行为检测方法和装置
CN108628699A (zh) * 2018-05-11 2018-10-09 简式国际汽车设计(北京)有限公司 一种基于ecc的flash数据异常处理方法及装置
CN109739673A (zh) * 2018-12-05 2019-05-10 新华三技术有限公司合肥分公司 一种寄存器写入保护方法、逻辑装置及通信设备
CN111143237A (zh) * 2019-12-26 2020-05-12 普冉半导体(上海)有限公司 存储器的软件写保护系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071401A (zh) * 2006-05-12 2007-11-14 夏普株式会社 具有存储保护功能的计算机系统
CN101082886A (zh) * 2006-05-30 2007-12-05 松下电器产业株式会社 存储器数据保护装置及ic卡用lsi
CN101561775A (zh) * 2009-05-12 2009-10-21 华为技术有限公司 内存监控方法和装置
US20100231230A1 (en) * 2009-03-16 2010-09-16 Siemens Energy & Automation, Inc. Calibration Module Shield and Protection Method
WO2010112869A1 (en) * 2009-04-04 2010-10-07 Peter Norman Panayi A data protection system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071401A (zh) * 2006-05-12 2007-11-14 夏普株式会社 具有存储保护功能的计算机系统
CN101082886A (zh) * 2006-05-30 2007-12-05 松下电器产业株式会社 存储器数据保护装置及ic卡用lsi
US20100231230A1 (en) * 2009-03-16 2010-09-16 Siemens Energy & Automation, Inc. Calibration Module Shield and Protection Method
WO2010112869A1 (en) * 2009-04-04 2010-10-07 Peter Norman Panayi A data protection system
CN101561775A (zh) * 2009-05-12 2009-10-21 华为技术有限公司 内存监控方法和装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102867154A (zh) * 2012-09-12 2013-01-09 迈普通信技术股份有限公司 一种源代码保护方法和装置
CN102867154B (zh) * 2012-09-12 2015-08-12 迈普通信技术股份有限公司 一种源代码保护方法和装置
CN103902426A (zh) * 2012-12-27 2014-07-02 英飞凌科技股份有限公司 多层追踪
CN103902426B (zh) * 2012-12-27 2017-04-12 英飞凌科技股份有限公司 多层追踪
CN105279094A (zh) * 2014-06-09 2016-01-27 中兴通讯股份有限公司 NAND Flash操作处理方法、装置及逻辑器件
CN105183676A (zh) * 2015-10-21 2015-12-23 上海斐讯数据通信技术有限公司 对存储器写保护的系统及方法
CN106708679A (zh) * 2015-11-17 2017-05-24 深圳市中兴微电子技术有限公司 一种片上系统总线行为检测方法和装置
CN108628699A (zh) * 2018-05-11 2018-10-09 简式国际汽车设计(北京)有限公司 一种基于ecc的flash数据异常处理方法及装置
CN108628699B (zh) * 2018-05-11 2021-10-19 简式国际汽车设计(北京)有限公司 一种基于ecc的flash数据异常处理方法及装置
CN109739673A (zh) * 2018-12-05 2019-05-10 新华三技术有限公司合肥分公司 一种寄存器写入保护方法、逻辑装置及通信设备
CN111143237A (zh) * 2019-12-26 2020-05-12 普冉半导体(上海)有限公司 存储器的软件写保护系统

Also Published As

Publication number Publication date
CN102207913B (zh) 2019-05-31

Similar Documents

Publication Publication Date Title
CN102207913A (zh) 嵌入式系统中写保护的控制方法和装置
RU2374675C2 (ru) Системы и способы использования синтезированных команд в виртуальной машине
CN109840410B (zh) 一种进程内数据隔离与保护的方法和系统
US7210144B2 (en) Method for monitoring and emulating privileged instructions of programs in a virtual machine
KR101835250B1 (ko) 트랜잭셔널 메모리를 사용한 비인가 메모리 수정 및 액세스의 검출
TWI230860B (en) Integrated system management memory for system management interrupt handler independent of BIOS and operating system
TWI726925B (zh) 用於管理有界指標的裝置和方法
US7356735B2 (en) Providing support for single stepping a virtual machine in a virtual machine environment
WO2000045257B1 (en) Executing programs for a first computer architecture on a computer of a second architecture
US10140448B2 (en) Systems and methods of asynchronous analysis of event notifications for computer security applications
US10091216B2 (en) Method, apparatus, system, and computer readable medium for providing apparatus security
US20050240701A1 (en) Interrupt control apparatus
TW202022679A (zh) 用於停滯主處理器的系統和方法
KR20150063417A (ko) 데이터 처리장치와, 안전한 도메인 및 덜 안전한 도메인 사이에서 전환될 때 데이터 및 프로그램 코드를 안전하지 않은 액세스로부터 보호하는 방법
US20220366036A1 (en) An apparatus and method for handling exceptions
KR20180018734A (ko) 메모리 감시 유닛
US20170212852A1 (en) Method and accelerator unit for interrupt handling
EP3308314A1 (en) Secure mode state data access tracking
JP2015018552A (ja) 安全保護方法およびプロセッサ
EP3254221A1 (en) Mechanism for tracking tainted data
CN107111525B (zh) 数据处理设备中的系统错误处置
CN115576734A (zh) 一种多核异构日志存储方法和系统
CN111506395B (zh) 一种混合仿真的全数字虚拟运行环境的实现方法及装置
US8176301B2 (en) Millicode assist instructions for millicode store access exception checking
JP2009230479A (ja) マイクロプロセッサ

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant