CN103064774B - 一种应用于嵌入式系统的总线监控方法及装置 - Google Patents
一种应用于嵌入式系统的总线监控方法及装置 Download PDFInfo
- Publication number
- CN103064774B CN103064774B CN201310016113.6A CN201310016113A CN103064774B CN 103064774 B CN103064774 B CN 103064774B CN 201310016113 A CN201310016113 A CN 201310016113A CN 103064774 B CN103064774 B CN 103064774B
- Authority
- CN
- China
- Prior art keywords
- rule
- bus
- depositor
- order
- monitoring
- 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.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种应用于嵌入式系统的总线监控方法及装置,所述方法包括:在接收到硬件模块待发送至总线的传输命令时,获取预置的总线监控规则;依据所述总线监控规则判断所述硬件模块当前发送的命令是否正常。所述装置包括:获取规则模块,用于在接收到硬件模块待发送至总线的传输命令时,获取预置的总线监控规则;判断模块,用于依据所述总线监控规则判断所述硬件模块当前发送的命令是否正常。采用本发明实施例公开的方法或装置,可以解决现有技术中无法对嵌入式系统的总线命令进行监控的技术问题,进而保证嵌入式系统稳定的性能。
Description
技术领域
本发明涉及嵌入式系统领域,特别是涉及一种应用于嵌入式系统的总线监控方法及装置。
背景技术
目前,在嵌入式操作系统中,系统级芯片(SOC,System On Chip)可定义为具备完整系统构架与功能的芯片,其构架包含可执行控制/运算或信号处理功能的处理器、记忆体、周边电路及系统IP特定逻辑电路。现代嵌入式SOC系统规模日益庞大并朝着模块化的趋势发展。在嵌入式系统中,系统级芯片中还会有很多硬件加速引擎和DMA(Direct MemoryAccess,直接内存访问)模块独立运行于操作系统的CPU(Central Processing Unit,中央处理器)之外,例如视频编解码引擎。SOC系统通常会有CPU、硬件模块、总线等主要部分构成。
其中,总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。总线的类型包括AHB、AXI等,其中,AHB(Advanced High-performanceBus,演进的高性能总线)主要用于高性能模块(如CPU、DMA和DSP等)之间的连接的总线。而AXI(Advanced eXtensible Interface,演进的可扩展接口)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。在整个嵌入式系统中,越来越多的硬件模块被植入进来用以释放CPU的负载(off-loading)以应对日益复杂并对系统性能要求突飞猛进的嵌入式应用,从而软硬件的协同工作愈发密不可分。
然而,随着嵌入式系统规模的日益庞大与软硬件工作的密不可分,系统的结构也变的越来越复杂,并且硬件加速引擎或DMA等硬件模块会和CPU之间独立的并发工作,就会使硬件模块的总线行为很难被嵌入式操作系统所感知,一旦发生软件对硬件的不合理操作便会带来灾难性的后果。例如,软件错误的配置了DMA的目标地址,DMA便会对错误的目标内存地址直接操作,而当错误的目标内存地址如果存储着重要的数据时可能导致整个嵌入式系统的崩溃。
因此,如何对嵌入式系统中的总线命令进行监控就成为本领域技术人员必须解决的一个技术问题。
发明内容
本发明所要解决的技术问题是,提供一种应用于嵌入式系统的总线监控方法,以解决现有技术中无法对嵌入式系统的总线命令进行监控的技术问题,进而保证嵌入式系统稳定的性能。
本发明的另一个目的是将上述构思应用于具体的应用环境中,提供一种应用于嵌入式系统的总线监控,从而保证该方法的实现和应用。
为解决上述技术问题,本发明实施例提供了一种应用于嵌入式系统的总线监控方法,包括:
在接收到硬件模块待发送至总线的传输命令时,获取预置的总线监控规则;
依据所述总线监控规则判断所述硬件模块当前发送的命令是否正常。
优选的,所述依据所述总线监控规则判断所述硬件模块当前发送的命令是否正常,包括:
获取所述总线监控规则表示的硬件模块的正常的寻址空间;
判断所述命令涉及的操作所影响的目标硬件地址是否在所述正常的寻址空间内。
优选的,在所述命令不正常的情况下,还包括:
将所述不正常的命令进行过滤。
优选的,还包括:
将硬件模块发送的命令不正常的结果反馈给CPU。
优选的,所述总线监控规则预先保存在寄存器中;所述寄存器包括:参考地址寄存器、参考位选寄存器、监测规则寄存器和监测控制寄存器;其中,所述参考地址寄存器表示读写所约束的目标硬件地址的起始地址,参考位选寄存器表示需要监控的读写操作涉及的目标硬件地址,监测规则寄存器用于存储对总线监控的规则,监测控制寄存器表示对如何按照前述的规则对总线进行监控。优选的,所述监测规则寄存器包括:当前组规则条件操作命令寄存器、当前组规则条件取反命令寄存器、当前组规则读操作监控寄存器、当前组规则写操作监控寄存器和当前组规则使能寄存器;其中,所述当前组规则条件操作命令寄存器为0时表示操作命令条件为等于,所述当前组规则条件操作命令寄存器为1时表示操作命令条件为大于,所述当前组规则条件操作命令寄存器为2时表示操作命令条件为小于,所述当前组规则条件操作命令寄存器为3时表示操作命令条件为保留;
所述当前组规则条件取反命令寄存器为0时取反命令条件为原条件,所述当前组规则条件取反命令寄存器为1时取反命令条件为原条件取反;
所述当前组规则读操作监控寄存器为0时表示关闭读操作,所述当前组规则读操作监控寄存器为1时表示打开读操作;
所述当前组规则写操作监控寄存器为0时表示关闭写操作,所述当前组规则写操作监控寄存器为1时表示打开写操作;
所述当前组规则使能寄存器为0时表示当前组规则无效,所述当前组规则使能寄存器为1时表示当前组规则有效。
优选的,所述监测控制寄存器包括:规则逻辑组合关系寄存器、总线命令屏蔽寄存器和监控条件触发时中断使能寄存器;其中,所述规则逻辑组合关系寄存器为0时表示各组规则的逻辑组合关系为与,所述规则逻辑组合关系寄存器为1时表示各组规则的逻辑组合关系为或;
所述总线命令屏蔽寄存器为0时表示监控条件触发时原命令保留,所述总线命令屏蔽寄存器为1时表示监控条件触发时原命令被屏蔽;
所述监控条件触发时中断使能寄存器为0时表示关闭使能,所述监控条件触发时中断使能寄存器为1时表示打开使能。
优选的,在所述命令组中的命令都正常的情况下的情况下,还包括:
转发所述硬件模块当前发送的命令至总线。
本发明实施例还公开了一种应用于嵌入式系统的总线监控装置,包括:
获取规则模块,用于在接收到硬件模块待发送至总线的传输命令时,获取预置的总线监控规则;
判断模块,用于依据所述总线监控规则判断所述硬件模块当前发送的命令是否正常。
优选的,所述判断模块,包括:
获取子模块,用于获取所述总线监控规则表示的硬件模块的正常的寻址空间;
判断子模块,用于判断所述命令涉及的操作所影响的目标硬件地址是否在所述正常的寻址空间内。
优选的,还包括:
过滤模块,用于将所述不正常的命令进行过滤。
优选的,还包括:
结果反馈模块,用于将所述硬件模块发送的命令不正常结果反馈给
CPU。
优选的,还包括:
命令转发模块,用于转发所述硬件模块当前发送的命令至总线。从上述的技术方案可以看出,通过预设总线监控规则,而该总线监控规则中设置了按照何种方式来判断硬件模块发送的命令是否正常,因此,可以在硬件模块向总线发送命令的时候进行监控,这样就不会造成硬件模块的总线行为很难被嵌入式操作系统感知的结果,也不会发生软件对硬件出现不合理操作时也会执行的现象,而是如果硬件模块的命令正常则可以直接将硬件模块所有的命令发向总线完成正常传输,否则可以优选的过滤此次总线命令并按预先设定的监测反馈规则向嵌入式系统作出相应的响应,因此,通过本实施例的方式可以保证整个嵌入式系统的稳定性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方法实施例1的流程图;
图2为未进行总线监控的AHB总线基本时序图;
图3为本发明方法实施例1中步骤102的流程图;
图4为本发明方法实施例1中进行总线监控时的AHB总线基本时序图;
图5为本发明方法实施例2的流程图;
图6为本发明装置实施例1的结构示意图;
图7为本发明装置实施例应用场景的结构示意图;
图8为本发明装置实施例1中判断模块602的结构示意图;
图9为本发明装置实施例2的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,示出了本发明的一种应用于嵌入式系统的总线监控方法实施例1的流程图,可以包括以下步骤:
步骤101:在接收到硬件模块待发送至总线的传输命令时,获取预置的总线监控规则。
在本发明实施例中,总线以AHB总线为例,但是本领域技术人员也可以知道本发明实施例不仅适应于AHB总线。其中,总线监控规则是预先设置好的如何监控硬件模块发送给总线的传输命令的规则,可以通过总线监控规则对硬件模块发送给总线的传输命令的正常与否进行监控。
其中,AHB总线基本时序如图2所示(参见AMBA规范),在标准AHB协议中,“HTRANS”为最重要的传输命令信号,当“HTRANS”为“NONSEQ”时硬件模块就控制发出各条总线命令,包括:“HBURST”为传输类型,“HSIZE”为传输单位尺寸,“HWRITE”为读写指示,“HADDR”为传输地址,等等。因为AHB总线基本时序为现有技术,在此不再赘述。
其中,预置的总线监控规则可以预先保存在寄存器中,那么本步骤就需要从保存总线监控规则的寄存器中获取总线监控规则。其中,寄存器可以分为:参考地址寄存器、参考位选寄存器、监测规则寄存器和监测控制寄存器,上述所有寄存器均为软件,可以自主配置,后续进行总线监控的时候会根据相应的寄存器配置规则工作。
其中,参考地址寄存器一般表示读写所约束的目标硬件地址的起始地址,其数目可以按总线监控规则的复杂度要求而定,在本发明实施例中以4个为例,长度有32位,其实现可以参考表1所示。
表1
BIT31 BIT0 |
REFA0/REFA1/REFA2/REFA3 |
在表1中,“REFA0”即表示第一个参考地址寄存器,以此类推,“REFA3”表示第四个参考地址寄存器。
其中,参考位选寄存器一般表示需要监控的读写操作涉及的目标硬件地址,其数目也可以按总线监控规则的复杂度要求而定,在本发明实施例中以4个为例,长度有32位,其实现可以参考表2所示。
表2
BIT31 BIT0 |
MASK0/MASK1/MASK2/MASK3 |
在表2中,“MASK0”即表示第一个参考位选寄存器,以此类推,“MASK3”表示第四个参考位选寄存器。
其中,监测规则寄存器一般用于存储对总线监控的规则,其数目也可以按总线监控规则的复杂度要求而定,在本发明实施例中以4组规则为例,长度也是32位。其实现可以参考表3所示。
表3
在表3中,“OP”、“REV”、“RD”、“WR”和“EN”的定义可以参考表4所示。
表4
在表4中,所述监测规则寄存器可以包括:当前组规则条件操作命令寄存器OP、当前组规则条件取反命令寄存器REV、当前组规则读操作监控寄存器RD、当前组规则写操作监控寄存器WR和当前组规则使能寄存器EN;其中,所述当前组规则条件操作命令寄存器为0时表示操作命令条件为等于,所述当前组规则条件操作命令寄存器为1时表示操作命令条件为大于,所述当前组规则条件操作命令寄存器为2时表示操作命令条件为小于,所述当前组规则条件操作命令寄存器为3时表示操作命令条件为保留;所述当前组规则条件取反命令寄存器为0时取反命令条件为原条件,所述当前组规则条件取反命令寄存器为1时取反命令条件为原条件取反;所述当前组规则读操作监控寄存器为0时表示关闭读操作,所述当前组规则读操作监控寄存器为1时表示打开读操作;所述当前组规则写操作监控寄存器为0时表示关闭写操作,所述当前组规则写操作监控寄存器为1时表示打开写操作;所述当前组规则使能寄存器为0时表示当前组规则无效,所述当前组规则使能寄存器为1时表示当前组规则有效。
其中,监测控制寄存器一般表示对如何按照前述的规则对总线进行监控,其数目也可以按总线监控规则的复杂度要求而定,长度也是32位。其实现可以参考表5所示。
表5
BIT31:3 BIT2 | BIT1 | BIT0 |
N/C LC | SHLD | INTE |
在表4中,“LC”、“SHID”和“INTE”的定义可以参考表6所示。
表6
其中,“SHLD”为1时,监控条件触发说明原命令是非正常的,所以对原命令进行屏蔽。在表6中,所述监测控制寄存器可以包括:规则逻辑组合关系寄存器LC、总线命令屏蔽寄存器SHID和监控条件触发时中断使能寄存器INTE;其中,所述规则逻辑组合关系寄存器为0时表示各组规则的逻辑组合关系为与,所述规则逻辑组合关系寄存器为1时表示各组规则的逻辑组合关系为或;所述总线命令屏蔽寄存器为0时表示监控条件触发时原命令保留,所述总线命令屏蔽寄存器为1时表示监控条件触发时原命令被屏蔽;所述监控条件触发时中断使能寄存器为0时表示关闭使能,所述监控条件触发时中断使能寄存器为1时表示打开使能。
在介绍了本发明实施例中设置寄存器的实例之后,返回图1,进入步骤102。
步骤102:依据所述总线监控规则判断所述硬件模块当前发送的命令是否正常。
在本步骤中,即是依据前述寄存器所保存的总线监控规则来判断硬件模块当前发送的命令是否正常。其中,对于AHB总线来说,硬件模块当前发送的命令为一个命令组,步骤101中的传输命令是该命令组中的第一个命令。而对于AXI等其他总线来讲,则需要判断的当前发送的命令也可以就是步骤101中接收到的一个命令。根据总线类型的不同,本步骤中需要判断的命令的个数也可以有所区别。
具体的,参考图3所示,为步骤102的流程图,步骤102具体可以包括:
步骤301:获取所述总线监控规则表示的硬件模块的正常的寻址空间;
在本实施例中,判断硬件模块当前发送的命令是否正常的时候,需要判断该命令或者命令组中的命令所涉及的操作是否在总线监控规则所表示的硬件模块的正常的寻址空间,因此本步骤先获取到总线监控规则表示的硬件模块的正常的寻址空间。
步骤302:判断所述命令涉及的操作所影响的目标硬件地址是否在所述正常的寻址空间内。
再判断命令所涉及的操作所影响的目标硬件地址是否在步骤301获取到的正常的寻址空间内。
需要说明的是,在步骤102判断得到硬件模块当前发送的命令正常的情况下,可以直接将该硬件模块发送的命令直接转发给总线;而在判断得到硬件模块当前发送的命令不正常的情况下,可以将不正常的命令进行过滤,当然也可以对不正常的命令忽略,也将其转发给总线,该不正常的结果可以供本领域技术人员参考。
本发明在实施时,可以在总线和硬件模块之间设置执行前述总线监控方法的总线监控装置来实现,其中总线监控装置将在装置实施例中详细介绍。参考图4所示,为进行总线监控后的AHB传输时序图,在图4中,“xxx_m”代表硬件模块与总线监控装置间的接口信号,“xxx_s”代表总线监控装置与总线间的接口信号。在硬件模块发送命令的整个传输过程中所需要特别处理的只有“HREADY_m”(由总线监控装置发给硬件模块)和“HTRANS_s”(由总线监控装置发给总线),其余信号均为直接由总线监控装置向硬件模块或硬件模块向总线监控装置传递。
需要注意的是,当“HTRANS_m”为“NONOSEQ”时,考虑到延时(timing)问题总线监控装置拉低“HREADY_m”一个循环(cycle)用作对硬件模块发送的命令的检查(如图4中标号1所示)。在此检查的周期“HTRANS_s”总线监控装置不向总线发送接收到的硬件模块的各种总线传输命令,而是对硬件模块的各种总线传输命令进行检查,若检查发现硬件模块的总线传输命令正常,则可以在下一个时钟周期将硬件模块发送给总线监控装置的“HTRANS_m”的命令发送给总线,此时由于处于检查周期“HREADY_m”被拉低,所以“HTRANS_m”的命令会保持,如图中标号2所示。而若检查发现硬件模块的总线传输命令不正常,则总线监控装置会将硬件模块给其“HTRANS_m”的命令屏蔽,并设置自己向总线发送的“HTRANS_s”为“IDLE”信号(如图中标号3所示),同时接下来总线监控装置会向硬件模块返回假的总线状态,这样既能保证传输命令的完整,又屏蔽了非正常的传输命令,直到此次硬件模块的传输结束。例如图4中总线实际状态“HREADY_s”为低电平(即是信号拉低的那部分)时,而返回给硬件模块的“HREADY_m”却为高(如图中标号4所示),而实际上是第二次不正常的硬件模块的写命令并未向总线传输(图4中“HTRANS_m”每发出一次“NONSEQ”信号则是一次命令的传输),总线真正收到的命令为“HTRANS_s”,因为命令在传输过程中是完整的双向过程,所以该“HTRANS_s”命令只是帮助完成一次命令传输,对于总线来说并无实质含义,因此既能保证命令传输的完整性,又能实现对不正常命令的屏蔽,因为不正常的命令并未发生给总线,从而实现对总线的监控。
需要说明的是,在图4中,所列信号只是AHB总线的部分信号,但是本领域技术人员已经可以从图4中部分AHB总线信号了解本发明实施例的实现方式,并且也可以经过合乎逻辑的推理得到其他AHB总线信号的实现方式,因此,不再对其他AHB总线信号进行赘述。
可见在本实施例中,通过预设总线监控规则,而该总线监控规则中设置了按照何种方式来判断硬件模块发送的命令是否正常,因此,可以在硬件模块向总线发送命令的时候进行监控,这样就不会造成硬件模块的总线行为很难被嵌入式操作系统感知的结果,也不会发生软件对硬件出现不合理操作时也会执行的现象,而是如果硬件模块的命令正常则可以直接将硬件模块所有的命令发向总线完成正常传输,否则可以优选的过滤此次总线命令并按预先设定的监测反馈规则向嵌入式系统作出相应的响应,因此,通过本实施例的方式可以保证整个嵌入式系统的稳定性。
参见图5,示出了本发明的一种应用于嵌入式系统的总线监控方法实施例2的流程图,可以包括以下步骤:
步骤501:在接收到硬件模块待发送至总线的传输命令时,从寄存器中获取预置的总线监控规则。
步骤502:依据所述总线监控规则判断所述硬件模块当前发送的命令是否正常,如果是,则进入步骤503,如果否,则进入步骤504。
步骤503:转发所述硬件模块当前发送的命令至总线。
在本实施例中,如果硬件模块当前发送的命令正常,就直接转发硬件模块当前发送的命令至总线。
步骤504:将所述不正常的命令进行过滤。
而在硬件模块当前发送的命令不正常的情况下,就将不正常的命令进行过滤。
步骤505:将硬件模块发送的命令不正常的结果反馈给CPU。
进一步的,在过滤不正常的命令之后,还可以将硬件模块发送的命令不正常的结果反馈给CPU。
为了进一步说明本实施例中的总线监控的实现,下面以一个实例来详细说明结合寄存器实现的过程。假设在实际应用中,需要实现对硬件模块读操作的目标硬件地址的范围约束在0x13001000~0x13001FFF之间,而写操作的目标硬件地址的范围约束在0x13801000~0x13901000,而不在上述规定范围内的读操作或者写操作则屏蔽此次传输并发起中断,那么对各个寄存器的配置如下四个规则组所示:
规则组0:
REFA0=0x13001000
MASK0=0xFFFFF000
OP0=0
REV0=0
RD0=1
WR0=0
EN0=1
在规则组0中,“REFA0”为“0x13001000”表示对读操作的起始范围的约束为“0x13001000”,而“MASK0”为“0xFFFFF000”则表示当前只需要监控高20位即是其中的“FFFFF”所表示的地址,通过“MASK0”与“REFA0”进行逻辑“与”操作即可得到前述结果。“OP0”为0表示当前规则组在读操作所涉及的范围相等的时候执行操作,“REV0”为0表示当前规则组采用本身限定的条件进行约束而不需要取反,“RD0”为1表示读操作监控处于打开状态,当前对应的硬件地址禁止执行读操作;“WR0”为0则表示写操作监控关闭,“EN0”为1则表示当前规则组有效。
因此,可见规则组0实现了对读操作范围的约束:(HADDR&MASK0)==(REFA0&MASK0),即是判断“HADDR”和“MASK0”进行逻辑“与”的结果,与“REFA0”和“MASK0”进行逻辑“与”的结果是否相等,如果相等说明命令正常,如果不相等则说明命令不正常。
规则组1:
REFA1=0x13801000
MASK1=0Xffffffff
OP1=2
REV1=1
RD1=0
WR1=1
EN1=1
规则组2:
REFA2=0x13901000
MASK2=0xFFFFFFFF
OP2=1
REV2=1
RD2=0
WR2=1
EN2=1
同理,规则组1与规则组2相结合实现了对写操作范围的约束:~((HADDR&MASK1)<(REFA1&MASK1))&&~((HADDR&MASK2)>(REFA2&MASK2)),此时约束的硬件地址范围的起始地址为:大于或等于“REFA1”以及小于或等于“REFA2”的地址空间。
规则组3:
EN3=0
others not cared
规则组3处于关闭状态,则说明该规则组无效。
全局控制:
LC=0
SHLD=1
INTE=1
在全局控制中,“LC”为0则表示前述的四个规则组之间采用“与”的关系进行监控,而“SHLD”为1则表示监控规则条件满足的时候屏蔽命令,而“INTE”为1的时候表示监控规则满足的时候打开“EN”使能操作。
在本实施例中,通过对总线监控规则的具体设置可以实现对读操作和写操作的监控,不满足预设的约束范围的读操作和写操作都会被屏蔽,从而保证嵌入式系统的稳定性。需要说明的是,在本发明实施例中所涉及的具体例子都是为了方便本领域技术人员对本方案的理解而说明的,其中的数值并不表示对本发明实施例的限定。
通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
相应于上面的方法实施例,本发明实施例还提供一种应用于嵌入式系统的总线监控装置。参见图6,示出了一种应用于嵌入式系统的总线监控装置实施例1的结构示意图,可以包括:
获取规则模块601,用于在接收到硬件模块待发送至总线的传输命令时,获取预置的总线监控规则。
判断模块602,用于依据所述总线监控规则判断所述硬件模块当前发送的命令是否正常。
参考图7所示,为本发明实施例中的总线监控装置在应用场景的结构图。
参考图8所示,所述判断模块602,可以包括:
获取子模块801,用于获取所述总线监控规则表示的硬件模块的正常的寻址空间;
判断子模块802,用于判断所述命令涉及的操作所影响的目标硬件地址是否在所述正常的寻址空间内。
在本实施例中,通过预设总线监控规则,而该总线监控规则中设置了按照何种方式来判断硬件模块发送的命令是否正常,因此,可以在硬件模块向总线发送命令的时候进行监控,这样就不会造成硬件模块的总线行为很难被嵌入式操作系统感知的结果,也不会发生软件对硬件出现不合理操作时也会执行的现象,而是如果硬件模块的命令正常则可以直接将硬件模块所有的命令发向总线完成正常传输,否则可以优选的过滤此次总线命令并按预先设定的监测反馈规则向嵌入式系统作出相应的响应,因此,通过本实施例的方式可以保证整个嵌入式系统的稳定性。
参见图9,示出了一种应用于嵌入式系统的总线监控装置实施例2的结构示意图,可以包括:
寄存器901,用于保存所述总线监控规则。
获取规则模块601用于:从所述寄存器中获取所述总线监控规则。
判断模块602,用于依据所述总线监控规则判断所述硬件模块当前发送的命令是否正常。
命令转发模块902,用于转发所述硬件模块当前发送的命令至总线。
过滤模块903,用于将所述不正常的命令进行过滤。
结果反馈模块904,用于将所述硬件模块发送的命令不正常结果反馈给CPU。
在本实施例中,通过对总线监控规则的具体设置可以实现对读操作和写操作的监控,不满足预设的约束范围的读操作和写操作都会被屏蔽,从而保证嵌入式系统的稳定性。需要说明的是,在本发明实施例中所涉及的具体例子都是为了方便本领域技术人员对本方案的理解而说明的,其中的数值并不表示对本发明实施例的限定。
可以理解的是,本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种应用于嵌入式系统的总线监控方法,其特征在于,包括:
在接收到硬件模块待发送至总线的传输命令时,获取预置的总线监控规则;其中,所述总线监控规则是预先设置好的如何监控硬件模块发送给总线的传输命令的规则,所述总线监控规则预先保存在寄存器中,所述寄存器包括:参考地址寄存器、参考位选寄存器、监测规则寄存器和监测控制寄存器;其中,所述参考地址寄存器表示读写所约束的目标硬件地址的起始地址,所述参考位选寄存器表示需要监控的读写操作涉及的目标硬件地址,所述监测规则寄存器用于存储对总线监控的规则,所述监测控制寄存器表示对如何按照前述的规则对总线进行监控;
依据所述总线监控规则判断所述硬件模块当前发送的命令是否正常,所述依据所述总线监控规则判断所述硬件模块当前发送的命令是否正常,包括:
获取所述总线监控规则表示的所述硬件模块的正常的寻址空间;判断所述命令涉及的操作所影响的目标硬件地址是否在所述正常的寻址空间内。
2.根据权利要求1所述的方法,其特征在于,在所述命令不正常的情况下,还包括:
将所述不正常的命令进行过滤。
3.根据权利要求2所述的方法,其特征在于,还包括:
将硬件模块发送的命令不正常的结果反馈给CPU。
4.根据权利要求1所述的方法,其特征在于,所述监测规则寄存器包括:当前组规则条件操作命令寄存器、当前组规则条件取反命令寄存器、当前组规则读操作监控寄存器、当前组规则写操作监控寄存器和当前组规则使能寄存器;其中,所述当前组规则条件操作命令寄存器为0时表示操作命令条件为等于,所述当前组规则条件操作命令寄存器为1时表示操作命令条件为大于,所述当前组规则条件操作命令寄存器为2时表示操作命令条件为小于,所述当前组规则条件操作命令寄存器为3时表示操作命令条件为保留;
所述当前组规则条件取反命令寄存器为0时取反命令条件为原条件,所述当前组规则条件取反命令寄存器为1时取反命令条件为原条件取反;
所述当前组规则读操作监控寄存器为0时表示关闭读操作,所述当前组规则读操作监控寄存器为1时表示打开读操作;
所述当前组规则写操作监控寄存器为0时表示关闭写操作,所述当前组规则写操作监控寄存器为1时表示打开写操作;
所述当前组规则使能寄存器为0时表示当前组规则无效,所述当前组规则使能寄存器为1时表示当前组规则有效。
5.根据权利要求1所述的方法,其特征在于,所述监测控制寄存器包括:规则逻辑组合关系寄存器、总线命令屏蔽寄存器和监控条件触发时中断使能寄存器;其中,所述规则逻辑组合关系寄存器为0时表示各组规则的逻辑组合关系为与,所述规则逻辑组合关系寄存器为1时表示各组规则的逻辑组合关系为或;
所述总线命令屏蔽寄存器为0时表示监控条件触发时原命令保留,所述总线命令屏蔽寄存器为1时表示监控条件触发时原命令被屏蔽;
所述监控条件触发时中断使能寄存器为0时表示关闭使能,所述监控条件触发时中断使能寄存器为1时表示打开使能。
6.根据权利要求1~5任一项所述的方法,其特征在于,在命令组中的命令都正常的情况下,还包括:
转发所述硬件模块当前发送的命令至总线。
7.一种应用于嵌入式系统的总线监控装置,其特征在于,包括:
获取规则模块,用于在接收到硬件模块待发送至总线的传输命令时,获取预置的总线监控规则;其中,所述总线监控规则是预先设置好的如何监控硬件模块发送给总线的传输命令的规则,所述总线监控规则预先保存在寄存器中,所述寄存器包括:参考地址寄存器、参考位选寄存器、监测规则寄存器和监测控制寄存器;其中,所述参考地址寄存器表示读写所约束的目标硬件地址的起始地址,所述参考位选寄存器表示需要监控的读写操作涉及的目标硬件地址,所述监测规则寄存器用于存储对总线监控的规则,所述监测控制寄存器表示对如何按照前述的规则对总线进行监控;
判断模块,用于依据所述总线监控规则判断所述硬件模块当前发送的命令是否正常,所述判断模块,包括:
获取子模块,用于获取所述总线监控规则表示的硬件模块的正常的寻址空间;
判断子模块,用于判断所述命令涉及的操作所影响的目标硬件地址是否在所述正常的寻址空间内。
8.根据权利要求7所述的装置,其特征在于,还包括:
过滤模块,用于将不正常的命令进行过滤。
9.根据权利要求8所述的装置,其特征在于,还包括:
结果反馈模块,用于将所述硬件模块发送的命令不正常结果反馈给CPU。
10.根据权利要求7~9任意一项所述的装置,其特征在于,还包括:
命令转发模块,用于转发所述硬件模块当前发送的命令至总线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310016113.6A CN103064774B (zh) | 2013-01-16 | 2013-01-16 | 一种应用于嵌入式系统的总线监控方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310016113.6A CN103064774B (zh) | 2013-01-16 | 2013-01-16 | 一种应用于嵌入式系统的总线监控方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103064774A CN103064774A (zh) | 2013-04-24 |
CN103064774B true CN103064774B (zh) | 2016-08-10 |
Family
ID=48107407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310016113.6A Active CN103064774B (zh) | 2013-01-16 | 2013-01-16 | 一种应用于嵌入式系统的总线监控方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103064774B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532760B (zh) * | 2013-10-18 | 2018-11-09 | 北京奇安信科技有限公司 | 用于分析在各主机上执行的命令的分析设备、系统和方法 |
CN105528300B (zh) * | 2014-09-29 | 2019-01-08 | 炬芯(珠海)科技有限公司 | 一种ddr内存控制器及其访问监控方法 |
CN105279044B (zh) * | 2015-09-11 | 2018-11-13 | 浙江宇视科技有限公司 | 一种基于bois总线识别bios状态的方法及计算机系统 |
CN106708689B (zh) * | 2015-11-18 | 2020-05-05 | 中兴通讯股份有限公司 | 异常设备定位方法及装置 |
CN106844133A (zh) * | 2015-12-04 | 2017-06-13 | 深圳市中兴微电子技术有限公司 | 一种片上系统soc的监控方法及装置 |
CN108733529B (zh) * | 2017-04-19 | 2021-08-10 | 龙芯中科技术股份有限公司 | Axi交叉开关的间插功能的验证方法与装置 |
CN111400079B (zh) * | 2020-03-16 | 2024-03-01 | 上海金卓科技有限公司 | 一种隔离器及其适用的软件复位方法、装置和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458305A (zh) * | 2008-12-26 | 2009-06-17 | 中国航空无线电电子研究所 | 嵌入式模块测试与维护总线系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6618775B1 (en) * | 1997-08-15 | 2003-09-09 | Micron Technology, Inc. | DSP bus monitoring apparatus and method |
-
2013
- 2013-01-16 CN CN201310016113.6A patent/CN103064774B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458305A (zh) * | 2008-12-26 | 2009-06-17 | 中国航空无线电电子研究所 | 嵌入式模块测试与维护总线系统 |
Non-Patent Citations (1)
Title |
---|
基于动态ICD 1553B总线监控事后分析的研究;王小英 等;《光电技术应用》;20111031;第26卷(第5期);第13页第1节-第16页第2.3节,图1-7 * |
Also Published As
Publication number | Publication date |
---|---|
CN103064774A (zh) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103064774B (zh) | 一种应用于嵌入式系统的总线监控方法及装置 | |
DE69507636T2 (de) | Ein rechnersystem mit einer brücke zwischen bussen | |
DE102015108689B4 (de) | Sicherheitsknoten in Zwischenverbindungsdatenbussen | |
CN102567109B (zh) | 中断分配方案 | |
DE102016109363A1 (de) | Host-port für serielle periphere schnittstellen | |
EP2962207B1 (de) | Verfahren und schaltungsanordnung für kontrollierte zugriffe auf slave-einheiten in einem ein-chip-system | |
CN103218313B (zh) | 用于实现缓存描述符交互的方法和电子设备 | |
DE102018127751A1 (de) | Einheitlicher Adressraum für mehrere Verbindungen | |
KR102413593B1 (ko) | 교착상태 방지를 위한 방법들 및 회로들 | |
Markettos et al. | Interconnect for commodity FPGA clusters: Standardized or customized? | |
EP3292474B1 (en) | Interrupt controller | |
WO2016102055A2 (de) | Verfahren zum betrieb einer steuerungskomponente für ein luftfahrzeug sowie steuerungskomponente | |
DE10211054A1 (de) | USB-Hostcontroller | |
DE10239814A1 (de) | Erweiterte Testmodusunterstützung für Hostcontroller | |
CN104050133A (zh) | 一种基于fpga实现dsp与pc借助pcie总线进行通信的通信装置与通信方法 | |
CN105515673B (zh) | 一种光纤通道节点卡 | |
Ramagond et al. | A review and analysis of communication logic between PL and PS in ZYNQ AP SoC | |
CN103885421B (zh) | 一种标准总线控制器 | |
DE102021121490A1 (de) | Annähernde datenbusinversionstechnik für latenzempfindliche anwendungen | |
CN105579952B (zh) | 利用伪停顿的高速通道上的emi抑制 | |
CN105573960A (zh) | 一种低功耗高性能处理模块及其构建方法 | |
DE10224163A1 (de) | Transaktionsdauermanagement in einem USB-Hostcontroller | |
CN109032018B (zh) | 基于嵌入式gpu的无人机通用信号处理装置 | |
CN107239418A (zh) | 数据存储模块读写装置及i2c通讯方法 | |
CN104598420B (zh) | 一种1394总线SoC芯片架构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |