CN118312949B - 堆栈监测方法、装置、电子设备及可读存储介质 - Google Patents
堆栈监测方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN118312949B CN118312949B CN202410733089.6A CN202410733089A CN118312949B CN 118312949 B CN118312949 B CN 118312949B CN 202410733089 A CN202410733089 A CN 202410733089A CN 118312949 B CN118312949 B CN 118312949B
- Authority
- CN
- China
- Prior art keywords
- stack
- target
- module
- monitoring
- wrapper
- 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
- 238000012544 monitoring process Methods 0.000 title claims abstract description 99
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012806 monitoring device Methods 0.000 claims abstract description 7
- 238000004891 communication Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 239000007787 solid Substances 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 26
- 230000000694 effects Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种堆栈监测方法、装置、电子设备及可读存储介质,所述方法包括:预先在堆栈包装器模块中添加堆栈包装器应用软件组件;基于所述堆栈包装器应用软件组件对目标堆栈进行监测,其中,所述目标堆栈包括内核堆栈,任务堆栈,以及,中断服务程序堆栈。本发明实施例通过在堆栈包装器模块中添加堆栈包装器应用软件组件对目标堆栈进行监测,实现了能够自动化地对目标堆栈进行监测,进而提高了目标堆栈监测的效率,进一步地为及时避免由于堆栈溢出所造成的问题打下坚实的基础。
Description
技术领域
本发明实施例涉及汽车电子与软件技术领域,特别是涉及一种堆栈监测方法、一种堆栈监测装置、一种电子设备以及一种计算机可读存储介质。
背景技术
堆栈是一个特定的存储区或寄存器,它的一端是固定的(栈底),另一端是浮动的(栈顶),主要用于函数调用、中断切换时保存和恢复现场数据及局部变量的临时保存。
堆栈中两个最重要的是进栈和出栈,进栈操作在堆栈的顶部加入一个元素,出栈操作相反,在堆栈顶部移去一个元素,并将堆栈的大小减一。水满则溢,堆栈是有一定容量限制的,当超出了该容量限制,就会发生溢出。
然而,堆栈溢出会导致存储在堆栈中的数据丢失,带来内存异常、程序运行错误乃至操作系统崩溃等一系列问题。因此,如何高效地对堆栈进行监测显得尤为重要。
发明内容
本发明实施例是提供一种堆栈监测方法、装置、电子设备以及计算机可读存储介质,以解决堆栈监测效率低的问题。
本发明实施例公开了一种堆栈监测方法,所述方法包括:
预先在堆栈包装器模块中添加堆栈包装器应用软件组件;
基于所述堆栈包装器应用软件组件对目标堆栈进行监测,其中,所述目标堆栈包括内核堆栈,任务堆栈,以及,中断服务程序堆栈。
可选地,在所述预先在堆栈包装器模块中添加堆栈包装器应用软件组件的步骤之前,包括:
预先在AUTOSAR OS模块中对目标堆栈进行初始化配置;
在检测到所述初始化配置已完成的情况下,生成配置文件。
可选地,在所述在检测到所述初始化配置已完成的情况下,生成配置文件的步骤之后,包括:
根据所述配置文件,获取目标堆栈的初始化配置信息,其中,目标堆栈的所述初始化配置信息至少包括目标堆栈的配置值,内核列表,任务列表,以及,中断服务程序列表。
可选地,所述基于所述堆栈包装器应用软件组件对目标堆栈进行监测,包括:
根据项目需求在所述堆栈包装器应用软件组件中添加第一可运行实体,第二可运行实体,以及,第三可运行实体,其中,所述第一可运行实体用于对内核堆栈进行监测,所述第二可运行实体用于对任务堆栈进行监测,所述第三可运行实体用于对中断服务程序堆栈进行监测;
分别根据所述第一可运行实体对所述内核堆栈进行监测,根据所述第二可运行实体对所述任务堆栈进行检测,以及,根据所述第三可运行实体对所述中断服务程序堆栈进行监测。
可选地,所述堆栈包装器模块包括堆栈包装器监测输出模块,在所述基于所述堆栈包装器应用软件组件对目标堆栈进行监测的步骤之后,包括:
在检测到已对目标堆栈完成监测的情况下,通过所述堆栈包装器监测输出模块获取目标堆栈的实际值;
根据目标堆栈的所述实际值和目标堆栈的所述配置值,确定目标堆栈的使用率。
可选地,在所述根据目标堆栈的所述实际值和目标堆栈的所述配置值,确定目标堆栈的使用率的步骤之后,包括:
预先设置目标阈值;
根据所述目标阈值和目标堆栈的所述使用率,在所述AUTOSAR OS模块中对目标堆栈的所述配置值进行调整。
可选地,所述堆栈包装器模块包括堆栈包装器监测配置模块,所述方法还包括:
预先在所述堆栈包装器监测配置模块中配置监测的开关;
若所述监测的开关为开启状态,则编译器生成Debug版本;
若所述监测的开关为关闭状态,则所述编译器生成Release版本。
本发明实施例还公开了一种堆栈监测装置,所述装置包括:
创建堆栈包装器应用软件组件模块,用于预先在堆栈包装器模块中添加堆栈包装器应用软件组件;
堆栈监测模块,用于基于所述堆栈包装器应用软件组件对目标堆栈进行监测,其中,所述目标堆栈包括内核堆栈,任务堆栈,以及,中断服务程序堆栈。
可选地,所述装置还包括:
初始化配置模块,用于预先在AUTOSAR OS模块中对目标堆栈进行初始化配置;
配置文件生成模块,用于在检测到所述初始化配置已完成的情况下,生成配置文件。
可选地,所述装置还包括:
初始化配置信息获取模块,用于根据所述配置文件,获取目标堆栈的初始化配置信息,其中,目标堆栈的所述初始化配置信息至少包括目标堆栈的配置值,内核列表,任务列表,以及,中断服务程序列表。
可选地,所述堆栈监测模块,包括:
添加可运行实体子模块,用于根据项目需求在所述堆栈包装器应用软件组件中添加第一可运行实体,第二可运行实体,以及,第三可运行实体,其中,所述第一可运行实体用于对内核堆栈进行监测,所述第二可运行实体用于对任务堆栈进行监测,所述第三可运行实体用于对中断服务程序堆栈进行监测;
目标堆栈监测子模块,用于分别根据所述第一可运行实体对所述内核堆栈进行监测,根据所述第二可运行实体对所述任务堆栈进行检测,以及,根据所述第三可运行实体对所述中断服务程序堆栈进行监测。
可选地,所述装置还包括:
堆栈包装器监测输出模块,用于在检测到已对目标堆栈完成监测的情况下,通过所述堆栈包装器监测输出模块获取目标堆栈的实际值;
目标堆栈的使用率获取模块,用于根据目标堆栈的所述实际值和目标堆栈的所述配置值,确定目标堆栈的使用率。
可选地,所述装置还包括:
数据设置模块,用于预先设置目标阈值;
控制调整模块,用于根据所述目标阈值和目标堆栈的所述使用率,在所述AUTOSAROS模块中对目标堆栈的所述配置值进行调整。
可选地,所述装置还包括:
开关配置模块,用于预先在所述堆栈包装器监测配置模块中配置监测的开关;
Debug版本生成模块,用于若所述监测的开关为开启状态,则编译器生成Debug版本;
Release版本生成模块,用于若所述监测的开关为关闭状态,则所述编译器生成Release版本。
本发明实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现如本发明实施例所述的方法。
本发明实施例还公开了一种计算机程序产品,该程序产品被存储在存储介质中,该计算机程序产品被至少一个处理器执行以实现如本发明实施例所述的方法。
本发明实施例还公开了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本发明实施例所述的方法。
本发明实施例包括以下优点:
在本发明实施例中,预先在堆栈包装器模块中添加堆栈包装器应用软件组件;基于堆栈包装器应用软件组件对目标堆栈进行监测,其中,目标堆栈包括内核堆栈,任务堆栈,以及,中断服务程序堆栈。本发明实施例通过在堆栈包装器模块中添加堆栈包装器应用软件组件对目标堆栈进行监测,实现了能够自动化地对目标堆栈进行监测,进而提高了目标堆栈监测的效率,进一步地为能够及时避免由于堆栈溢出所造成的问题打下坚实的基础。
附图说明
图1是本发明实施例中提供的一种堆栈监测方法的步骤流程图之一;
图2是本发明实施例中提供的一种堆栈监测方法的步骤流程图之二;
图3是本发明实施例中提供的一种堆栈监测方法的步骤流程图之三;
图4是本发明实施例中提供的一种堆栈监测方法的步骤流程图之四;
图5是本发明实施例中提供的一种堆栈监测方法的步骤流程图之五;
图6是本发明实施例中提供的一种堆栈监测方法的步骤流程图之六;
图7是本发明实施例中提供的一种堆栈监测装置的装置框图;
图8是实现本发明各个实施例的一种电子设备的硬件结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明实施例中提供的一种堆栈监测方法的步骤流程图,具体可以包括如下步骤:
步骤101,预先在堆栈包装器模块中添加堆栈包装器应用软件组件。
需要说明的是,AUTOSAR架构主要分为3个层级:应用软件层(AppL),实时运行环境(RTE)和基础软件层(BSW)。其中,应用软件层由多个应用软件组件(SWC)组成,在此,每个应用软件组件可以理解为一个个的.c文件(和.h)。
在本发明实施例中,需要预先在堆栈包装器模块中添加堆栈包装器应用软件组件,其中,堆栈包装器模块在微控制单元上运行。
步骤102,基于堆栈包装器应用软件组件对目标堆栈进行监测,其中,目标堆栈包括内核堆栈,任务堆栈,以及,中断服务程序堆栈。
需要说明的是,在本发明实施例中,通过堆栈包装器应用软件组件对目标堆栈进行监测,其中,目标堆栈包括内核堆栈,任务堆栈,以及,中断服务程序堆栈。
本发明通过在堆栈包装器模块中添加堆栈包装器应用软件组件对目标堆栈进行监测,实现了能够自动化地对目标堆栈进行监测,进而提高了目标堆栈监测的效率,进一步地为能够及时避免由于堆栈溢出所造成的问题打下坚实的基础。
进一步地,在本发明实施例中,如图2所示,在步骤101之前还包括:
步骤201,预先在AUTOSAR OS模块中对目标堆栈进行初始化配置。
步骤202,在检测到初始化配置已完成的情况下,生成配置文件。
在本发明实施例中,通过在AUTOSAR OS模块中对目标堆栈进行初始化配置,具体地,初始化配置内核堆栈的空间,初始化配置任务堆栈的空间,以及,初始化配置中断服务程序堆栈的空间。当完成初始化配置后,可以根据对目标堆栈进行的初始化配置生成配置文件。其中,AUTOSAR OS模块位于AUTOSAR架构中。需要说明的是,本申请对生成的配置文件个数不做具体限定。
本申请通过在AUTOSAR OS模块中对目标堆栈进行配置,并生成配置文件,进而能够达到直接通过AUTOSAR OS模块即可获取到目标堆栈的初始化配置空间的技术效果。
进一步地,在本发明实施例中,在步骤202之后还包括:根据配置文件,获取目标堆栈的初始化配置信息,其中,目标堆栈的初始化配置信息至少包括目标堆栈的配置值,内核列表,任务列表,以及,中断服务程序列表。
需要说明的是,在本发明实施例中,在完成对目标堆栈的初始化配置,并生成配置文件之后,进一步地,能够通过AUTOSAR OS模块生成的配置文件获取目标堆栈的配置值,内核列表,任务列表,以及,中断服务程序列表。其中,内核列表中包括内核的数量和内核的ID,内核数量与硬件平台相关,硬件平台不同,内核的数量也不相同;任务列表中包括任务的数量和任务的ID,其中,每个内核中能够运行很多个任务,而任务的数量设置则是根据项目需求设置的;中断服务程序列表中包括中断服务程序的数量和中断服务程序的ID,其中,中断服务程序的数量是根据硬件平台设置的,相对来说较为固定。
本申请通过AUTOSAR OS模块生成的配置文件获取目标堆栈的配置值、内核列表、任务列表、以及中断服务程序列表,以便将目标堆栈的配置功能分离出来,进而达到了修改目标堆栈的配置值和重新提取目标堆栈的初始化配置信息只需通过AUTOSAR OS模块即可实现的技术效果。
进一步地,在本发明实施例中,如图3所示,步骤102具体可以包括以下步骤:
步骤301,根据项目需求在堆栈包装器应用软件组件中添加第一可运行实体,第二可运行实体,以及,第三可运行实体,其中,第一可运行实体用于对内核堆栈进行监测,第二可运行实体用于对任务堆栈进行监测,第三可运行实体用于对中断服务程序堆栈进行监测。
需要说明的是,在AUTOSAR 架构当中,运行实体(Runnable)是应用软件组件的组成部分,运行在实时运行环境里面,由实时运行环境周期事件触发或者其他事件触发时调用。运行实体包含着实际运行的函数。
在本发明实施例中,根据项目需求为了能够对内核堆栈进行监测,需要通过堆栈包装器模块在堆栈包装器应用软件组件中添加用于对内核堆栈进行监测的第一可运行实体;为了能够对任务堆栈进行监测,需要在堆栈包装器应用软件组件中添加用于对任务堆栈进行监测的第二可运行实体;为了能够对中断服务程序堆栈进行监测,需要在堆栈包装器应用软件组件中添加用于对中断服务程序堆栈进行监测的第三可运行实体。
步骤302,分别根据第一可运行实体对内核堆栈进行监测,根据第二可运行实体对任务堆栈进行检测,以及,根据第三可运行实体对中断服务程序堆栈进行监测。
需要说明的是,在本发明实施例中,在完成添加第一可运行实体,第二可运行实体和第三可运行实体之后,进一步地,能够通过第一可运行实体对内核堆栈进行监测,通过第二可运行实体对任务堆栈进行检测和通过第三可运行实体对中断服务程序堆栈进行监测。
本发明通过在堆栈包装器应用软件组件中添加可运行实体,进而通过可运行实体对目标堆栈进行监测,实现了将目标堆栈的监测功能分离出来,由于目标堆栈的配置功能在AUTOSAR OS模块中实现,目标堆栈的监测功能在堆栈包装器模块中实现,进一步地,达到了将目标堆栈的配置功能和目标堆栈的监测功能进行解耦的技术目的。
进一步地,在本发明实施例中,如图4所示,在步骤102之后还包括:
步骤401,在检测到已对目标堆栈完成监测的情况下,通过堆栈包装器监测输出模块获取目标堆栈的实际值。
步骤402,根据目标堆栈的实际值和目标堆栈的配置值,确定目标堆栈的使用率。
需要说明的是,堆栈包装器模块包括堆栈包装器监测输出模块,堆栈包装器监测输出模块能够直接输出目标堆栈的实际值,其中,目标堆栈的实际值为目标堆栈实际使用的空间。
在本发明实施例中,当完成对目标堆栈的监测之后,可以直接通过堆栈包装器监测输出模块获取目标堆栈的实际值,进一步地,根据获取到的目标堆栈的实际值和目标堆栈的配置值,即可确定目标堆栈的使用率。其中,目标堆栈的使用率=目标堆栈的实际值÷目标堆栈的配置值。
本发明通过堆栈包装器监测输出模块去获取目标堆栈的实际值和目标堆栈的使用率,实现了对目标堆栈进行监测,进而通过目标堆栈的使用率能够提前发现堆栈溢出的问题,为进一步避免堆栈溢出所产生的问题打下基础。
进一步地,在本发明实施例中,如图5所示,在步骤402之后还包括:
步骤501,预先设置目标阈值。
步骤502,根据目标阈值和目标堆栈的使用率,在AUTOSAR OS模块中对目标堆栈的配置值进行调整。
需要说明的是,预先设置目标阈值,该目标阈值是根据项目需求所设置的一个堆栈使用率的目标阈值。
在本发明实施例中,根据预先设置的目标阈值和获取到的目标堆栈的使用率,在AUTOSAR OS模块中对目标堆栈的配置值进行调整。例如:目标阈值为50%,目标堆栈的实际值为1500K,目标堆栈的配置值为2000K,根据目标堆栈的使用率=目标堆栈的实际值÷目标堆栈的配置值可知,目标堆栈的使用率为75%,为了使目标堆栈的使用率能够达到预先设置的目标阈值50%,此时应该将目标堆栈的配置值由2000K调整为3000K。
本发明通过根据目标阈值和目标堆栈的使用率对目标堆栈的配置值进行调整,进而能够避免堆栈溢出情况的发生,进一步地,也就及时避免了堆栈溢出所产生的问题,达到了保证软件程序能够正常运行的技术效果。
进一步地,在本发明实施例中,如图6所示,该方法还包括:
步骤601,预先在堆栈包装器监测配置模块中配置监测的开关。
步骤602,若监测的开关为开启状态,则编译器生成Debug版本。
步骤603,若监测的开关为关闭状态,则编译器生成Release版本。
需要说明的是,Debug 是调试的意思,Debug 版本就是为调试而生的,编译器在生成 Debug 版本的程序时会加入调试辅助信息,并且很少会进行优化,程序还是原汁原味的。Release 是发行的意思,Release 版本就是最终交给用户的程序,编译器会使尽浑身解数对它进行优化,编译器还会尽量降低 Release 版本的体积,把没用的数据一律剔除,包括调试信息,以提高执行效率。
在本发明实施例中,堆栈包装器模块包括堆栈包装器监测配置模块。预先在堆栈包装器监测配置模块中配置监测的开关,若为了方便程序员开发和调试,则设置监测的开关为打开,此时编译器将生成Debug版本;若为了将程序最终交给用户,则设置监测的开关为关闭,此时编译器将生成Release 版本。
本发明通过设置监测的开关,能够实现自由的对程序输出版本进行控制。通过将监测的开关设置为打开,进而能够达到方便程序员开发和调试的技术效果;通过将监测的开关设置为关闭,进而能够降低程序运行的额外负担,进一步地,达到提高程序运行效率的技术效果。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图7,示出了本发明实施例中提供的一种堆栈监测装置的装置框图,具体可以包括如下模块:
创建堆栈包装器应用软件组件模块701,用于预先在堆栈包装器模块中添加堆栈包装器应用软件组件;
堆栈监测模块702,用于基于堆栈包装器应用软件组件对目标堆栈进行监测,其中,目标堆栈包括内核堆栈,任务堆栈,以及,中断服务程序堆栈。
在一示例性实施例中,该装置还包括:
初始化配置模块,用于预先在AUTOSAR OS模块中对目标堆栈进行初始化配置;
配置文件生成模块,用于在检测到初始化配置已完成的情况下,生成配置文件。
在一示例性实施例中,该装置还包括:
初始化配置信息获取模块,用于根据配置文件,获取目标堆栈的初始化配置信息,其中,目标堆栈的初始化配置信息至少包括目标堆栈的配置值,内核列表,任务列表,以及,中断服务程序列表。
在一示例性实施例中,堆栈监测模块,包括:
添加可运行实体子模块,用于根据项目需求在堆栈包装器应用软件组件中添加第一可运行实体,第二可运行实体,以及,第三可运行实体,其中,第一可运行实体用于对内核堆栈进行监测,第二可运行实体用于对任务堆栈进行监测,第三可运行实体用于对中断服务程序堆栈进行监测;
目标堆栈监测子模块,用于分别根据第一可运行实体对内核堆栈进行监测,根据第二可运行实体对任务堆栈进行检测,以及,根据第三可运行实体对中断服务程序堆栈进行监测。
在一示例性实施例中,该装置还包括:
堆栈包装器监测输出模块,用于在检测到已对目标堆栈完成监测的情况下,通过堆栈包装器监测输出模块获取目标堆栈的实际值;
目标堆栈的使用率获取模块,用于根据目标堆栈的实际值和目标堆栈的配置值,确定目标堆栈的使用率。
在一示例性实施例中,该装置还包括:
数据设置模块,用于预先设置目标阈值;
控制调整模块,用于根据目标阈值和目标堆栈的使用率,在AUTOSAR OS模块中对目标堆栈的配置值进行调整。
在一示例性实施例中,该装置还包括:
开关配置模块,用于预先在堆栈包装器监测配置模块中配置监测的开关;
Debug版本生成模块,用于若监测的开关为打开,则编译器生成Debug版本;
Release版本生成模块,用于若监测的开关为关闭,则编译器生成Release版本。
本发明实施例通过在堆栈包装器模块中添加堆栈包装器应用软件组件对目标堆栈进行监测,实现了能够自动化地对目标堆栈进行监测,进而提高了目标堆栈监测的效率,进一步地为及时避免由于堆栈溢出所造成的问题打下坚实的基础;本申请通过在AUTOSAROS模块中对目标堆栈进行配置,并生成配置文件,进而能够达到直接通过AUTOSAR OS模块即可获取到目标堆栈的初始化配置空间的技术效果;本申请通过AUTOSAR OS模块生成的配置文件获取目标堆栈的配置值、内核列表、任务列表、以及中断服务程序列表,以便将目标堆栈的配置功能分离出来,进而达到了修改目标堆栈的配置值和重新提取目标堆栈的初始化配置信息只需通过AUTOSAR OS模块即可实现的技术效果;本发明通过在堆栈包装器应用软件组件中添加可运行实体,进而通过可运行实体对目标堆栈进行监测,实现了将目标堆栈的监测功能分离出来,由于目标堆栈的配置功能在AUTOSAR OS模块中实现,目标堆栈的监测功能在堆栈包装器模块中实现,进一步地,达到了将目标堆栈的配置功能和目标堆栈的监测功能进行解耦的技术目的;本发明通过堆栈包装器监测输出模块去获取目标堆栈的实际值和目标堆栈的使用率,实现了对目标堆栈进行监测,进而通过目标堆栈的使用率能够提前发现堆栈溢出的问题;本发明通过根据目标阈值和目标堆栈的使用率对目标堆栈的配置值进行调整,进而能够避免堆栈溢出情况的发生,进一步地,也就及时避免了堆栈溢出所产生的问题,达到了保证软件程序能够正常运行的技术效果;本发明通过设置监测的开关,能够实现自由的对程序输出版本进行控制。通过将监测的开关设置为打开,进而能够达到方便程序员开发和调试的技术效果;通过将监测的开关设置为关闭,进而能够降低程序运行的额外负担,进一步地,达到提高程序运行效率的技术效果。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
另外,本发明实施例还提供了一种电子设备,包括:处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述堆栈监测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述堆栈监测实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本发明实施例还提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述堆栈监测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
图8为实现本发明各个实施例的一种电子设备的硬件结构示意图。
该电子设备800包括但不限于:射频单元801、网络模块802、音频输出单元803、输入单元804、传感器805、显示单元806、用户输入单元807、接口单元808、存储器809、处理器810、以及电源811等部件。本领域技术人员可以理解,图8中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
应理解的是,本发明实施例中,射频单元801可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器810处理;另外,将上行的数据发送给基站。通常,射频单元801包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元801还可以通过无线通信系统与网络和其他设备通信。
电子设备通过网络模块802为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元803可以将射频单元801或网络模块802接收的或者在存储器809中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元803还可以提供与电子设备800执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元803包括扬声器、蜂鸣器以及受话器等。
输入单元804用于接收音频或视频信号。输入单元804可以包括图形处理器(Graphics Processing Unit,GPU)8041和麦克风8042,图形处理器8041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元806上。经图形处理器8041处理后的图像帧可以存储在存储器809(或其它存储介质)中或者经由射频单元801或网络模块802进行发送。麦克风8042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元801发送到移动通信基站的格式输出。
电子设备800还包括至少一种传感器805,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板8061的亮度,接近传感器可在电子设备800移动到耳边时,关闭显示面板8061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器805还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元806用于显示由用户输入的信息或提供给用户的信息。显示单元806可包括显示面板8061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode, OLED)等形式来配置显示面板8061。
用户输入单元807可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元807包括触控面板8071以及其他输入设备8072。触控面板8071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板8071上或在触控面板8071附近的操作)。触控面板8071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器810,接收处理器810发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板8071。除了触控面板8071,用户输入单元807还可以包括其他输入设备8072。具体地,其他输入设备8072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板8071可覆盖在显示面板8061上,当触控面板8071检测到在其上或附近的触摸操作后,传送给处理器810以确定触摸事件的类型,随后处理器810根据触摸事件的类型在显示面板8061上提供相应的视觉输出。虽然在图8中,触控面板8071与显示面板8061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板8071与显示面板8061集成而实现电子设备的输入和输出功能,具体此处不做限定。
接口单元808为外部装置与电子设备800连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元808可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备800内的一个或多个元件或者可以用于在电子设备800和外部装置之间传输数据。
存储器809可用于存储软件程序以及各种数据。存储器809可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器809可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器810是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器809内的软件程序和/或模块,以及调用存储在存储器809内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器810可包括一个或多个处理单元;优选的,处理器810可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器810中。
电子设备800还可以包括给各个部件供电的电源811(比如电池),优选的,电源811可以通过电源管理系统与处理器810逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,电子设备800包括一些未示出的功能模块,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种堆栈监测方法,其特征在于,所述方法包括:
预先在AUTOSAR OS模块中对目标堆栈进行初始化配置;
在检测到所述初始化配置已完成的情况下,生成配置文件;
根据所述配置文件,获取目标堆栈的初始化配置信息,其中,目标堆栈的所述初始化配置信息至少包括目标堆栈的配置值,内核列表,任务列表,以及,中断服务程序列表,所述内核列表包括内核数量和内核ID,所述任务列表包括任务数量和任务ID,所述中断服务程序列表包括中断服务程序数量和中断服务程序ID,所述内核数量是基于硬件平台确定的,每个内核运行多个任务,所述任务数量基于项目需求设置,所述中断服务程序数量是基于所述硬件平台预先设置的;
所述AUTOSAR OS模块用于对所述配置文件进行修改,并基于修改后的所述配置文件重新提取所述目标堆栈的初始化配置信息;
预先在堆栈包装器模块中添加堆栈包装器应用软件组件,所述堆栈包装器模块在微控制单元上运行;
基于所述堆栈包装器应用软件组件对目标堆栈进行监测,其中,所述目标堆栈包括内核堆栈,任务堆栈,以及,中断服务程序堆栈。
2.根据权利要求1所述的方法,其特征在于,所述基于所述堆栈包装器应用软件组件对目标堆栈进行监测,包括:
根据项目需求在所述堆栈包装器应用软件组件中添加第一可运行实体,第二可运行实体,以及,第三可运行实体,其中,所述第一可运行实体用于对内核堆栈进行监测,所述第二可运行实体用于对任务堆栈进行监测,所述第三可运行实体用于对中断服务程序堆栈进行监测;
分别根据所述第一可运行实体对所述内核堆栈进行监测,根据所述第二可运行实体对所述任务堆栈进行检测,以及,根据所述第三可运行实体对所述中断服务程序堆栈进行监测。
3.根据权利要求1所述的方法,其特征在于,所述堆栈包装器模块包括堆栈包装器监测输出模块,在所述基于所述堆栈包装器应用软件组件对目标堆栈进行监测的步骤之后,包括:
在检测到已对目标堆栈完成监测的情况下,通过所述堆栈包装器监测输出模块获取目标堆栈的实际值;
根据目标堆栈的所述实际值和目标堆栈的配置值,确定目标堆栈的使用率。
4.根据权利要求3所述的方法,其特征在于,在所述根据目标堆栈的所述实际值和目标堆栈的所述配置值,确定目标堆栈的使用率的步骤之后,包括:
预先设置目标阈值;
根据所述目标阈值和目标堆栈的所述使用率,在AUTOSAR OS模块中对目标堆栈的所述配置值进行调整。
5.根据权利要求1所述的方法,其特征在于,所述堆栈包装器模块包括堆栈包装器监测配置模块,所述方法还包括:
预先在所述堆栈包装器监测配置模块中配置监测的开关;
若所述监测的开关为开启状态,则编译器生成Debug版本;
若所述监测的开关为关闭状态,则所述编译器生成Release版本。
6.一种堆栈监测装置,其特征在于,所述装置包括:
初始化配置模块,用于预先在AUTOSAR OS模块中对目标堆栈进行初始化配置;
配置文件生成模块,用于在检测到所述初始化配置已完成的情况下,生成配置文件;
初始化配置信息获取模块,用于根据所述配置文件,获取目标堆栈的初始化配置信息,其中,目标堆栈的所述初始化配置信息至少包括目标堆栈的配置值,内核列表,任务列表,以及,中断服务程序列表,所述内核列表包括内核数量和内核ID,所述任务列表包括任务数量和任务ID,所述中断服务程序列表包括中断服务程序数量和中断服务程序ID,所述内核数量是基于硬件平台确定的,每个内核运行多个任务,所述任务数量基于项目需求设置,所述中断服务程序数量是基于所述硬件平台预先设置的;所述AUTOSAR OS模块用于对所述配置文件进行修改;
创建堆栈包装器应用软件组件模块,用于预先在堆栈包装器模块中添加堆栈包装器应用软件组件,所述堆栈包装器模块在微控制单元上运行;
堆栈监测模块,用于基于所述堆栈包装器应用软件组件对目标堆栈进行监测,其中,所述目标堆栈包括内核堆栈,任务堆栈,以及,中断服务程序堆栈。
7.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现如权利要求1-5任一项所述的方法。
8.一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410733089.6A CN118312949B (zh) | 2024-06-07 | 2024-06-07 | 堆栈监测方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410733089.6A CN118312949B (zh) | 2024-06-07 | 2024-06-07 | 堆栈监测方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118312949A CN118312949A (zh) | 2024-07-09 |
CN118312949B true CN118312949B (zh) | 2024-08-30 |
Family
ID=91722561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410733089.6A Active CN118312949B (zh) | 2024-06-07 | 2024-06-07 | 堆栈监测方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118312949B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506472A (zh) * | 2020-04-03 | 2020-08-07 | 华夏龙晖(北京)汽车电子科技股份有限公司 | 堆栈监测方法、装置、电子设备及存储介质 |
CN117251343A (zh) * | 2023-11-20 | 2023-12-19 | 苏州萨沙迈半导体有限公司 | 堆栈检测方法、装置、多核处理器及计算设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9286108B2 (en) * | 2008-10-30 | 2016-03-15 | Oracle America, Inc. | Method to track application context and application identification |
US10769281B2 (en) * | 2017-12-07 | 2020-09-08 | International Business Machines Corporation | Compliant software component infrastructure deployment |
US11275617B2 (en) * | 2018-06-27 | 2022-03-15 | Accenture Global Solutions Limited | Self-managed intelligent elastic cloud stack |
WO2022260661A1 (en) * | 2021-06-08 | 2022-12-15 | Zeku, Inc. | Stack pointer monitor circuit for triggering an interrupt service at a register file |
CN117149494A (zh) * | 2023-09-05 | 2023-12-01 | 昆腾微电子股份有限公司 | 关中断超时的处理方法及装置、电子设备、存储介质 |
-
2024
- 2024-06-07 CN CN202410733089.6A patent/CN118312949B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506472A (zh) * | 2020-04-03 | 2020-08-07 | 华夏龙晖(北京)汽车电子科技股份有限公司 | 堆栈监测方法、装置、电子设备及存储介质 |
CN117251343A (zh) * | 2023-11-20 | 2023-12-19 | 苏州萨沙迈半导体有限公司 | 堆栈检测方法、装置、多核处理器及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN118312949A (zh) | 2024-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109343759B (zh) | 一种息屏显示的控制方法及终端 | |
CN109560591B (zh) | 充电方法、装置和终端 | |
CN108494030B (zh) | 一种无线充电方法、终端及发射端设备 | |
CN110058836B (zh) | 一种音频信号的输出方法及终端设备 | |
CN109885323B (zh) | 一种应用程序升级方法、移动终端和可读存储介质 | |
CN109828705B (zh) | 一种显示图标的方法及终端设备 | |
CN107967153B (zh) | 一种应用程序的管理方法及移动终端 | |
CN110780940A (zh) | 应用程序加载方法、电子设备和存储介质 | |
CN109976611B (zh) | 终端设备的控制方法及终端设备 | |
CN109639887B (zh) | 一种控制方法及终端设备 | |
CN110730017A (zh) | 一种射频装置及其控制方法、终端设备 | |
CN111240451B (zh) | 散热方法、电子设备及计算机可读存储介质 | |
CN111522575B (zh) | 一种应用程序升级方法及电子设备 | |
CN109992941B (zh) | 一种权限管理方法及终端设备 | |
CN108089935B (zh) | 一种应用程序的管理方法及移动终端 | |
CN111381753B (zh) | 多媒体文件播放方法及电子设备 | |
CN115905160B (zh) | 数据存储的校验方法、装置、电子设备及存储介质 | |
CN108491225B (zh) | 一种更新包生成方法及移动终端 | |
CN110032422B (zh) | 一种应用管理方法、终端设备及计算机可读存储介质 | |
CN109451154B (zh) | 一种设置多媒体文件的方法及终端设备 | |
CN111309133A (zh) | 省电控制方法及电子设备 | |
CN118312949B (zh) | 堆栈监测方法、装置、电子设备及可读存储介质 | |
CN111459323B (zh) | 操控方法、电子设备及介质 | |
CN115348256A (zh) | 入账数据下传方法、装置、存储介质及电子设备 | |
CN110825682B (zh) | 一种usb控制方法和电子设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |