• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 16
    • 下载费用:30 金币  

    重庆时时彩最新骗子: 嵌入式系统中写?;さ目刂品椒ê妥爸?pdf

    关 键 词:
    嵌入式 系统 写?;?控制 方法 装置
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201110154280.8

    申请日:

    2011.06.09

    公开号:

    CN102207913A

    公开日:

    2011.10.05

    当前法律状态:

    实审

    有效性:

    审中

    法律详情: 实质审查的生效IPC(主分类):G06F 12/14申请日:20110609|||公开
    IPC分类号: G06F12/14 主分类号: G06F12/14
    申请人: 中兴通讯股份有限公司
    发明人: 魏猷君; 王超; 王闯
    地址: 518057 广东省深圳市南山区科技南路55号
    优先权:
    专利代理机构: 北京康信知识产权代理有限责任公司 11240 代理人: 余刚;江舟
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201110154280.8

    授权公告号:

    |||

    法律状态公告日:

    2014.06.11|||2011.10.05

    法律状态类型:

    实质审查的生效|||公开

    摘要

    本发明提供了一种嵌入式系统中写?;さ目刂品椒ê妥爸?,其中,该方法包括:获取引起CPU总线异常中断的写指令所要写入的非法写入地址,其中,非法写入地址被预先设置为写?;?;将非法写入地址修改为允许写入的区域的地址;对允许写入的区域的地址执行写指令的操作。本发明解决了现有技术中的嵌入式系统中写?;し椒ò踩越系偷奈侍?,提高了嵌入式系统中写?;さ陌踩?。

    权利要求书

    权利要求书
    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外接的芯片的整个存储区域的写?;すδ?;
    将取消了写?;すδ艿男酒恼龃娲⑶虻牡刂飞柚梦市硇慈氲那虻牡刂?。

    说明书

    说明书嵌入式系统中写?;さ目刂品椒ê妥爸?
    技术领域
    本发明涉及嵌入式系统领域,具体而言,涉及一种嵌入式系统中写?;さ目刂品椒ê妥爸?。
    背景技术
    在当前的嵌入式系统设备中,广泛的使用了嵌入式操作系统。嵌入式操作系统接管了嵌入式系统设备中的绝大部分硬件资源管理,包括通过CPU数据地址总线访问外部设备的物理地址空间,将外设的读、写、控制操作封装成几种固定的API(应用程序接口)提供给开发人员,如read(读取),wnte(写入),ioctrl(输入输出控制)等驱动接口函数。这种方式给开发人员带来了很多便利,不需要关心硬件底层的实现细节,加快了开发速度,但是也带来了一些硬件控制上的隐患,比如低效率、不安全和不灵活。下面将会逐一举例说明。
    在一些应用场景中,嵌入式系统需要对某一段地址空间内容进行写?;?,只能进行读取数据操作而不允许进行写入数据操作,如存储嵌入式系统启动程序或重要数据的FLASH(闪存),EEPROM(电可擦可编程只读存储器)等,是禁止非法写入的;某些上位机和下位机通讯过程中,下位机准备就绪之前是禁止上位机进行写入数据操作的。
    在使用了操作系统的嵌入式系统中,这种写?;ねǔJ峭ü砑词迪值?,普遍做法是使用操作系统提供的信号量或者互斥量进行?;?。如图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掉电时的数据地址总线的随机状态产生写入非法数据操作。
    此外,如果不使用操作系统提供的软件接口,这种写?;ひ部梢酝ü布词迪?,普遍做法是通过机械开关、硬件跳线或逻辑寄存器来设置写?;ぷ刺?,外带硬件写?;さ缏?,通过判断写?;ぷ刺创蚩蚬乇招幢;すδ?。用这种方式实现的数据区域写?;し椒?,存在成本高(需要额外硬件电路或逻辑资源),不灵活(需要外界设置干预)的特点。如带写?;た氐腢盘,需要增加开关和内部电路,增加了成本,并且要用户手动拨才能实现打开或禁止写入数据的效果。
    如果数据存储在某种具备写?;すδ艿拇娲⒔橹噬先鏔LASH,EEPROM等,可以使用存储介质自带的写?;すδ?,如图2所示,使用带写?;すδ艽娲⒔橹世幢;な萸虻淖爸冒ǎ和獠靠刂平涌?01;写?;た?02,用于控制写?;さ缏返墓ぷ髯刺?;写?;さ缏?03,用于根据开关状态控制写入使能信号;带写?;すδ艿拇娲⒔橹?04。
    但是如果数据位于自身不带写?;すδ艿拇娲⒔橹嗜鏢RAM(静态随机存取存储器)、SDRAM(同步动态随机存取存储器)或DPRAM(双端口随机存储器)等,或下位机如单片机、MCU(微控制器),DSP(数字信号处理器)等,就无法使用这种方式进行数据写?;?,因此,这种设计方案具有较大的局限性。
    此外,现有技术中还可以使用CPU的MMU?;な萸?,其流程图如图3所示,包括如下步骤:
    S301,将需要写?;な萸蚨ㄒ逦桓鎏厥獾腗MU(内存管理单元)内存页面;
    S302,设定要进行写?;た刂频哪诖嬉称銶MU数据存取权限为只读不可写,则写?;た刂粕?;
    S303,当有程序指令写入到设置写?;さ囊呈?,将进入MMU异常中断,产生数据存取违背权限的异常;
    S304,在异常处理程序中进行处理,按该指令正常读写内存处理,完成后退出异常处理程序,返回中断点;
    S305,设置被写?;た刂频哪诖嬉称銶MU数据存取权限为可读写,则撤销写?;た刂?。
    然而,现有技术中的嵌入式系统中写?;し椒ò踩越系?。
    发明内容
    本发明的主要目的在于提供一种嵌入式系统中写?;さ目刂品椒?,以至少解决现有技术中的嵌入式系统中写?;し椒ò踩越系偷奈侍?。
    根据本发明的一个方面,提供了一种嵌入式系统中写?;さ目刂品椒?,其包括:获取引起CPU总线异常中断的写指令所要写入的非法写入地址,其中,非法写入地址被预先设置为写?;?;将非法写入地址修改为允许写入的区域的地址;对允许写入的区域的地址执行写指令的操作。
    在获取引起CPU总线异常中断的写指令所要写入的非法写入地址之前,嵌入式系统中写?;さ目刂品椒ɑ拱ǎ杭觳獾匠鱿諧PU总线异常中断;通过内存状态寄存器中的标志位来判断引起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总线异常中断的写指令所要写入的非法写入地址之前,嵌入式系统中写?;さ目刂品椒ɑ拱ǎ杭觳獾匠鱿諧PU总线异常中断;通过内存状态寄存器中的标志位来判断引起CPU总线异常中断的写指令所要写入的写入地址是否属于被写?;さ氖萸?;若属于,则判断出引起CPU总线异常中断的写指令所要写入的写入地址为非法写入地址,并执行获取引起CPU总线异常中断的写指令所要写入的非法写入地址的步骤。在本实施例中,通过标志位的判断,能够准确快速地判断总线异常中断的原因。
    在上述检测CPU总线异常中断的过程中,设置CPU总线访问异常入口地址,接管总线异常处理中断程序,优选的,异常处理中断入口地址由CPU提供。
    将所述非法写入地址修改为允许写入的区域的地址的步骤包括:通过环形队列来存储允许写入的区域的地址,其中,每一个队列成员中记录一个允许写入的区域的地址;将所述非法写入地址修改为所述环形队列的首指针指向的队列成员中记录的地址;将所述环形队列的首指针指向所述环形队列中的下一个队列成员。通过上述环形队列的方式来存储允许写入的区域的地址,可以实现快速地合法地址替换,并节约了存储空间。
    在上述将所述非法写入地址修改为允许写入的区域的地址的过程中,异常处理程序解析机器指令中被写?;さ刂凡⑿薷钠湮尚吹刂?,这里,机器指令一般为RISC(精简指令集)格式。在嵌入式系统中使用的CPU广泛采用RISC格式??梢愿菪薷拇娣判慈氲刂返募拇嫫髦滴は壬瓒ǖ目尚慈氲刂?,并保存当前写入指令的物理地址,达到非法写入动作重新定向到合法地址和记录写入操作来源的效果。预先设定的写入地址空间由一个环形队列构成,每个队列成员均包含写入操作的指令地址,对写?;な萸虻男慈氩僮鹘ü鼺IFO(先入先出)的方式进入队列保存或者被后续写入操作覆盖;根据需要,队列成员还可以包含当前时间戳等记录,便于更好的反向追踪分析。
    在将所述非法写入地址修改为允许写入的区域的地址之后,嵌入式系统中写?;さ目刂品椒ɑ拱ǎ杭锹妓鲂粗噶畹闹噶畹刂?;根据所记录的指令地址对所述写指令所在的程序进行错误定位。在本实施例中,可以通过记录的写指令的指令地址对写?;て诩涞男慈氩僮鹘屑锹己头聪蜃纷俜治?,便于开发人员的程序错误定位和处理。优选的,还可以对环形队列进行分析,从而得出非法写入操作的来源及写入值的记录,记录最大长度为环形队列的成员个数。
    根据所记录的指令地址对所述写指令所在的程序进行错误定位的步骤包括:将所记录的指令地址发送给用户,并接收用户输入的错误定位信息,其中,所述错误定位信息根据所记录的指令地址计算得到;或者接收用户输入的读取所记录的指令地址的请求消息,响应于所述请求消息将所记录的指令地址发送给用户,并接收用户输入的错误定位信息,其中,所述错误定位信息根据所记录的指令地址计算得到。在本实施例中,通过这种主动和被动的方式来与用户交互记录的指令地址和错误定位信息,可以满足不同的场景需求,便于开发人员的程序错误定位和处理。
    通过以下步骤来设置所述允许写入的区域的地址:通过设置寄存器中的标志位来取消所述CPU外接的芯片的整个存储区域的写?;すδ?;将取消了写?;すδ艿男酒恼龃娲⑶虻牡刂飞柚梦市硇慈氲那虻牡刂?。在本实施例中,由嵌入式软件控制底层硬件来实现一段指定范围地址空间内的数据写?;すδ?,从而能够实现根据既定策略对嵌入式系统中指定数据区域打开或关闭写?;すδ?,同时读取功能不受影响。
    优选的,CPU外接的芯片的选择通过片选属性或标志位来完成,其中,CPU片选访问属性通常由CPU提供的内部寄存器来设置,片选写?;すδ苁粜杂蒀PU硬件提供:如嵌入式系统中常用的PowerPC系列处理器就提供这种功能,在ARM和MIPS系列某些处理器中也提供类似功能。
    实施例2
    以下结合附图和具体实施例对本发明进行详细描述。以网络通信设备类嵌入式系统中常用的32位RISC指令集的CPU,Freescale(飞思卡尔)公司的通信处理器MPC860系列为例。
    如图5所示,包括以下步骤:
    步骤S501、确定CPU的总线异常中断处理入口地址。通过MPC860用户手册中芯片描述可知,MPC860处理总线异常的中断向量偏移地址为0x00200(见用户手册7.1.2.2章节):机器检查中断(Machine Check Interrupt)?;骷觳橹卸嫌蒑SR[ME](MSR:机器状态寄存器的ME比特位)置位来使能,产生原因一般是访问地址不存在或发生数据错误,写入总线?;さ那蛞不岵卸?。
    步骤S502、接管CPU总线异常处理中断程序。通过将用户自定义ISR(中断服务程序)UsrMachChk注册到0x00200中断向量入口处,并置位MSR寄存器ME位,即可接管该中断,取得机器检查中断的控制权。
    步骤S503、检查触发总线异常处理中断原因?;骷觳橹卸显贛PC860中使用菊花链的处理方式级联,在机器检查中断服务程序UsrMachChk中,首先进行中断来源判断??梢酝ü卸螹STAT(内存状态寄存器,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、根据对嵌入式系统硬件具体设计的分析(电路原理图、文档等),可确定被?;さ氖萸蚴褂肕PC860的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格式??梢愿菪薷拇娣判慈氲刂返募拇嫫髦滴は壬瓒ǖ目尚慈氲刂?,并保存当前写入指令的物理地址,达到非法写入动作重新定向到合法地址和记录写入操作来源的效果。预先设定的写入地址空间由一个环形队列构成,每个队列成员均包含写入操作的指令地址,对写?;な萸虻男慈氩僮鹘ü鼺IFO(先入先出)的方式进入队列保存或者被后续写入操作覆盖;根据需要,队列成员还可以包含当前时间戳等记录,便于更好的反向追踪分析。
    根据本发明实施例的嵌入式系统中写?;さ目刂谱爸没拱ǎ捍娲⒌ピ?04,用于记录所述写指令的指令地址;定位单元805,用于根据所记录的指令地址对所述写指令所在的程序进行错误定位。在本实施例中,可以通过记录的写指令的指令地址对写?;て诩涞男慈氩僮鹘屑锹己头聪蜃纷俜治?,便于开发人员的程序错误定位和处理。优选的,还可以对环形队列进行分析,从而得出非法写入操作的来源及写入值的记录,记录最大长度为环形队列的成员个数。
    所述定位单元805包括:发送???,用于将所记录的指令地址发送给用户,或者,响应于请求消息将所记录的指令地址发送给用户,接收???,用于接收用户输入的读取所记录的指令地址的所述请求消息,并接收所述用户输入的错误定位信息,其中,所述错误定位信息根据所记录的指令地址计算得到。在本实施例中,通过这种主动和被动的方式来与用户交互记录的指令地址和错误定位信息,可以满足不同的场景需求,便于开发人员的程序错误定位和处理。
    根据本发明实施例的嵌入式系统中写?;さ目刂谱爸没拱ǎ荷柚玫ピ?06,用于通过以下步骤来设置所述允许写入的区域的地址:通过设置寄存器中的标志位来取消所述CPU外接的芯片的整个存储区域的写?;すδ?;将取消了写?;すδ艿男酒恼龃娲⑶虻牡刂飞柚梦市硇慈氲那虻牡刂?。在本实施例中,由嵌入式软件控制底层硬件来实现一段指定范围地址空间内的数据写?;すδ?,从而能够实现根据既定策略对嵌入式系统中指定数据区域打开或关闭写?;すδ?,同时读取功能不受影响。
    优选的,CPU外接的芯片的选择通过片选属性或标志位来完成,其中,CPU片选访问属性通常由CPU提供的内部寄存器来设置,片选写?;すδ苁粜杂蒀PU硬件提供:如嵌入式系统中常用的PowerPC系列处理器就提供这种功能,在ARM和MIPS系列某些处理器中也提供类似功能。
    显然,本领域的技术人员应该明白,上述的本发明的各??榛蚋鞑街杩梢杂猛ㄓ玫募扑阕爸美词迪?,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路???,或者将它们中的多个??榛虿街柚谱鞒傻ジ黾傻缏纺?槔词迪?。这样,本发明不限制于任何特定的硬件和软件结合。
    以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的?;し段е?。

    关于本文
    本文标题:嵌入式系统中写?;さ目刂品椒ê妥爸?pdf
    链接地址://www.4mum.com.cn/p-5865929.html

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 宝宝计划软件 ssc前三包胆规律 北赛车pk10直播官方下载 pk10走势图技巧 七星彩技巧和方法 快3和值死公式 七星彩历史数据 飞艇计划6码公式 玩快三稳赚技巧 时时彩官方网 黑马计划软件官方网 极速赛车稳赚玩法 七乐彩平台下载 快3和值大小技巧稳赚 亚洲杯女篮决赛录像 欧洲秒速时时