vxworks开发基础

自作多情 提交于 2019-12-06 12:40:44




vxworks开发基础

小狼@http://blog.csdn.net/xiaolangyangyang


        vxworks开发总体框架

一、RTP开发
        RTP应用开发入口:
        usrAppInit.c -> usrAppInit()

二、wind kernel配置/驱动开发
        wind kernel配置头文件:
        prjComps.h、configAll.h、config.h、prjParams.h
        wind kernel配置也可以在开发环境中使用可视化界面配置

        vxworks添加组件的一般步骤:
        选择适当的目录 -> 根据读取顺序为CDF文件取名 -> 组件命名 -> 描述与代码相关的内容 -> 设定组件初始化入口 -> 建立初始化顺序 -> 链接帮助文件 -> 定义依赖关系 -> 定义从属关系

三、BSP开发
        vxworks bsp移植一般步骤(参照相似BSP包修改):
        修改内存尺寸定义 -> 修改Cache驱动 -> 修改中断控制器程序 -> 修改时钟控制器程序 -> 修改串口程序 -> 添加网络设备驱动 -> 修改人机接口 -> 为其他硬件增加驱动程序

        主要在sysLib.c中需要用户实现以下系统调用:
        1. sysClkConnect()        为系统时钟中断挂接服务程序
        2. sysClkDisable()        关闭系统时钟中断
        3. sysClkEnable()        打开系统时钟中断
        4. sysClkRateGet()        获取系统时钟速率
        5. sysClkRateSet()        设置系统时钟速率
        6. sysAuxClkConnect()        为辅助时钟中断挂接服务程序
        7. sysAuxClkDisable()        关闭辅助时钟中断
        8. sysAuxClkEnable()        打开辅助时钟中断
        9. sysAuxClkRateGet()        获取辅助时钟速率
        10. sysAuxClkRateSet()        设置辅助时钟速率
        11. sysIntDisable()        禁止总线中断级别
        12. sysIntEnable()        使能总线中断级别
        13. sysBusIntAck()        相应总线中断
        14. sysBusIntGen()        产生总线中断
        15. sysMailboxConnect()        为邮箱中断挂接服务程序
        16. sysMailboxEnable()        使能邮箱中断
        17. sysNvRamGet()        获取非易失内存中的内容
        18. sysNvRamSet()        将内容写入非易失内存
        19. sysModel()        返回目标板的型号
        20. sysBspRev()        返回BSP的版本号和子版本号
        21. sysHwInit()        初始化系统硬件
        22. sysPhysMemTop()        获取内存的最大地址
        23. sysMemTop()        获取逻辑内存的最大地址
        24. sysToMonitor()        将控制权交给ROM上的程序
        25. sysProcNumGet()        获取处理器数量
        26. sysProcNumSet()        设置处理器数量
        27. sysBusTas()        测试并设置总线上的一个位置
        28. sysScsiBusReset()        在SCSI总线上发布一个RST信号(仅针对西部数据的WD33C93)
        29. sysScsiInit()        初始化一个板上SCSI端口
        30. sysScsiConfig()        系统SCSI配置
        31. sysLocalToBusAdrs()        将本地地址转换为总线地址
        32. sysBusToLocalAdrs()        将总线地址转换为本地地址
        33. sysSerialHwInit()        将一个串行设备初始化为安静状态
        34. sysSerialHwInit2()        连接处于安静状态的串行设备的中断
        35. sysSerialReset()        将所有的SIO设备复位为安静状态
        36. sysSerialChanGet()        获取SIO_CHAN设备结构
        37. sysNanoDelay()        延时指定的时间

        其他的硬件访问接口(中断控制器、时钟、硬件端口、实时时钟/GPIO、串口、网络):
        sysInByte、sysInWord、sysOutByte、sysOutWord、sysPciInByte、sysPciInWord、sysPciInLong、sysPciOutByte、sysPciOutWord、sysPciOutLong等

参考文献:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!