前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Drv之VxBus Driver的加载过程

Drv之VxBus Driver的加载过程

作者头像
Taishan3721
发布2021-01-22 10:58:15
7120
发布2021-01-22 10:58:15
举报
文章被收录于专栏:这里只有VxWorks

VxBus Driver的初始化一般分为三步,入口函数通常使用xxxRegister()的形式。如果VxWorks启动之后再去调用它 - 例如在usrAppInit()里,它的加载过程会比较简单。

而WindRiver默认提供的Driver,都是在OS的启动过程中加载的。通常,xxxRegister()是在sysHwInit()中注册,具体的位置由CDF文件决定。其第一步初始化(*devInstanceInit)随后被调用,例如X86的PCI Device,就是在注册PCI Host Controller的Driver时调用。所以,所有PCI Device的Driver都会在这个Controller之前被注册

这个注册过程大致是

代码语言:javascript
复制
$(BSP)/sysALib.s/sysInit() -> 
$(prj)/prjConfig.c/usrInit() -> 
$(BSP)/sysLib.c/sysHwInit() -> 
$(prj)/prjConfig.c/hardWareInterFaceInit() -> 
$(prj)/prjConfig.c/hardWareInterFaceBusInit() -> 
$(driver)/xxxRegister()

而后两步初始化操作,都是在sysHwInit2()里调用的。区别是:第二步的(*devInstanceInit2)是直接被调用;而第三步的(*devInstanceConnect)是在一个新任务中调用,这就导致它的真正执行时机很可能就是OS把所有功能都加载完成之后了

详细的调用关系如下图

这正是:

自动加载有先后,伴随系统三步走。

我是泰山 专注VX 0x10年

一起学习 共同进步

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档