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