**
vxworks中列印時可以使用log_msg來進行列印,當然了這是系統啟動後才可以使用的。
這其實就是定義了乙個全域性的資訊佇列,當呼叫log_msg時,資訊就寫入到這個佇列中,然後相關的資訊就會被列印出來。
先看一下這個佇列被實現的函式呼叫:
usrroot-->loginit
status loginit
(int fd, /*資訊被輸出到那裡,一般h就死指向console裝置*/
int maxmsgs /*佇列最多可以設定的資訊數量*/
)
這下初始化就完成了,在看一下處理資訊的任務,以及增加資訊和處理資訊的函式。
/*任務logtask*/
void logtask (void)
else
/*否則就把任務的名字放入到tname陣列中*/
else
}/*資訊列印的格式為空,則列印格式為空*/
if (msg.fmt == null)
lprintf ("\n", 0, 0, 0, 0, 0, 0);
/*使用lprintf函式正常列印資訊*/
else
}} }
/*向佇列傳送資訊的函式*/
int logmsg
(char *fmt, /* format string for print */
int arg1, /* first of six required args for fmt */
int arg2,
int arg3,
int arg4,
int arg5,
int arg6
)else
msg.fmt = fmt;
msg.arg[0] = arg1;
msg.arg[1] = arg2;
msg.arg[2] = arg3;
msg.arg[3] = arg4;
msg.arg[4] = arg5;
msg.arg[5] = arg6;
/*向佇列傳送資訊*/
if (msgqsend (logmsgqid, (char *) &msg, sizeof (msg), timeout,
msg_pri_normal) != ok)
return (sizeof (msg));
}
local void lprintf
(char *fmt, /* format string for print */
int arg1, /* optional arguments to fmt */
int arg2,
int arg3,
int arg4,
int arg5,
int arg6
)
vxWorks中關於cdfs檔案的使用
cdfs檔案是vxworks對於元件進行配置的檔案 components description files 1,對去驅動components的巨集 drv drviertype drivername drv sio ns16550 componment include name paramter ...
vxworks的時鐘管理
時間格式 秒和納秒 struct timespec time t tv sec 秒,其中time t 為 typedef long time t long tv nsec 納秒 定時器時間格式 struct itimerspec 建立 timer create 建立乙個定時器 設定 timer se...
vxWorks中對時間的精確統計
如果支援timestamp,bsp應提供以下函式 systimestampconnect 連線時間戳中斷 systimestampenable 使能時間戳 systimestampdisable 禁止時間戳 systimestampfreq 取得時間戳的頻率 systimestampperiod 取...