配置自己的UC/OS―II操作系統(tǒng)
注:對(duì)于ARM7系列CPU,OS_STK為32位。
2 與通信功能有關(guān)的數(shù)據(jù)結(jié)構(gòu)
1.OS_MAX_EVENTS
l 作用:設(shè)置程序中可以具有事件控制塊的最大數(shù)量。
l 說(shuō)明事件控制塊數(shù)量即程序設(shè)計(jì)中信號(hào)量,郵箱和消息隊(duì)列的個(gè)數(shù)。
l 舉例:若程序中定義了一個(gè)郵箱,一個(gè)消息隊(duì)列和一個(gè)互斥信號(hào)量。則此時(shí)OS_MAX_EVENTS的最小值為3.
注:如果使用zlg提供的模版時(shí),建議OS_MAX_EVENTS設(shè)置最小為8(因?yàn)閦lg的模板中可能也用到了一些事件控制塊)
2.OS_MAX_MEM_PART
l 作用:設(shè)置系統(tǒng)中內(nèi)存塊的最大數(shù)目。
l 說(shuō)明:如果不用內(nèi)存控制,則設(shè)置為默認(rèn)值即可
l 舉例:在zlg模板中OS_MAX_MEM_PART為5
注:如果應(yīng)用程序要使用動(dòng)態(tài)內(nèi)存,那么內(nèi)存控制塊的配置常數(shù)OS_MAX_MEM_PARTS最小應(yīng)該設(shè)置為2.
為了使編譯器能夠?qū)ο到y(tǒng)的內(nèi)存管理函數(shù)進(jìn)行編譯,常量OS_MEM_EN也要設(shè)置為1。
3.OS_MAX_QS
l 作用:設(shè)置系統(tǒng)中具有消息隊(duì)列的最大數(shù)目
l 說(shuō)明:如果程序中要使用消息隊(duì)列,那么OS_MAX_QS最小應(yīng)該設(shè)置為2。為了使編譯器能夠?qū)ο到y(tǒng)的管理消息隊(duì)列的函數(shù)進(jìn)行編譯,常量0S_Q_EN也要同時(shí)設(shè)置為1。
l 舉例:若在程序中定義了一個(gè)消息隊(duì)列,則該值最小設(shè)定為1.
4.OS_MAX_FLAGS:
l 作用:設(shè)定事件標(biāo)志組的最大數(shù)目
l 說(shuō)明:若定義了事件標(biāo)志組,還要定義定義事件標(biāo)志組包含的標(biāo)志位數(shù)(只能是8位,16位或32位)
l 舉例:定義16位的事件標(biāo)志組
typedef INT16U 0S_FLAGS
2 其它參數(shù)
1.OS_TICK_PER_SEC:
l 作用:設(shè)置調(diào)用OSTimeTick()函數(shù)的頻率,即時(shí)鐘最小單位的設(shè)定。
l 說(shuō)明:如果這個(gè)值設(shè)定得太大,則系統(tǒng)的實(shí)時(shí)性會(huì)受到影響;如果這個(gè)值設(shè)定的太小,則CPU會(huì)忙于時(shí)鐘處理而增大開銷。
注:根據(jù)微處理器的不同,該值設(shè)置為10~100ms的周期為宜,對(duì)應(yīng)頻率為10~100HZ。
評(píng)論