嵌入式微处理器运行内存的监测方法与流程

文档序号:17989212发布日期:2019-06-22 00:38阅读:304来源:国知局

本发明涉及嵌入式微处理器软件开发技术领域,特别提供了一种嵌入式微处理器运行内存的监测方法。



背景技术:

以往的嵌入式微处理器软件开发过程中,在涉及到内存分配时,往往采用静态分配的方法,也就是在编写程序时就分配好每个变量需要使用的内存的大小,但是采用这种方法会导致内存利用率不高,空闲的变量会一直占据着内存,灵活性也不高,无法临时改变内存分配的大小。采动态分配内存的方法会提高内存使用率,增强灵活性,但是,对于多过程的程序,不但要及时释放程序,还应该随时了解当前程序已分配多少内存,否则,将给开发调试带来了极大的不便,对产品的运行稳定性也将产生威胁。

因此,针对嵌入式微处理器,开发一种运行内存的监控方法,使其能够实时监控已经分配的内存大小,成为人们亟待解决的问题。



技术实现要素:

鉴于此,本发明的目的在于提供一种嵌入式微处理器运行内存的监测方法,以至少解决现有技术中无法在程序运行时对已分配总内存大小进行监控的问题。

本发明提供的技术方案是:嵌入式微处理器运行内存的监测方法,包括如下步骤:

s1:创造一个在程序运行时不会被销毁的运行内存监控载体a,其中,所述运行内存监控载体a用于存储当前已分配总内存的大小;

s2:在每个过程入口处,创造一个用来记录该过程中内存使用量的载体b,所述载体b实时反映该过程的内存使用量,并实时对内存监控载体a内存储的当前已分配总内存的大小进行更新。

优选,载体b的初始值为0,当其所在的过程分配一段大小为m的内存时,载体b的值自加m,当其所在的过程释放一段大小为m的内存时,载体b的值自减m。

进一步优选,在不需要保留过程内分配的内存的情况下,在该过程的出口处,检测载体b的值,若b的值为0,则可以结束该过程,否则,发出提示。

本发明提供的嵌入式微处理器运行内存的监测方法,通过在每一个过程的入口处均设置一个用于记录该过程中内存使用量的载体b,并通过该载体b的值对运行内存监控载体a进行更新,可实时得到该程序的已分配总内存大小。

本发明提供的嵌入式微处理器运行内存的监测方法,弥补了以往在开发嵌入式软件程序时,不能对已分配内存大小监控的不足,并且方法灵活,适应性强,操作简单,易于实施,编写嵌入式软件代码时,在原有的程序基础上加入少量代码即可完成。

具体实施方式

下面将结合具体的实施方案对本发明进行进一步的解释,但并不局限本发明。

本发明提供了一种嵌入式微处理器运行内存的监测方法,包括如下步骤:

s1:创造一个在程序运行时不会被销毁的运行内存监控载体a,其中,所述运行内存监控载体a用于存储当前已分配总内存的大小;

s2:在每个过程入口处,创造一个用来记录该过程中内存使用量的载体b,所述载体b实时反映该过程的内存使用量,并实时对内存监控载体a内存储的当前已分配总内存的大小进行更新。

该嵌入式微处理器运行内存的监测方法,通过在每一个过程的入口处均设置一个用于记录该过程中内存使用量的载体b,并通过该载体b的值对运行内存监控载体a进行更新,可实时得到该程序的已分配总内存大小。

作为技术方案的改进,载体b的初始值为0,当其所在的过程分配一段大小为m的内存时,载体b的值自加m,当其所在的过程释放一段大小为m的内存时,载体b的值自减m。

作为技术方案的改进,在不需要保留过程内分配的内存的情况下,在该过程的出口处,检测载体b的值,若b的值为0,则可以结束该过程,否则,说明内存没有释放干净,向外界发出提示,通过在过程出口处检测该载体b的值是否为其初始值0,可以辅助判断是否已释放在该过程中分配的动态内存,能够避免内存的泄露。

本发明的具体实施方式是按照递进的方式进行撰写的,着重强调各个实施方案的不同之处,其相似部分可以相互参见。

上面对本发明的实施方式做了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。



技术特征:

技术总结
本发明公开了一种嵌入式微处理器运行内存的监测方法,包括如下步骤:S1:创造一个在程序运行时不会被销毁的运行内存监控载体A,其中,所述运行内存监控载体A用于存储当前已分配总内存的大小;S2:在每个过程入口处,创造一个用来记录该过程中内存使用量的载体B,所述载体B实时反映该过程的内存使用量,并实时对内存监控载体A内存储的当前已分配总内存的大小进行更新。该嵌入式微处理器运行内存的监测方法适应性强,操作简单,易于实施,可在程序运行时对已分配总内存大小进行实时监控。

技术研发人员:马胤刚;李昱辉;蒋辉;王喜龙;孟士超
受保护的技术使用者:沈阳天眼智云信息科技有限公司
技术研发日:2019.02.28
技术公布日:2019.06.21
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1