vxWorks中的常识!!!

转载 2012年03月21日 17:53:47

vxWorks中的常识!!!

LOCAL<=>static
STATUS<=>int
IMPORT<=>extern
FAST<=>register
这几个比较常见

 

FUNCPTR就是指向程序的指针

那句话的意思就是弄一个指针变量,值就是函数printit的地址

其实你直接

timex((FUNCPTR)printit,0,0,0,0,0,0,0,0);

也应该是对的。就是传递了下函数的地址而已

一个库:

timexLib

NAME

timexLib - execution timer facilities 执行定时器设施

ROUTINES

timexInit( ) - include the execution timerlibrary

包括执行定时器库
timexClear( ) - clear the list of functioncalls to be timed

明确要计时功能的调用列表
timexFunc( ) - specify functions to betimed

指定要计时的函数
timexHelp( ) - display synopsis ofexecution timer facilities

显示执行定时器设施的概要
timex( ) - time a single execution ofa function or functions

对一个或多个函数执行的计时
timexN( ) - time repeated executions ofa function or group of functions

重复对一个或多个函数执行的计时
timexPost( ) - specify functions to becalled after timing

特指定时间到达后,指定要调用的函数
timexPre( ) - specify functions to becalled prior to timing

特指定时间到达之前,指定要调用的函数
timexShow( ) - display the list offunction calls to be timed

显示将要计时的函数列表

taskDelay(0)的用法

taskDelay(n)使调用该函数的任务延时n个tick(内核时钟周期)。该任务在指定的时间内主动放弃CPU,任务延时也常用于等待某一外部事件,作为一种定时/延时机制,而taskDelay(0)专用于任务调度(将CPU交给同一优先级的其他任务)。但是,taskDelay(0)时,同一优先级的任务中只有当前任务唯一一个呢?会发生什么问题?此时还有上下文切换吗?自己前换到自己?

其实,当调用taskDelay(0)时,首先,它不会导致更低优先级的任务获得CPU控制权;只有具有相同优先级的就绪任务时才会发生上下文切换。taskDelay(0)本质上是将当前任务放到该优先级队列的尾部,如果该任务是本队列中的唯一任务时,则该任务将保持CPU控制权。

taskDelay(0) --> Q_REMOVE& Q_PUT --> windExit():

taskCode:

if (taskIdCurrent == (WIND_TCB*) Q_FIRST (&readyQHead)) //说明队列中只有一个任务

     if(!workQIsEmpty)
     {
          workQDoWork();
          goto taskCode;
     }    

status =_sigCtxSave(&(taskIdCurrent->regs));

所以,taskDelay(0)时,同一优先级的任务中只有当前任务唯一一个,那么该任务将保持CPU控制权,并不发生上下文切换!!!

 

FreeScale mpc8xxx + vxWorks平台下spi flash驱动开发三步走

最近在弄PowerPC平台上的spi flash的驱动程序,总体比较简单,在借鉴了U-Boot中的相关源码后,花了两周左右的时间搞定了,对于spi总线之前一直都有了解,但未能实际接触,这次在vxWor...
  • JuanA1
  • JuanA1
  • 2011年10月12日 20:23
  • 8523

VxWorks镜像简介

VxWorks镜像可分为三类:   可加载型VxWorks镜像:存储在开发机上,运行在板上RAM中   基于ROM的VxWorks镜像:存储在板上ROM,运行在板上RAM中   ROM驻留的VxWor...
  • mao0514
  • mao0514
  • 2014年03月14日 08:44
  • 1500

《管理的常识》第二章<什么是组织>读书笔记

一、组织的理解        组织的存在是为了实现目标,组织管理的存在是为了提升效率。        1、组织不是一个“家”         组织是用目标、责任、权力来联结,而不是用情感来联接。简而言...
  • charleslei
  • charleslei
  • 2015年04月04日 20:23
  • 720

在虚拟机上运行vxWorks

Vxworks是一个嵌入式系统,主要运行在arm、ppc、mips等嵌入式处理器上,它同样可以运行在X86处理器上。风河公司开发的tornado开发环境就 包括了pentium版本,并且发布了相...
  • kulala082
  • kulala082
  • 2016年12月20日 16:50
  • 936

VxWorks信号、中断处理与定时机制

为了获得尽可能的、最快的中断反应时间,VxWorks的中断处理程序(ISRs)运行在它们特定的上下文中(独立于任何任务的上下文)。 信号 支持软件信号功能。 信号可以异步改变任务控制流。获得信号的任务...
  • abcflyer
  • abcflyer
  • 2016年11月15日 10:59
  • 1246

Vxworks中不同信号量的作用

1.semCCreate创建并初始化一个计数信号量 函数原型: SEM_ID semCCreate ( int options, /* semaphore option mo...
  • a123456ajunb
  • a123456ajunb
  • 2016年11月21日 21:30
  • 430

VxWorks程序指南

******************************************* 一、任务 ******************************************* 任务状态:挂起...
  • mao0514
  • mao0514
  • 2014年03月13日 08:56
  • 2313

VxWorks 操作系统内存布局

在VxWorks操作系统过程中可能使用到的BootRom和VxWorks内核映像本身都可以存在两种方式:压缩的和非压缩的。 1.非压缩形式 如果没有进行压缩,则只有一次重定位,即从ROM到RAM只...
  • mao0514
  • mao0514
  • 2014年03月12日 09:50
  • 1926

VxWorks之认识

VxWorks之认识        Tornado是WindRiver公司开发的用于嵌入式开发的一组产品,它包括32位实时操作系统VxWorks,集成开发环境(IDE,包括编译器等)。下面是我阅读完...
  • qq_24373811
  • qq_24373811
  • 2016年12月23日 17:22
  • 696

vxWorks中对时间的精确统计2

wasuke大虾确实很严谨。争辩也没有关系呀,论坛本来就是通过讨论,达到相互学习,共同成长的目的嘛。 不过我对于你提出的一些观点有一些不解。下面做一些分析。 把tick设置成1ms再用ti...
  • bbs598598
  • bbs598598
  • 2013年03月14日 21:12
  • 4054
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vxWorks中的常识!!!
举报原因:
原因补充:

(最多只允许输入30个字)