AUTOSAR中Hook总结

Hook是什么

在计算机编程中,Hook是一系列技术,是截获计算机软件组件之间交互或者信息交互来增强和改善系统,而这种截获行为的函数调用,就可以理解为Hook,也可以理解为我们平常听说的钩子函数。Hook的一般目的是用于调试和扩展功能,当然一些黑客也会利用这些Hook做一些不正当的事,这是另外的事了。

在OSEK OS中,PreTask和PostTask Hook在具有不受限制的访问权限的OS级别上运行,因此必须受到信任。强烈建议这些Hook函数仅在调试期间使用,而不在最终产品中使用。

当OS-Application被终止时,不调用OSApplication的Shutdown和Startup Hook。可以在重新启动任务中完成OS-Application特定数据的清理。

所有特定于应用程序的Hook函数(Startup, Shutdown and Error)必须返回(不接受阻塞或无限循环)。

接下来,看看在Configurator中,这些Hook在哪配置的。

Hook配置

在Configuration Editor窗口中可以找到一个叫“Runtime System”的菜单,里面有个子菜单叫“Runtime System General”,这个是配置RTE和OS General参数的地方。

点击进去这个菜单,可以找到个Hook Routines,里面有很多Hook选项。

 

以下,我做了个汇总表,来罗列这些Hook的作用:

Hooks

Description

Error Hook

If selected, the ErrorHook routine is called, if an API function returns with an error code unequal to E_OK. It is also called if OS internal errors are detected.

The function ErrorHook has to be provided by the application.

Panic Hook

If selected, the PanicHook routine will be called by the operating system if an inconsistent OS state is detected and regular shutdown cannot be reached.

The function Os_PanicHook has to be provided by the application.

Post Task Hook

If selected, the PostTaskHook routine will be called any time the operating system interrupts or terminates a task.

The function PostTaskHook has to be provided by the application.


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部