您的位置:網(wǎng)站首頁(yè) > 衡陽(yáng)手機(jī)維修 > 正文 >
linux定時(shí)器的使用方法?
常州金孔雀裝飾工程有限公司
等級(jí)93
所有回答:7343
常州金孔雀裝飾工程有限公司 16天前 數(shù)為秒數(shù),在經(jīng)過(guò)指定秒數(shù)后,alarm會(huì)發(fā)出一個(gè)sigalrm信號(hào)singal函數(shù)用來(lái)綁定信號(hào)處理器函數(shù),這里綁定的是timer,被綁定的函數(shù)必須固定為返回值void、參數(shù)int。
只需要alarm(時(shí)間)就設(shè)置了,可能由于getchar需要進(jìn)入中斷導(dǎo)致信號(hào)被掛起所以沒(méi)反應(yīng)吧,可以試試把getchar換成別的東西來(lái)延時(shí)看看 +1 (0) 贊同該答案 評(píng)論()
常州寶泰裝飾工程有限公司
等級(jí)8
所有回答:2002
常州寶泰裝飾工程有限公司 16天前 初始化 在使用 struct timer_list 之前,需要初始化該數(shù)據(jù)結(jié)構(gòu),確保所有的字段都被正確地設(shè)置。初始化有兩種方法。 方法一: define_timer(timer_name, function_name, expires_value, data); 該宏會(huì)定義一個(gè)名叫 timer_name 內(nèi)核定時(shí)器,并初始化其 function, expires, name 和 base 字段。 方法二: struct timer_list mytimer; setup_timer(&mytimer, (*function)(unsigned long), unsigned long data); mytimer.expires = jiffies + 5*hz; 注意,無(wú)論用哪種方法初始化,其本質(zhì)都只是給字段賦值,所以只要在運(yùn)行 add_timer() 之前,expires, function 和 data 字段都可以直接再修改。 關(guān)于上面這些宏和函數(shù)的定義,參見(jiàn) include/linux/timer.h。 注冊(cè) 定時(shí)器要生效,還必須被連接到內(nèi)核專(zhuān)門(mén)的鏈表中,這可以通過(guò) add_timer(struct timer_list *timer) 來(lái)實(shí)現(xiàn)。 重新注冊(cè) 要修改一個(gè)定時(shí)器的調(diào)度時(shí)間,可以通過(guò)調(diào)用 mod_timer(struct timer_list *timer, unsigned long expires)。mod_timer() 會(huì)重新注冊(cè)定時(shí)器到內(nèi)核,而不管定時(shí)器函數(shù)是否被運(yùn)行過(guò)。 注銷(xiāo) 注銷(xiāo)一個(gè)定時(shí)器,可以通過(guò) del_timer(struct timer_list *timer) 或 del_timer_sync(struct timer_list *timer)。其中 del_timer_sync 是用在 smp 系統(tǒng)上的(在非smp系統(tǒng)上,它等于del_timer),當(dāng)要被注銷(xiāo)的定時(shí)器函數(shù)正在另一個(gè) cpu 上運(yùn)行時(shí),del_timer_sync() 會(huì)等待其運(yùn)行完,所以這個(gè)函數(shù)會(huì)休眠。另外還應(yīng)避免它和被調(diào)度的函數(shù)爭(zhēng)用同一個(gè)鎖。對(duì)于一個(gè)已經(jīng)被運(yùn)行過(guò)且沒(méi)有重新注冊(cè)自己的定時(shí)器而言,注銷(xiāo)函數(shù)其實(shí)也沒(méi)什么事可做。 int timer_pending(const struct timer_list *timer) 這個(gè)函數(shù)用來(lái)判斷一個(gè)定時(shí)器是否被添加到了內(nèi)核鏈表中以等待被調(diào)度運(yùn)行。注意,當(dāng)一個(gè)定時(shí)器函數(shù)即將要被運(yùn)行前,內(nèi)核會(huì)把相應(yīng)的定時(shí)器從內(nèi)核鏈表中刪除(相當(dāng)于注銷(xiāo)) +1 (0) 贊同該答案 評(píng)論()寧波畔林居建筑裝飾設(shè)計(jì)有限公司
等級(jí)2
所有回答:242
寧波畔林居建筑裝飾設(shè)計(jì)有限公司 16天前 就是你不用買(mǎi)硬件,在protues里畫(huà)個(gè)電路就能運(yùn)行,簡(jiǎn)單的如led,有程序就能點(diǎn)亮它,第二,單片機(jī)和嵌入式有相似之處,學(xué)歷單片機(jī)理解寄存器的各種設(shè)置,理解中斷 定時(shí)器的用法 +1 (0) 贊同該答案 評(píng)論()四川濎樽建筑裝飾工程有限公司
等級(jí)146
所有回答:14108
四川濎樽建筑裝飾工程有限公司 16天前 數(shù)為秒數(shù),在經(jīng)過(guò)指定秒數(shù)后,alarm會(huì)發(fā)出一個(gè)sigalrm信號(hào) singal函數(shù)用來(lái)綁定信號(hào)處理器函數(shù),這里綁定的是timer,被綁定的函數(shù)必須固定為返回值void、參數(shù)int。 只需要alarm(時(shí)間)就設(shè)置了,可能由于getchar需要進(jìn)入中斷導(dǎo)致信號(hào)被掛起所以沒(méi) +1 (0) 贊同該答案 評(píng)論()朱志龍
等級(jí)40
所有回答:8786
朱志龍上海箕風(fēng)裝飾 17天前 linux 定時(shí)器 國(guó)嵌內(nèi)部資料linux 定時(shí)器 國(guó)嵌內(nèi)部資料隱藏 +1 (0) 贊同該答案 評(píng)論()【看看這篇文章在百度的收錄情況】