关闭

vxworks入门

标签: vxworks嵌入式
1097人阅读 评论(0) 收藏 举报
分类:

书籍

我的嵌入式知识也不是很精通,中文版只看了三本:
1.Tonardo/VxWorks入门与提高,现在早就不出版了,我看的也是影印版的。书里的内容比较基础,也基本覆盖了各个知识点,作为一本入门的书籍已经是很好的了。介绍的是5.5的开发和它的集成开发环境Tornado2.2。

2.VxWorks下设备驱动程序及BSP开发指南,我看的时候基本是扫着过的,感觉内容也比较一般。

3.VxWorks设备驱动开发详解,前几章简单讲了VxWorks的操作系统,如果以前对操作系统有深入的了解,看起来一定会事半功倍,不了解的话也还好,它讲的并不是很深,并且由于vxWorks不是开源的,很多地方也都是点到为止。后面主要讲解设备驱动,即使不做驱动的话也很有必要把中间两篇的驱动基础知识掌握好一点,最后的设备驱动主要给开发人员的参考吧,我也主要是做应用,所以了解并不是很多。

做嵌入式软件时间并不长,对很多东西了解不多,VxWorks方面主要看过这三本,mark一下,方便自己,也希望能帮助他人。

实时操作系统:保证在一定时间限制下完成特定功能,对外部的异步事件作出响应

微内核:提供最基本的服务,如进程调度、进程间通信、存储管理、I/O,其他服务如文件管理、网络支持等通过接口连接到微内核

任务

任务状态

  • 状态转移
    任务状态转移图

  • 任务调度
    优先级抢占
    时间片轮转
    任务调度的时机:从内核态退出(系统调用,中断)

  • 任务操作
    创建:spawn, 相当于linux中fork+exec;任务栈的大小初始固定
    共享内存空间,相当于linux线程,调度的基本单元,共享内存空间
    根进程为usrRoor,不存在僵死进程
    可分为用户态,内核态,但没有内核栈的概念

调试

  1. 经常在开发过程中遇到硬件系统比较稀缺的情况,这时如果程序不涉及驱动程序,可以通过仿真主机vxSim作为目标进行调试,也可以尝试在安装虚拟机,然后把程序下到虚拟机中运行。对于一般纯软件的问题,基本都和在实际系统运行效果一致。
  2. 说说vxWorks的交叉编译环境,因为风河提供了windows下的集成开发环境,所以大多数人都是直接应用Tornado或Workbench,它们对应的vxWorks版本不一致。工具提供了两种编译工具链,diab和gnu。因为gnu是免费的,所以我开发时也是应用的这个,gnu包括gcc,gdb等。关于它们的用法可以查看相关资料。
    3.一般新建工程的时候可以选择带有操作系统的程序和不带操作系统的两种,也对应两种调试方式。一种就是不带操作系统,首先将纯净版的系统下载到目标板运行,然后再单独编译应用程序进行下载,但要注意涉及到重启之类的调试需慎重。另一种就是带有操作系统的程序,由于目标程序比较大,所以下载时间也比较长。
    4.对于单任务程序,或者完全可控的多任务程序或者带有中断的程序,都可以通过单步调试的方法进行调试,此时需要使target server运行于目标板,并通过BACK END方式保持server和agent之间的通信。但是对于调试实时性的多任务程序,一般不建议进行单步调试,因为此时可能会丢失很多有用信息。

to be continued

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10654次
    • 积分:360
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:3篇
    • 译文:0篇
    • 评论:1条
    最新评论