本文主要是介绍vxWorks中的logMsg机制的实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
vxWorks中打印时可以使用log_msg来进行打印,当然了这是系统启动后才可以使用的。这其实就是定义了一个全局的信息队列,当调用log_msg时,信息就写入到这个队列中,然后相关的信息就会被打印出来。
先看一下这个队列被实现的函数调用:
usrRoot-->logInit
STATUS logInit(int fd, /*信息被输出到那里,一般h就死指向console设备*/int maxMsgs /*队列最多可以设置的信息数量*/){
/*创建这个存储信息的队列*/logMsgQId = msgQCreate (maxMsgs, sizeof (LOG_MSG), MSG_Q_FIFO);
/*创建一个任务logTask,专门处理这些任务*/logTaskId = taskSpawn ("tLogTask", logTaskPriority,logTaskOptions, logTaskStackSize,(FUNCPTR)logTask, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);/*初始化一个信号量*/semMInit (&logFdSem, mutexOptionsLogLib);
/*设置最后信息输出时,输出到那里,这里的fd时文件描述符*/logFdSet (fd);
/*向 logMsgQId发送信息的函数*/_func_logMsg = (FUNCPTR) logMsg;return (OK);}
这下初始化就完成了&#
这篇关于vxWorks中的logMsg机制的实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!