Autosar模块介绍:AutosarOS(5)
创始人
2024-01-22 01:40:35

上一篇 | 返回主目录 | 下一篇

AutosarOS:错误处理、跟踪与调试(5)

  • 1 钩子例程
  • 2 错误处理(ErrorHook)
  • 3 系统启动(StartupHook)
  • 4 系统关闭(ShutdownHook)
  • 5 系统保护(ProtectionHook)
  • 6 调试

1 钩子例程

钩子例程特点
1)、由操作系统调用,在特定的上下文中取决于操作系统的实现
2)、高于所有任务
3)、不被第二类中断程序打断。
4)、操作系统的一部分
5)、由用户使用用户定义的功能实现
6)、在接口上是标准化的,但在功能上不是标准化的(钩子例程本身的环境和行为),因此钩子例程通常是不可移植的
7)、只允许使用API函数的子集

钩子例程作用
1)、系统启动:在操作系统启动之后和调度程序运行之前调用相应的钩子例程(StartupHook)
2)、系统关闭:当应用程序或操作系统在出现严重错误时请求系统关闭时调用 (ShutdownHook)
3)、跟踪或依赖于应用程序的调试目的,以及用户定义的上下文切换扩展(PreTaskHook、Post Task Hook)
4)、错误处理(ErrorHook)

#OSEK的每个实现都必须遵循钩子例程的约定:
1)、如果应用程序在钩子例程中调用了一个不允许的API服务,则行为没有定义
2)、如果引发错误,则实现应该返回特定于实现的错误代码

2 错误处理(ErrorHook)

提供错误服务来处理OSEK操作系统中临时和永久发生的错误。它的基本框架是预先定义的,由用户自行完成。这使用户可以选择有效的集中或分散的错误处理。区分了两种不同的错误:
应用程序错误:操作系统无法正确执行请求的服务,但假定其内部数据是正确的。在这种情况下,将调用集中错误处理。此外,操作系统通过状态信息返回错误码对其进行分散的错误处理。由用户根据发生的错误类型来决定处理方式。
致命错误:操作系统不能再保证其内部数据的正确性。在这种情况下,操作系统调用集中式系统关闭。

#所有这些错误服务都有一个指定错误标识符(宏编号)

OSEK操作系统提供两个级别的错误检查,标准状态和扩展状态。如果一个任务在标准状态的版本中被激活,会返回“E_OK”或“Too many task activation”。在扩展状态的版本中,可以返回额外的返回值“Task is invalid”、“Task still occupy resources”等。这些扩展的返回值在执行时不再出现在目标应用程序中,也就是说,相应的错误不会在操作系统的运行时版本中被拦截。

OSEK api服务的返回值优先于输出参数。如果一个API服务返回错误,输出参数的值是未定义的。

错误钩子例程
如果系统服务返回的StatusType值不等于E_OK,则会调用错误钩子例程(ErrorHook)。如果从ErrorHook本身调用系统服务,则钩子例程ErrorHook不会被调用(也就是说,error钩子的递归调用不会发生)。从ErrorHook调用系统服务时可能发生的任何错误都只能通过计算返回值来检测。
如果在任务激活或事件设置期间检测到错误,例如在警报过期或消息到达时,也会调用ErrorHook。

错误管理
为了在ErrorHook中实现有效的错误管理,用户可以访问其他信息(如下图:处理的逻辑结构)。
在这里插入图片描述

3 系统启动(StartupHook)

系统启动过程(单核系统,参考图1)
1)、重置后,用户可以自由地执行(不可移植的)硬件特定代码。第2类中断在第5阶段之前不允许运行。不可移植部分以检测应用模式结束。
2)、使用应用程序模式作为参数调用StartOS。
3)、操作系统执行内部启动功能
4)、调用钩子例程StartupHook,用户可以在其中放置初始化过程。在这个钩子例程中,所有用户中断都被禁用。
5)、操作系统允许用户中断并启动调度活动。
在这里插入图片描述
在这里插入图片描述

4 系统关闭(ShutdownHook)

应用程序或操作系统可以由于致命错误而请求此服务(ShutdownOS)。当调用ShutdownOS时,操作系统将调用钩子例程ShutdownHook,然后关闭(如下图: 多核系统关闭过程)。用户通常可以在ShutdownHook中自由定义任何系统行为。
在这里插入图片描述

5 系统保护(ProtectionHook)

发生严重的执行时间错误以及违背存储保护时会进入此钩子例程。

可采用的处理方式:
1)、关闭造成问题的任务/二类中断
2)、强制关闭任务/二类中断属于的应用集(或者重启(Restart))
3)、关闭系统
4)、不做处理
在这里插入图片描述

6 调试

两个钩子例程(PreTaskHook和PostTaskHook)在任务上下文切换时被调用。这两个钩子例程可用于调试或时间测量(包括上下文切换时间)。每次在任务离开RUNNING状态之前,都会直接调用PostTaskHook;PreTaskHook每次在新任务进入RUNNING状态后直接调用。
在这里插入图片描述
上一篇 | 返回主目录 | 下一篇

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
ps局部放大 放大某个部位的图... 软件类学习建议:边看边练习,可以先收藏后学习。一、使用Ctrl快捷键放大:Ctrl + +缩小:Ct...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
ps局部放大 放大某个部位的图... 软件类学习建议:边看边练习,可以先收藏后学习。一、使用Ctrl快捷键放大:Ctrl + +缩小:Ct...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...