www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 單片機
[導讀]4. uCOS配置uCOS是可裁減實時操作系統(tǒng),可以根據(jù)實際的應用對內核未使用到的功能進行裁減,以進一步節(jié)省系統(tǒng)寶貴的硬件資源,通??捎玫膗COS-II內核代碼在6K~26K,這在uCOS-II配置文件os_cfg.h中進行配置,這個配置文

4. uCOS配置

uCOS是可裁減實時操作系統(tǒng),可以根據(jù)實際的應用對內核未使用到的功能進行裁減,以進一步節(jié)省系統(tǒng)寶貴的硬件資源,通常可用的uCOS-II內核代碼在6K~26K,這在uCOS-II配置文件os_cfg.h中進行配置,這個配置文件在源碼目錄為os_cfg_r.h,從目錄中拷貝添加到uCOS/uCOS-II/Cfg目錄中,并重命名為os_cfg.h。

#ifndef OS_CFG_H

#define OS_CFG_H

/* ---------------------------- MISCELLANEOUS -------------------------- */

#define OS_CFG_APP_HOOKS_EN 1u /* Enable/Disable application specific hooks*/

#define OS_CFG_ARG_CHK_EN 1u /*Enable/Disable argument checking*/

#define OS_CFG_CALLED_FROM_ISR_CHK_EN 1u /* check for called from ISR*/

#define OS_CFG_DBG_EN1u /* Enable (1) debugcode/variables */

#define OS_CFG_ISR_POST_DEFERRED_EN0u /* Enable/Disable DeferredISR posts */

#define OS_CFG_OBJ_TYPE_CHK_EN 1u /* Enable/Disable object typechecking*/

#define OS_CFG_TS_EN 1u /* Enable/Disable timestamping*/

#define OS_CFG_PEND_MULTI_EN 1u /* code generation formulti-pend feature */

#define OS_CFG_PRIO_MAX 32u /* maximum number of taskpriorities */

#define OS_CFG_SCHED_LOCK_TIME_MEAS_EN1u /* code to measure schedulerlock time */

#define OS_CFG_SCHED_ROUND_ROBIN_EN 1u /* code for Round-Robinscheduling */

#define OS_CFG_STK_SIZE_MIN 64u /* Minimum allowable taskstack size */

/* ----------------------------- EVENT FLAGS --------------------------- */

#define OS_CFG_FLAG_EN 1u /* Enable/Disable code forEVENT FLAGS*/

#define OS_CFG_FLAG_DEL_EN 0u /* Include code forOSFlagDel()*/

#define OS_CFG_FLAG_MODE_CLR_EN 0u /* code for Wait on ClearEVENT FLAGS*/

#define OS_CFG_FLAG_PEND_ABORT_EN 0u /* Include code forOSFlagPendAbort()*/

/* -------------------------- MEMORY MANAGEMENT ------------------------ */

#define OS_CFG_MEM_EN1u /* code generation for MEMORYMANAGER */

/* --------------------- MUTUAL EXCLUSION SEMAPHORES ------------------- */

#define OS_CFG_MUTEX_EN 1u /* code generation for MUTEX*/

#define OS_CFG_MUTEX_DEL_EN 0u /* code for OSMutexDel()*/

#define OS_CFG_MUTEX_PEND_ABORT_EN0u /* code for OSMutexPendAbort()*/

/* --------------------------- MESSAGE QUEUES -------------------------- */

#define OS_CFG_Q_EN 1u /* code generation for QUEUES*/

#define OS_CFG_Q_DEL_EN 0u /* Include code forOSQDel()*/

#define OS_CFG_Q_FLUSH_EN 0u /* Include code forOSQFlush()*/

#define OS_CFG_Q_PEND_ABORT_EN1u /* Include code forOSQPendAbort()*/

/* ----------------------------- SEMAPHORES ---------------------------- */

#define OS_CFG_SEM_EN 1u/* code generation for SEMAPHORES */

#define OS_CFG_SEM_DEL_EN 0u /* Include code forOSSemDel()*/

#define OS_CFG_SEM_PEND_ABORT_EN1u /* Include code forOSSemPendAbort()*/

#define OS_CFG_SEM_SET_EN 1u /* Include code forOSSemSet()*/

/* -------------------------- TASK MANAGEMENT -------------------------- */

#define OS_CFG_STAT_TASK_EN 1u /* Enable/Disable thestatistics task*/

#define OS_CFG_STAT_TASK_STK_CHK_EN1u /* Check task stacks fromstatistic task*/

#define OS_CFG_TASK_CHANGE_PRIO_EN 1u /* Include code forOSTaskChangePrio()*/

#define OS_CFG_TASK_DEL_EN 0u /* Include code forOSTaskDel()*/

#define OS_CFG_TASK_Q_EN 1u /* Include code forOSTaskQXXXX()*/

#define OS_CFG_TASK_Q_PEND_ABORT_EN0u /* Include code forOSTaskQPendAbort()*/

#define OS_CFG_TASK_PROFILE_EN 1u /* variables in OS_TCB forprofiling */

#define OS_CFG_TASK_REG_TBL_SIZE 1u /* Number of task specificregisters*/

#define OS_CFG_TASK_SEM_PEND_ABORT_EN1u /* Include code forOSTaskSemPendAbort()*/

#define OS_CFG_TASK_SUSPEND_EN 1u /* OSTaskSuspend() and OSTaskResume()*/

/* -------------------------- TIME MANAGEMENT -------------------------- */

#define OS_CFG_TIME_DLY_HMSM_EN 1u /* Include code forOSTimeDlyHMSM()*/

#define OS_CFG_TIME_DLY_RESUME_EN0u /* Include code forOSTimeDlyResume()*/

/* ------------------- TASK LOCAL STORAGE MANAGEMENT ------------------- */

#define OS_CFG_TLS_TBL_SIZE 0u /* code for Task LocalStorage (TLS) registers */

/* ------------------------- TIMER MANAGEMENT -------------------------- */

#define OS_CFG_TMR_EN 1u /*Enable/Disablecode generation for TIMERS */

#define OS_CFG_TMR_DEL_EN 0u /*Enable/Disable code generation for OSTmrDel()*/

#endif

5. 用戶代碼

用戶需要提供一個周期性定時中斷作為uCOS-II的運行Tick,每個Tick需調用OSTimeTick()來讓內核管理時鐘節(jié)拍,在s3c2416用定時器4產生這個系統(tǒng)Tick。在main()函數(shù)中需調用OSInit()初始化內核,創(chuàng)建任務后,再調用OSStart()把cpu管理權交給內核。內核即可正確地管理用戶的任務。

#include "s3c2416.h"

#include "Exception.h"

#include "ucos_ii.h"

// IO port for controling LEDs

#define LED2 (13) // GPE13 LED2

#define LED3 (11) // GPE11 LED3

#define LED4 (13) // GPL13 LED4

#define LED5 (12) // GPE12 LED5

#define LED6 (2) // GPG2 LED6

OS_STKTaskStartStk[TASK_START_STK_SIZE];

OS_STK Task1Stk[TASK1_STK_SIZE];

OS_STK Task2Stk[TASK2_STK_SIZE];

OS_STK Task3Stk[TASK3_STK_SIZE];

static void Timer4_IRQ(void)

{

OSTimeTick(); // uCOS時鐘節(jié)拍管理

rSRCPND1 |= (0x01 <

rINTPND1 |= (0x01 <

}

void Timer4_Start()

{

rTCON |= (0x1 << 20); // 定時器開啟

}

void Timer4_Stop()

{

rTCON &= ~(0x1 << 20);// 定時器停止

}

void Timer4_Init()

{

// 定時器4時鐘頻率為PCLK(66.66666M)/(0+1)/16=4.166MHZ

rTCFG1 &= ~(0xf << 16);

rTCFG1 |= (0x3 << 16); // Timer4 16分頻

rTCFG0 &= ~(0xff << 8);

rTCFG0 |= (0 << 8); // PCLK預分頻為1

rTCNTB4 = 4166; // System Tick設1ms

rTCON |= (0x1 << 21); // 更新計數(shù)值

rTCON &= ~(0x1 << 21);// 清除

rTCON |= (0x1 << 22); // 自動重裝載

IRQ_Register(INT_TIMER4,Timer4_IRQ); // 注冊Timer4中斷函數(shù)

rINTMOD1 &= ~(1 <

rINTMSK1 &= ~(1 <

}

void Gpio_LED2(unsigned char On)

{

if (!On) {

rGPEDAT &=~(1<

} else {

rGPEDAT |= (1<

}

}

void Gpio_LED3(unsigned char On)

{

if (!On) {

rGPEDAT &=~(1<

} else {

rGPEDAT |= (1<

}

}

void Gpi

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉