日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ucos ii 文件分析

發(fā)布時(shí)間:2023/12/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ucos ii 文件分析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.?平臺(tái)介紹

本文檔為基于uCOSII操作系統(tǒng)做開(kāi)發(fā)的人員描述了一些uCOSII操作系統(tǒng)的基本特征。?

1.1?結(jié)構(gòu)圖

?

1 ?整體結(jié)構(gòu)圖

2.?基本特征

2.1?uCOSII基本特征

uCOSII操作系統(tǒng)目前支持如下的基本特征:

1.?提供搶占式任務(wù)調(diào)度服務(wù)

2.?提供任務(wù)間同步與通信服務(wù)(如郵箱、消息隊(duì)列、信號(hào)量、內(nèi)存管理等)

3.?提供任務(wù)管理服務(wù)

4.?中斷管理支持嵌套(中斷嵌套層數(shù)最多255

2.2?uCOSII存儲(chǔ)配置

當(dāng)前uCOSII的配置如下:

配置項(xiàng)

配置值

OS_MAX_EVENTS

10

OS_MAX_FLAGS

5

OS_MAX_MEM_PART

5

OS_MAX_QS

4

OS_MAX_TASKS

20

OS_TASK_TMR_STK_SIZE

128

OS_TASK_STAT_STK_SIZE

128

OS_TASK_IDLE_STK_SIZE

128

在上述配置情況下,在metaWare IDE優(yōu)化選項(xiàng)為-O1的情況下,代碼大小為19K左右,數(shù)據(jù)大小為8K左右。

2.3?uCOSIItick配置

?????????如無(wú)特殊要求,性能功能不受影響情況下,配置1 tick/ms,具體可根據(jù)實(shí)際應(yīng)用的性能功能要求和HCLKTimer0的時(shí)鐘情況來(lái)調(diào)整bsp_os.c中全局變量unsigned int cyc = 0xXXXXX;?的值來(lái)改變Tick的頻率。

3.?任務(wù)的建立???????

1.?任務(wù)棧的建立

每個(gè)任務(wù)都需要自己的棧空間,因此在建立任務(wù)之前,先給任務(wù)開(kāi)辟一塊RAM作為該任務(wù)的棧空間。示例如下:

OS_STK ?task1_stk[TASK_STK_SIZE];

2.?任務(wù)實(shí)體的編寫(xiě)

編寫(xiě)任務(wù)函數(shù)及實(shí)體,一個(gè)任務(wù)通常是一個(gè)無(wú)限的循環(huán)。示例如下:

static void task1(void * par)

{

#if OS_CRITICAL_METHOD == 3u ???????

??????OS_CPU_SR ?cpu_sr = 0u;

#endif

unsigned int cnt = (unsigned int) par;

while(1) {

OSTimeDlyHMSM(0, 0, 0, 3000);

OSTaskResume(TASK2_PRI);

}

}

3.?將任務(wù)加入任務(wù)管理行列

使用OSTaskCreate接口函數(shù)來(lái)將任務(wù)加入任務(wù)管理行列,需要注意,此處要提供任務(wù)函數(shù)實(shí)體的入口地址,任務(wù)的棧空間的TOP地址及任務(wù)優(yōu)先級(jí)。

初始任務(wù)的創(chuàng)建OSTaskCreate必須在OSInit接口函數(shù)之后和OSStart接口函數(shù)之前,其他任務(wù)的創(chuàng)建可在任務(wù)實(shí)體中調(diào)用OSTaskCreate接口函數(shù)來(lái)建立新任務(wù)。示例如下:

OSInit();

os_err = OSTaskCreate(task1, (void *)1, p_task1_stk, TASK1_PRI);

os_err = OSTaskCreate(task2, (void *)2, p_task2_stk, TASK2_PRI);

OSTaskSuspend(TASK2_PRI);

OSStart();

或者如下所示:

static void task1(void * par)

{

#if OS_CRITICAL_METHOD == 3u ???????

??????OS_CPU_SR ?cpu_sr = 0u;

#endif

unsigned int cnt = (unsigned int) par;

os_err = OSTaskCreate(task3, (void *)1, p_task3_stk, TASK3_PRI);

os_err = OSTaskCreate(task2, (void *)2, p_task2_stk, TASK2_PRI);

while(1) {

OSTimeDlyHMSM(0, 0, 0, 3000);

OSTaskResume(TASK2_PRI);

}

}

4.?中斷與異常處理函數(shù)的建立

4.1?中斷與異常的處理過(guò)程

???????系統(tǒng)將所有的中斷入口統(tǒng)一為函數(shù)cpu_int_entry的入口地址,將所有的異常入口統(tǒng)一為函數(shù)cpu_exc_entry的入口地址。用戶無(wú)需修改os_cpu_a.s文件中cpu_int_entrycpu_exc_entry的函數(shù)實(shí)體內(nèi)容。在cpu_int_entrycpu_exc_entry中,系統(tǒng)做完相關(guān)處理后,會(huì)根據(jù)當(dāng)前中斷或異常優(yōu)先級(jí)來(lái)決定跳轉(zhuǎn)到中斷異常處理函數(shù)列表_kernel_exc_tbl的相應(yīng)入口去執(zhí)行中斷或異常處理函數(shù)。而中斷異常處理函數(shù)列表_kernel_exc_tbl中的具體的函數(shù)入口則需要用戶建立。

4.2?用戶的中斷與異常處理函數(shù)的建立

1.?中斷與異常處理函數(shù)實(shí)體的編寫(xiě)

如下所示:

static void OSTickISR( void )

{

/* clear timer interrupt */

write_aux_reg(ARC_REG_TIMER0_CTRL, TIMER_CTRL_IE | TIMER_CTRL_NH);

OSTimeTick();

}

2.?將函數(shù)入口地址加入中斷異常處理函數(shù)列表_kernel_exc_tbl

初始化設(shè)備后,將中斷或異常處理函數(shù)的入口加入中斷異常處理函數(shù)列表_kernel_exc_tbl中,如下所示:

arc_install_exc(INHNO_TIMER, (EXC_HANDLER)OSTickISR);

其中INHNO_TIMERTimer在芯片內(nèi)核中的中斷異常號(hào),OSTickISR則為Timer中斷對(duì)應(yīng)的中斷處理函數(shù)入口地址。

然后使能中斷即可。

5.?主要文件說(shuō)明??

uCOSII內(nèi)核又可區(qū)分為兩塊:

1. 內(nèi)核跟移植相關(guān)的部分,包括對(duì)中斷和異常的處理、任務(wù)切換及臨界段等

文件名

文件說(shuō)明

os_cpu_a.s

uCOS內(nèi)核中需要用戶參與修改的部分,包括任務(wù)切換代碼、中斷處理代碼、異常處理代碼等(目前已移植完畢,用戶不需要修改)

os_cpu_c.c?

uCOS內(nèi)核中,提供給用戶編寫(xiě)用戶的鉤子程序的文件

os_cpu.h

與移植相關(guān)的函數(shù)聲明

os_cfg_r.h

與移植相關(guān)的操作系統(tǒng)資源配置

2.其他的uc/os-ii文件

uC/OS-II內(nèi)核與體系結(jié)構(gòu)無(wú)關(guān)的服務(wù)代碼,不需要做任何修改的部分

文件名

文件說(shuō)明

os_dbg.c

uCOS內(nèi)核中,提供給用戶用于配置調(diào)試的文件

os_core.c

uCOS內(nèi)核的功能函數(shù),用戶不需要修改

os_flag.c

uCOS提供的時(shí)間標(biāo)志組管理,用戶不需要修改

os_mbox.c

uCOS提供的消息郵箱管理,用戶不需要修改

os_mem.c

uCOS提供的內(nèi)存管理,用戶不需要修改

os_mutex.c

uCOS提供的互斥信號(hào)量管理,用戶不需要修改

os_q.c

uCOS提供的隊(duì)列管理,用戶不需要修改

os_sem.c

uCOS提供的信號(hào)量管理,用戶不需要修改

os_Task.c

uCOS提供的任務(wù)管理,用戶不需要修改

os_time.c

uCOS提供的時(shí)間管理,用戶不需要修改

os_tmr.c

uCOS提供的軟Timer管理,用戶不需要修改

總結(jié)

以上是生活随笔為你收集整理的ucos ii 文件分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天躁日日躁狠狠躁av麻豆男男 | 国产精品系列在线播放 | 国产农村妇女毛片精品久久 | 亚洲精品污一区二区三区 | 三度诱惑免费版电影在线观看 | 午夜激情成人 | 欢乐谷在线观看免费播放高清 | 杨贵妃颤抖双乳呻吟求欢小说 | 国产成人av片 | 午夜影剧院 | 亚洲图片二区 | 黑人黄色大片 | 国产日产久久高清欧美一区 | 国产性猛交普通话对白 | 成年人在线视频免费观看 | 亚洲久久视频 | 91人人澡人人爽人人精品 | 亚洲影视网| 中文字幕被公侵犯的漂亮人妻 | 国产www免费观看 | 一区二区三区视频免费视 | 亚洲三级视频在线观看 | 激情五月色综合国产精品 | 九九热视频在线播放 | 手机在线观看免费av | 午夜在线观看视频18 | 免费精品在线 | 99精品国产一区二区 | 69式视频 | 毛片亚洲av无码精品国产午夜 | 成人免费观看视频 | 中文字幕在线免费观看视频 | 87福利视频 | 在线中文字幕亚洲 | 黑人巨大xxxxx性猛交 | av男女 | 精品人妻一区二区三区四区 | 亚洲AV无码成人国产精品色 | 国内毛片毛片毛片毛片 | 亚洲毛片一区二区三区 | 扒开腿揉捏花蒂h | 午夜亚洲 | 97超碰福利| 亚洲精选久久久 | 日本精品久久久 | 天天色天天干天天色 | 国产黄色片在线观看 | 一区不卡视频 | 天天免费视频 | 国产成人av无码精品 | 免费av网站在线播放 | 小泽玛利亚一区二区三区在线观看 | 日本国产视频 | 日韩精品视频在线播放 | 在线免费观看黄视频 | 久久精品在这里 | 无罩大乳的熟妇正在播放 | 最新av网站在线观看 | 校园春色在线观看 | 久久久久久麻豆 | av免费在线观看网站 | 精品视频第一页 | 自拍视频网址 | 成年人的天堂 | 日本污污网站 | 黄色永久网站 | 国产69xx| 久久在线精品视频 | 欧美女优在线观看 | 亚洲精品av在线 | 户外少妇对白啪啪野战 | 香蕉视频官网在线观看 | 娇妻被肉到高潮流白浆 | 亚洲av无码一区二区三区四区 | 欧美色图校园春色 | 免费a视频在线观看 | 国产对白自拍 | 草av在线| 亚洲国产精品无码久久久久高潮 | 亚洲啊啊啊啊啊 | 亚洲熟妇av乱码在线观看 | 美女又黄又免费的视频 | 天天干夜夜爱 | 牛牛精品一区 | 精品国产一区二区三区久久狼黑人 | 97精品久久久 | 一区二区三区在线观看免费视频 | 高h大肚孕期孕妇play | 久久福利影视 | 高清av一区二区三区 | 欧美激情黄色 | 精品久久久久久久久久久久久久 | 久操热久操 | 日韩欧美h | 国产精品v亚洲精品v日韩精品 | 一级黄色录像免费观看 | 久久免费少妇高潮久久精品99 | 一本色道久久综合亚洲精品小说 | 自拍偷拍2019 |