日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式客棧
[導(dǎo)讀]最近有讀者問(wèn)了這么一個(gè)問(wèn)題:為啥RTOS的系統(tǒng)滴答(Tick)默認(rèn)配置都是1000,我配置為100、10000,或者2000可以不?相信很多初學(xué)者都有這個(gè)疑問(wèn),包括我初學(xué)RTOS也曾困惑滴答配置不同值到底有啥不同和影響。今天就來(lái)簡(jiǎn)單說(shuō)下關(guān)于RTOS系統(tǒng)滴答的內(nèi)容!什么是系統(tǒng)滴答?...

最近有讀者問(wèn)了這么一個(gè)問(wèn)題:為啥RTOS的系統(tǒng)滴答(Tick)默認(rèn)配置都是1000,我配置為100、10000,或者2000可以不?


相信很多初學(xué)者都有這個(gè)疑問(wèn),包括我初學(xué)RTOS也曾困惑滴答配置不同值到底有啥不同和影響。
今天就來(lái)簡(jiǎn)單說(shuō)下關(guān)于RTOS系統(tǒng)滴答的內(nèi)容!
什么是系統(tǒng)滴答?

系統(tǒng)滴答(SysTick),有些地方也叫時(shí)鐘節(jié)拍、系統(tǒng)心跳等。


操作系統(tǒng)可以多任務(wù)間進(jìn)行切換,就是靠一個(gè)系統(tǒng)定時(shí)器**頻中斷,為操作系統(tǒng)提供調(diào)度(上下文切換)才能實(shí)現(xiàn)任務(wù)切換。


而這個(gè)定時(shí)器,就是我們本文說(shuō)的系統(tǒng)滴答。


早些年的51、430單片機(jī),跑RTOS,都是單獨(dú)利用一個(gè)Timer定時(shí)器提供系統(tǒng)滴答。


為了考慮跑RTOS這個(gè)問(wèn)題,Cortex-M內(nèi)核自帶系統(tǒng)滴答這個(gè)定時(shí)器。


你會(huì)發(fā)現(xiàn)市面上很多單片機(jī)基本都自帶有SysTick這個(gè)定時(shí)器,像Cortex-M0、 M3、 M4這些內(nèi)核的單片機(jī)都有的,而且只要簡(jiǎn)單調(diào)用官方寫好的API函數(shù)即可使用。


系統(tǒng)配置文件

通常,系統(tǒng)滴答(OS_TICKS)位于系統(tǒng)配置文件中,對(duì)系統(tǒng)配置文件進(jìn)行配置也是重要的一步。(一些系統(tǒng)通過(guò)圖形化界面進(jìn)行配置,其實(shí)也是對(duì)系統(tǒng)配置文件進(jìn)行配置


比如FreeRTOSConfig.h


再比如ucos系統(tǒng)的os_cfg.h


OS_TICKS一般是配置為1000,從宏定義和注釋很容易理解,就是每秒系統(tǒng)滴答的次數(shù)。


這里的配置選項(xiàng)很多,初學(xué)者可能不理解一些選項(xiàng)的含義,可以使用官方默認(rèn)配置即可,等熟悉到一定程度,這些配置選項(xiàng)自然就理解了。


系統(tǒng)滴答配置多少才合適?

系統(tǒng)滴答配置1000,代表系統(tǒng)1ms要進(jìn)行一次輪轉(zhuǎn)調(diào)度,檢查是否有更高優(yōu)先級(jí)任務(wù)要執(zhí)行(并切換任務(wù))。


1ms是什么概念??

可能你認(rèn)為1ms時(shí)間好短,但對(duì)于操作系統(tǒng)而言,1ms的時(shí)間卻是很長(zhǎng)。


100M主頻的單片機(jī),執(zhí)行一次調(diào)度(幾十條語(yǔ)句),時(shí)間在us級(jí)別,你說(shuō)1ms對(duì)于系統(tǒng)而言有多長(zhǎng)?


為啥配置為1000?

肯定很多人有這個(gè)疑問(wèn),配置為1000,為啥不是100、10000,或者2000?


1000是一個(gè)比較適合的中等值,其他100、10000,或者2000也可以,只是不利于系統(tǒng)以及編程。


a.如果滴答太大,10K,甚至100K,對(duì)系統(tǒng)的負(fù)擔(dān)比較大。因?yàn)樽陨碚{(diào)度會(huì)占用CPU時(shí)間。


b.1ms滴答一次,方便編程系統(tǒng)延時(shí)。2k、10k這種值,在用到系統(tǒng)延時(shí)時(shí),不方便計(jì)算。


vTaskDelay(1000);

如果滴答值為1000,則代表延時(shí)1秒;

如果滴答值為2000,則代表延時(shí)0.5秒,很明顯這種不利于編程;


配置為其他數(shù)值有啥影響?

除1000之外,方便計(jì)算延時(shí)的就是1,或者1M。(很明顯1或者1M都不現(xiàn)實(shí)


配置為1,系統(tǒng)1秒才響應(yīng)一次,這還叫實(shí)時(shí)操作系統(tǒng)?


配置為1M,1us調(diào)度一次,CPU基本都在做調(diào)度的工作,不用干其他事了。


除此之外,100、10000,或者2000,就是延時(shí)計(jì)算不方便之外,按理說(shuō)也是可以的。


小結(jié)

1.實(shí)時(shí)操作系統(tǒng)的SysTick,在沒(méi)有特殊情況下,最好默認(rèn)配置1000;


2.在系統(tǒng)允許的情況下,SysTick數(shù)值越大,系統(tǒng)實(shí)時(shí)性越高;反之實(shí)時(shí)性越差;


3.主頻相對(duì)偏低(比如低于10M)的處理器,SysTick值可以適當(dāng)配置第一點(diǎn);

ickname="嵌入式客棧" data-alias="embInn" data-signature="逸珺,15年老兵,分享Linux、單片機(jī)、信號(hào)處理、C/C 編程等經(jīng)驗(yàn)。" data-from="0">

—— The End?—
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉