CN116521419B - 一种嵌入式操作系统的控制方法 - Google Patents
一种嵌入式操作系统的控制方法 Download PDFInfo
- Publication number
- CN116521419B CN116521419B CN202310561393.2A CN202310561393A CN116521419B CN 116521419 B CN116521419 B CN 116521419B CN 202310561393 A CN202310561393 A CN 202310561393A CN 116521419 B CN116521419 B CN 116521419B
- Authority
- CN
- China
- Prior art keywords
- operating system
- embedded operating
- embedded
- error state
- state
- 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
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000002093 peripheral effect Effects 0.000 claims abstract description 34
- 238000011161 development Methods 0.000 claims abstract description 16
- 230000006870 function Effects 0.000 claims description 10
- 238000004880 explosion Methods 0.000 claims description 2
- 239000002184 metal Substances 0.000 claims description 2
- 230000000737 periodic effect Effects 0.000 claims description 2
- 230000005856 abnormality Effects 0.000 claims 1
- 230000002159 abnormal effect Effects 0.000 abstract description 12
- 230000007246 mechanism Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0715—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0736—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/442—Shutdown
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Retry When Errors Occur (AREA)
Abstract
本申请提供一种嵌入式操作系统的控制方法,用于在开发阶段控制嵌入式操作系统,包括以下步骤:启动嵌入式系统并进入主线程;在主线程中持续地调度各个程序运行,以及获取各个外设的状态信息;在嵌入式操作系统遭遇以下情况的至少一种时退出主线程并关闭嵌入式系统:硬关机或硬重启操作,运行于主线程中的程序调用关机或重启函数,嵌入式操作系统进入第一错误状态或第二错误状态;其中,第一错误状态为能够引起HardFault中断的状态,第二错误状态为Sistick刷新率异常的状态。
Description
技术领域
本申请属于计算机系统技术领域,进一步地,涉及嵌入式系统控制技术领域,具体地,提供一种嵌入式操作系统的控制方法,用于对开发阶段的嵌入式操作系统进行控制。
背景技术
在自动化控制技术领域中,嵌入式系统已经成为不可或缺的一部分,嵌入式系统是以应用为核心,整合软、硬件并对功能、可靠性、成本、体积、功耗等综合性能严格要求的专用计算机系统,被广泛应用于航空、航天、军事、通信、家电等领域。嵌入式系统一般由硬件、嵌入式操作系统以及软件运行环境等部分组成。其中,嵌入式操作系统是嵌入式系统的重要组成部分,它运行于嵌入式系统的芯片平台上,能够有效地管理复杂的系统资源,并为各个外设的驱动程序及应用程序提供运行环境,从而控制各个外设的工作。
在嵌入式系统的开发过程中,完成系统/硬件设计以及操作系统和驱动程序的移植后,工作重点将聚焦于各类外设的控制及应用程序的开发调试上,以保证其能够精确、稳定地控制各类外设完成设定的功能,在此阶段,需要不断将正处于发开调试中的程序运行于嵌入式操作系统中,以尽可能发现并排除由于各类代码bug以及软硬件不匹配等问题造成的运行错误。
然而,现有的嵌入式操作系统并未针对开发阶段运行的各种程序专门设计控制逻辑,因此,在嵌入式系统的开发阶段,嵌入式操作系统往往由于各种原因频繁出现系统崩溃、外设控制失效、长时间无响应等异常或错误,在一些离线应用场合,更是可能由此导致错误现场信息丢失以及设备长时间失联等风险。
为此,亟需提供一种专门针对开发阶段的嵌入式操作系统控制方法,针对不同的异常或错误状态,及时采用响应的处理逻辑,以实现故障现场数据的保存并使系统尽快恢复正常状态。
发明内容
为解决上述现有技术中存在的问题,本申请通过实施例提供一种嵌入式操作系统的控制方法,所述控制方法用于对开发阶段的嵌入式操作系统进行控制,包括以下步骤:
启动嵌入式操作系统并进入主线程;
在所述主线程中持续地调度各个程序运行,以及获取各个外设的状态信息;
在所述嵌入式操作系统遭遇以下情况的至少一种时,退出所述主线程并关闭所述嵌入式操作系统:
情况一,硬关机或硬重启操作,
情况二,运行于主线程中的程序调用关机或重启函数,
情况三,所述嵌入式操作系统进入第一错误状态,其中,所述第一错误状态为能够引起所述嵌入式操作系统触发HardFault中断的状态,
情况四,所示嵌入式操作系统进入第二错误状态,其中,所述第二错误状态为能够引起所述嵌入式操作系统的Sistick刷新率异常的状态。
优选地,所述嵌入式操作系统在出现以下现象的至少一种时进入所述第一错误状态:所述嵌入式操作系统的内存溢出、出现野指针、爆栈。
优选地,所述状态信息通过各个外设触发接收中断的方式获取。
优选地,所述控制方法还包括以下步骤:将获取的所述状态信息保存至所述嵌入式操作系统的内存。
进一步地,在所述嵌入式操作系统进入第一错误状态后,于所述嵌入式操作系统触发HardFault中断前执行以下步骤:
S110,中断当前正在执行的程序;
S120,执行以下循环:
S121,重置看门狗的倒计时数据,
S122,依次将至少一个外设的状态信息从所述嵌入式操作系统的内存发送至外部存储设备,
S123,判断是否已将全部外设的状态信息从所述嵌入式操作系统的内存发送至外部存储设备,如判断结果为是,则退出循环,否则返回执行步骤S121。
优选地,所述控制方法还包括以下步骤:周期或非周期地将所述状态信息从所述嵌入式操作系统的内存发送至外部存储设备。
优选地,步骤S110与步骤S120在所述嵌入式操作系统的应用层执行。
优选地,所述第二错误状态通过运行于所述嵌入式操作系统之外的硬件定时器中断确定。
进一步地,所述硬件定时器中断基于以下步骤确定所述嵌入式操作系统是否进入第二错误状态:
A100,以固定的时间间隔触发硬件定时器中断,
A200,在每次定时器中断中捕获所述嵌入式操作系统的Sistick并存储至所述嵌入式操作系统的内存;
A300,比较每次定时器中断所捕获的Sistick与前一次定时器中断所捕获的Sistick的差值;
A400,如果所述差值大于预设的阈值,则确定所述嵌入式操作系统进入第二错误状态,否则返回执行步骤A100。
进一步地,在所述嵌入式操作系统进入第二错误状态后,执行以下步骤:
S210,获取所述嵌入式操作系统的Systick数据并存储至外部存储设备;
S220,退出主线程并重启所述嵌入式操作系统。
本申请的实施例提供的一种嵌入式操作系统的控制方法,针对开发阶段嵌入式操作系统进入主线程后并调度各种程序的过程中所遭遇的各种异常或错误状况,由于各类异常或错误的成因不同,系统在异常或错误状况下表现不同,所以需要采取的不同的应对措施,以保证嵌入式操作系统能够有效地应对各类突发状况,并能够及时、完整地获取分析异常/错误成因所需的信息,以助于对正在开发中的程序的调试修改。
附图说明
图1为根据本申请实施例提供的一种嵌入式操作系统的控制方法的流程图;
图2为根据本申请实施例的嵌入式操作系统进入第一错误状态后执行步骤的流程图。
具体实施方式
以下,基于优选的实施方式并参照附图对本申请进行进一步说明。以下描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例,并且不应被理解为对本申请要求保护的技术方案的范围的限制。
此外,本说明书中所使用的术语,如“包括”、“具有”及其同源词,仅用于表示特定的特征、变量、数值、步骤、元件或上述各项的组合,不应被理解为排除至少一个其它特征、变量、数值、步骤、元件或上述各项的组合的存在的可能性;并且,本说明书中所使用的例如“第一”、“第二”等词汇,仅用于区分描述,不应被理解为指示或暗示相对重要性。
除非另有限定,否则本说明书中所使用的技术术语和科学术语的含义与本领域的技术人员通常理解的含义相同。
本申请的实施例提供一种嵌入式操作系统的控制方法,图1示出了在一些优选的实施例中,该控制方法的流程图,如图1所示,该控制方法包括以下步骤:
步骤100,启动嵌入式操作系统并进入主线程;
步骤200,在所述主线程中持续地调度各个程序运行,以及获取各个外设的状态信息;
步骤300,在所述嵌入式操作系统遭遇以下情况的至少一种时,退出所述主线程并关闭所述嵌入式操作系统:情况一,硬关机或硬重启操作,情况二,运行于主线程中的程序调用关机或重启函数,情况三,所述嵌入式操作系统进入第一错误状态,其中,所述第一错误状态为能够引起所述嵌入式操作系统触发HardFault中断的状态,情况四,所示嵌入式操作系统进入第二错误状态,其中,所述第二错误状态为能够引起所述嵌入式操作系统的Sistick刷新率异常的状态。
以上各个步骤中,步骤100及步骤200分别对应于嵌入系统启动后进入主线程的过程,以及在主线程中正常运行并调用各个程序的状态。
在一些具体的实施例中,“程序”可以包括对各个外设进行控制的控制程序,其中,控制程序可以通过各个外设触发接收中断的方式获取各个外设的状态信息。对于不同的外设,获取的状态信息可以是多样的,例如,可以是电机的实时转速、转矩数据,也可以是舵机的实时角度数据,还可以是温度传感器、姿态传感器等不同传感器获取的实时温度、姿态数据等,上述通过接收中断的方式获取外设的状态信息已为本领域技术人员所知晓。在本申请的一些实施例中,各个外设的控制程序在获取上述状态信息后,将其保存至嵌入式操作系统的内存。
在另一些具体的实施例中,“程序”也可以包括在主线程中运行的实现其他特定功能的应用程序,如状态监控程序、数据库管理程序、数据分析及处理程序等,上述应用程序可以进一步对保存至内内存的不同外设的状态信息进行统计、分析、判断等操作,以及向各个外设的控制程序输出控制指令或参数等。
在本申请的实施例中,上述程序可以运行于主线程中,也可以运行于主线程启动并调度的各个子线程中。上述嵌入式操作系统正常运行状态下的各种操作均为本领域技术人员所熟知。
在嵌入式系统的开发阶段,特别是在程序的开发调试阶段,嵌入式操作系统进入主线程后并调度各种程序的过程中,除了正常的关机/重启操作,还可能遭遇各种异常或错误状况,由于各类异常或错误的成因不同,系统在异常或错误状况下表现不同,所以需要采取的不同的应对措施,以保证嵌入式操作系统能够有效地应对各类突发状况,并能够及时、完整地获取分析异常/错误成因所需的信息,以助于对正在开发中的程序的调试修改。
为此,在步骤300中,针对嵌入式操作系统可能遭遇的需要关机或重启的不同情况,分别采取不同的应对步骤。以下结合附图及具体实施方式对步骤300进行详细说明。
(1)情况一及情况二
在本申请的实施例中,情况一对应于嵌入式系统运行过程中,用户通过开关机按钮/按键或重启动按钮/按键进行系统关机或重启操作的状况;情况二对应于嵌入式系统运行过程中,通过操作系统中运行的程序或调用的函数进行软关机或软重启的情况。
嵌入式操作系统对于正常运行状态下的硬关机/重启以及软关机/重启,均具有成熟的“数据及现场保存—>关闭程序—>退出线程—>关闭系统(以及重启系统)”的机制,在本申请的实施例中,可以通过调阅不同的嵌入式操作系统的开发手册等文档,获取其关机/重启操作机制,并进行具体实施。
(2)情况三
情况三对应于主线程中各类程序在运行时遭遇内存溢出、出现野指针、爆栈等错误,上述错误将产生严重问题,使得嵌入式操作系统触发HardFault中断,在本申请的实施例中,上述将导致系统触发HardFault中断的状态为第一错误状态。
现有的嵌入式操作系统均带有HardFault中断机制,以保证嵌入式操作系统在遭遇上述严重问题时能够重启,由于HardFault中断的高优先级,一旦进入HardFault中断,运行于应用层的各个程序将无法执行,直到看门狗引发重启操作,且随着重启操作,保存于内存的各个外设的状态信息将全部丢失,然而上述各个外设在发生严重问题时的状态信息恰恰是对故障成因进行分析判断,以排除代码中的错误或软/硬件兼容性问题的最有价值的信息。
虽然HardFault中断机制中也自带了日志通信机制,可以通过串口将部分错误日志传输至外设,然而上述日志信息只相当于故障提示,不包含任何具体外设的状态信息。
为此,在本申请的实施例中,如图2所示,嵌入式操作系统进入第一错误状态后,在触发HardFault中断前执行以下步骤:
S110,中断当前正在执行的程序;
S120,执行以下循环:
S121,重置看门狗的倒计时数据,
S122,依次将至少一个外设的状态信息从所述嵌入式操作系统的内存发送至外部存储设备,
S123,判断是否已将全部外设的状态信息从所述嵌入式操作系统的内存发送至外部存储设备,如判断结果为是,则退出循环,否则返回执行步骤S121。
上述步骤抢先于HardFault中断进行系统运行现场的保护,以避免进入系统在进入HardFault中断后,因看门狗引发的重启操作导致最新更新的运行信息丢失。在本申请的实施例中,外部存储设备为具有掉电数据保存功能的一类存储器,如带电可擦可编程只读存储器(Electrically Erasable Programmable read only memory,EEPROM)、闪存(Flashmemory)等。
在本申请的实施例中,步骤S110与步骤S120在所述嵌入式操作系统的应用层执行。例如,可以通过一个被“钩子函数”中断主线程中正在运行的程序,然后在该函数中执行步骤S120中的循环;此外,也可以通过单独的可执行程序执行上述步骤。
在应用层中执行上述步骤,可以避免在HardFault中断中实施类似的数据转存操作时,由于对内核层进行修改可能导致的各类严重问题,同时可根据具体需要灵活地选择需要保存的数据量,并在此过程中通过周期性地重置看门狗的倒计时数据避免了在HardFault中断中进行数据转存处理时无法喂狗,可能导致数据无法完整保存的问题。
(3)情况四
在一些嵌入式操作系统,RT-Thread操作系统的运行过程中,系统还可能进入一种不同于第一错误状态的状态,在本申请中,该状态为第二错误状态。
具体地,在嵌入式操作系统进入该第二错误状态时,其CPU占用率不高,也未出现各类软、硬件明显问题所导致的内存溢出、指针位置错误等问题,因此不存在触发HardFault并引发看门狗重启操作的情况,唯一可见明显现象为Systick更新频率迅速下降,并严重影响各个外设控制程序的运行频率,甚至出现各个外设长期处于无反应的不可控状态,该问题无法通过更换运行如RT-Thread操作系统的芯片解决,但可通过重启操作系统消除故障。
为此,在本申请的实施例中,在独立于操作系统之外的裸机上运行了一个仅由硬件定时器控制的低频定期运行的高优先级中断,这个中断不受操作系统的运行影响,且其每两次中断之间的间隔时间是固定的,因此,该硬件定时器中断可以基于以下步骤确定嵌入式操作系统是否进入第二错误状态:
A100,以固定的时间间隔触发硬件定时器中断,
A200,在每次定时器中断中捕获所述嵌入式操作系统的Sistick并存储至所述嵌入式操作系统的内存;
A300,比较每次定时器中断所捕获的Sistick与前一次定时器中断所捕获的Sistick的差值;
A400,如果所述差值大于预设的阈值,则确定所述嵌入式操作系统进入第二错误状态,否则返回执行步骤A100。
进一步地,在一些优选的实施例中,在嵌入式操作系统进入第二错误状态后,执行以下步骤:
S210,获取所述嵌入式操作系统的Systick数据并存储至外部存储设备;
S220,退出主线程并重启所述嵌入式操作系统。
在一些优选的实施例中,该控制方法还包括以下步骤:周期或非周期地将所述状态信息从所述嵌入式操作系统的内存发送至外部存储设备。通过定期或非定期地将各个外设的状态信息从内存转存至外部存储设备,能够有效地实现运行现场数据的及时保存。
以上对本申请的具体实施方式作了详细介绍,对于本技术领域的技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也属于本申请权利要求的保护范围。
Claims (8)
1.一种嵌入式操作系统的控制方法,其特征在于,所述控制方法用于对开发阶段的嵌入式操作系统进行控制,包括以下步骤:
启动嵌入式操作系统并进入主线程;
在所述主线程中持续地调度各个程序运行,以及获取各个外设的状态信息;
在所述嵌入式操作系统遭遇以下情况的至少一种时,退出所述主线程并关闭所述嵌入式操作系统:
情况一,硬关机或硬重启操作,
情况二,运行于所述主线程中的程序调用关机或重启函数,
情况三,所述嵌入式操作系统进入第一错误状态,其中,所述第一错误状态为能够引起所述嵌入式操作系统触发HardFault中断的状态,
情况四,所示嵌入式操作系统进入第二错误状态,其中,所述第二错误状态为能够引起所述嵌入式操作系统的Systick刷新率异常的状态,具体地,在嵌入式操作系统进第二错误状态时,其CPU占用率不高,也未出现软、硬件问题所导致的内存溢出、指针位置错误问题,唯一可见现象为Systick更新频率迅速下降,并严重影响各个外设控制程序的运行频率以及出现各个外设长期处于无反应的不可控状态;
所述第二错误状态通过运行于所述嵌入式操作系统之外的硬件定时器中断确定,具体地,所述硬件定时器中断为在独立于操作系统之外的裸机上运行的仅由硬件定时器控制的低频定期运行的高优先级中断,且其每两次中断之间的间隔时间是固定的;
所述硬件定时器中断基于以下步骤确定所述嵌入式操作系统是否进入第二错误状态:
A100,以固定的时间间隔触发硬件定时器中断,
A200,在每次定时器中断中捕获所述嵌入式操作系统的Systick并存储至所述嵌入式操作系统的内存;
A300,比较每次定时器中断所捕获的Systick与前一次定时器中断所捕获的Systick的差值;
A400,如果所述差值大于预设的阈值,则确定所述嵌入式操作系统进入第二错误状态,否则返回执行步骤A100。
2.根据权利要求1所述的嵌入式操作系统的控制方法,其特征在于,所述嵌入式操作系统在出现以下现象的至少一种时进入所述第一错误状态:
所述嵌入式操作系统的内存溢出、出现野指针、爆栈。
3.根据权利要求1所述的嵌入式操作系统的控制方法,其特征在于,
所述状态信息通过各个外设触发接收中断的方式获取。
4.根据权利要求1所述的嵌入式操作系统的控制方法,其特征在于,还包括以下步骤:
将获取的所述状态信息保存至所述嵌入式操作系统的内存。
5.根据权利要求4所述的嵌入式操作系统的控制方法,其特征在于,在所述嵌入式操作系统进入第一错误状态后,于所述嵌入式操作系统触发HardFault中断前执行以下步骤:
S110,中断当前正在执行的程序;
S120,执行以下循环:
S121,重置看门狗的倒计时数据,
S122,依次将至少一个外设的状态信息从所述嵌入式操作系统的内存发送至外部存储设备,
S123,判断是否已将全部外设的状态信息从所述嵌入式操作系统的内存发送至外部存储设备,如判断结果为是,则退出循环,否则返回执行步骤S121。
6.根据权利要求5所述的嵌入式操作系统的控制方法,其特征在于,还包括以下步骤:
周期或非周期地将所述状态信息从所述嵌入式操作系统的内存发送至外部存储设备。
7.根据权利要求5所述的嵌入式操作系统的控制方法,其特征在于:
步骤S110与步骤S120在所述嵌入式操作系统的应用层执行。
8.根据权利要求1所述的嵌入式操作系统的控制方法,其特征在于,在所述嵌入式操作系统进入第二错误状态后,执行以下步骤:
S210,获取所述嵌入式操作系统的Systick数据并存储至外部存储设备;
S220,退出主线程并重启所述嵌入式操作系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310561393.2A CN116521419B (zh) | 2023-05-16 | 2023-05-16 | 一种嵌入式操作系统的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310561393.2A CN116521419B (zh) | 2023-05-16 | 2023-05-16 | 一种嵌入式操作系统的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116521419A CN116521419A (zh) | 2023-08-01 |
CN116521419B true CN116521419B (zh) | 2024-05-28 |
Family
ID=87408170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310561393.2A Active CN116521419B (zh) | 2023-05-16 | 2023-05-16 | 一种嵌入式操作系统的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521419B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141947A (zh) * | 2011-03-30 | 2011-08-03 | 东方通信股份有限公司 | 一种对采用嵌入式操作系统的计算机应用系统中异常任务的处理方法及系统 |
CN108549591A (zh) * | 2018-03-02 | 2018-09-18 | 烽火通信科技股份有限公司 | 一种嵌入式系统的黑匣子装置及其实现方法 |
CN108664655A (zh) * | 2018-05-18 | 2018-10-16 | 上海赛治信息技术有限公司 | 嵌入式系统的日志存储方法及系统 |
KR102438148B1 (ko) * | 2022-05-20 | 2022-08-31 | (주)플루토솔루션 | 임베디드 컴퓨팅 모듈의 이상을 감지하는 이상 감지 장치, 시스템 및 방법 |
CN115454686A (zh) * | 2021-06-09 | 2022-12-09 | 中移(苏州)软件技术有限公司 | 一种信息处理方法及装置、存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115203007A (zh) * | 2021-04-09 | 2022-10-18 | 施耐德电器工业公司 | 在非实时操作系统中执行时间关键处理的方法和设备 |
-
2023
- 2023-05-16 CN CN202310561393.2A patent/CN116521419B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141947A (zh) * | 2011-03-30 | 2011-08-03 | 东方通信股份有限公司 | 一种对采用嵌入式操作系统的计算机应用系统中异常任务的处理方法及系统 |
CN108549591A (zh) * | 2018-03-02 | 2018-09-18 | 烽火通信科技股份有限公司 | 一种嵌入式系统的黑匣子装置及其实现方法 |
CN108664655A (zh) * | 2018-05-18 | 2018-10-16 | 上海赛治信息技术有限公司 | 嵌入式系统的日志存储方法及系统 |
CN115454686A (zh) * | 2021-06-09 | 2022-12-09 | 中移(苏州)软件技术有限公司 | 一种信息处理方法及装置、存储介质 |
KR102438148B1 (ko) * | 2022-05-20 | 2022-08-31 | (주)플루토솔루션 | 임베디드 컴퓨팅 모듈의 이상을 감지하는 이상 감지 장치, 시스템 및 방법 |
Non-Patent Citations (1)
Title |
---|
【STM32】HardFault问题详细分析及调试笔记;cf.y;《https://blog.csdn.net/m0_54916619/article/details/129979222》;20230405;第1-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116521419A (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7712084B2 (en) | Method for monitoring a program execution using a debug logic | |
US7395455B2 (en) | System, method and program product for recovering from a failure | |
CN102567177B (zh) | 计算机系统错误侦测系统及方法 | |
RU2520399C2 (ru) | Микрокомпьютер и способ его работы | |
CN104142726B (zh) | 芯片复位保护方法与芯片 | |
US10921871B2 (en) | BAS/HVAC control device automatic failure recovery | |
CN110865900A (zh) | 增强嵌入式系统健壮性的一种方法 | |
CN116521419B (zh) | 一种嵌入式操作系统的控制方法 | |
CN110471800B (zh) | 服务器及自动检修基板管理控制器的方法 | |
US8060778B2 (en) | Processor controller, processor control method, storage medium, and external controller | |
JP2009129463A (ja) | 車両制御装置のリアルタイムシステムにおける一時的エラーの処理方法 | |
CN100507866C (zh) | 使用服务处理器的cpu退缩系统和cpu退缩方法 | |
US5257269A (en) | Error controller for use in debugging microprocessor | |
CN117055533A (zh) | 一种车载系统故障处理方法、装置、设备及介质 | |
CN110442493A (zh) | 一种自动化服务管理系统及方法 | |
CN115904793A (zh) | 一种基于多核异构系统的内存转存方法、系统及芯片 | |
CN107273291B (zh) | 一种处理器调试方法及系统 | |
CN113127273B (zh) | 单片机检测电路及相应的检测的方法 | |
CN116521418B (zh) | 嵌入式系统运行信息的获取方法及计算机可读存储介质 | |
CN107179911A (zh) | 一种重启管理引擎的方法和设备 | |
CN114860292A (zh) | 终端设备固件升级控制方法、装置、计算机设备及介质 | |
US11467865B2 (en) | Vehicle control device | |
CN108664357B (zh) | 一种基于启动信息统计的嵌入式设备系统修复方法及系统 | |
EP3779699A1 (en) | Method for checking program execution of a microcontroller, external device, system and non-transitory computer readable medium | |
CN110764966B (zh) | 用于ecu安全监控系统工作模式的自适应方法及系统 |
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 |