small rtos51使用手冊
1.????? Small RTOS(51)文件列表
?
根目錄:
list.txt??????????????????????? :本文件
README.TXT????????????????????? :一些說明
license.txt???????????????????? :許可協議
manual.txt????????????????????? :用戶手冊
?
.\ex1:
這是第1個例子的目錄
README.TXT????????????????????? :本例子的一些說明
ext1.c????????????????????????? :本例子的程序文件
OS_CFG.H??????????????????????? :本例子的Small RTOS(51)配置文件
config.h??????????????????????? :本例子的配置文件
OS_CPU.H??????????????????????? :本例子的與cpu相關的配置文件
test.Uv2??????????????????????? :keil c51工程文件
test.plg??? ????????????????????:keil c51工程附屬文件
test.Opt??????????????????????? :keil c51工程附屬文件
?
.\ex2:
這是第2個例子的目錄
README.TXT????????????????????? :本例子的一些說明?????????????
ext2.c????????????????????????? :本例子的程序文件?????????????
OS_CFG.H??????????????????????? :本例子的Small RTOS(51)配置文件
config.h??????????????????????? :本例子的配置文件?????????????
OS_CPU.H??????????????????????? :本例子的與cpu相關的配置文件
display.c?????????????????????? :對仿真dll的一些操作函數?????????
display.h?????????????????????? :display.c的頭文件?????????
test.Uv2????????????? ??????????:keil c51工程文件?????????????
test.Opt??????????????????????? :keil c51工程附屬文件
test.plg??????????????????????? :keil c51工程附屬文件
?
.\ex3:
這是第3個例子的目錄
README.TXT????????????????????? :本例子的一些說明???????????????
ext3.c????????????????????????? :本例子的程序文件??? ????????????
OS_CFG.H??????????????????????? :本例子的Small RTOS(51)配置文件?
config.h??????????????????????? :本例子的配置文件???????????????
OS_CPU.H??????????????????????? :本例子的與cpu相關的配置文件
display.c?????????????????????? :對仿真dll的一些操作函數????????
display.h???????????? ??????????:display.c的頭文件??????????????
test.Uv2??????????????????????? :keil c51工程文件???????????????
test.Opt??????????????????????? :keil c51工程附屬文件???????????
test.plg??????????????????????? :keil c51工程附屬文件???????????
?
.\ex4:
這是第4個例子的目錄
ext4.c???????? ?????????????????:本例子的一些說明???????????????
README.TXT????????????????????? :本例子的程序文件???????????????
OS_CFG.H??????????????????????? :本例子的Small RTOS(51)配置文件?
config.h??????????????????????? :本例子的配置文件???????????????
OS_CPU.H??????????????????????? :本例子的與cpu相關的配置文件
display.c?????????????????????? :對仿真dll的一些操作函數????????
display.h?????????????????????? :display.c的頭文件??????????????
test.Uv2??????????????????????? :keil c51工程文件???????????????
test.Opt??????????????????????? :keil c51工程附屬文件???????????
test.plg??????????????????????? :keil c51工程附屬文件???????????
?
.\keilc51
這是與CPU(8051系列)相關的移植代碼
OS_CPU_C.C????????????????????? :移植代碼C語言部分
OS_CPU_A.ASM??????????????????? :8任務版的移植代碼匯編語言部分
OS_CPU_A_task16.ASM???????????? :16任務版的移植代碼匯編語言部分
?
.\os
這是Small RTOS(51)與CPU無關部分
OS_CORE.C?????????????????????? :Small RTOS(51)核心
OS.H??????????????????????????? :Small RTOS(51)頭文件
?
?
1.????? 概述:
??? Small RTOS是一個源代碼公開的多任務實時操作系統,Small RTOS 51是其在8051系列處理器上的移植(使用keil c51)。Small RTOS可以簡化那些復雜而且時間要求嚴格的工程的軟件設計工作.本手冊主要講述Small RTOS的使用,本說明了在8051系列處理器上使用應該注意的問題。同時講述了Small RTOS的移植。
??? 本手冊僅針對Small RTOS(51) 1.00版本
?
2.?????? Small RTOS的特點:
(1)公開源代碼
??? 只要遵循許可協議,任何人可以免費獲得源代碼。
(2)可移植
??? 作者盡量使用把與CPU相關部分壓縮到最小,與CPU無關部分用ansi c編寫。
(3)可固化
??? Small RTOS為嵌入系統設計,如果您有固化手段,它可以嵌入到您的產
??? 品中成為產品的一部分。
(4)占先式
??? Small RTOS可以管理16個任務,每個任務優先級不同。
(5)中斷管理
??? 中斷可以使正在執行的任務掛起。如果優先級更高的任務被中斷喚醒,則高優先級的任務在中斷嵌套全部退出后立即執行。中斷嵌套層數可達255層。如果需要,可以禁止中斷嵌套管理。
(6)RAM需求小
??? Small RTOS為小RAM系統設計,應而RAM需求小,相應的,系統服務也少。
?
?
3.????? Small RTOS的使用:
(1)系統配置:
??? os_cfg.h中定義了一些常量可以配置系統,具體定義如下:
?
#define OS_MAX_TASKS? ????? 1 ? /* 最大任務數1~16?? ??????????????????????????????????????? */
#define OS_TICKS_PER_SEC??? 10? /* 設置1秒系統系統節拍數? ???????????????????????????????? */
#define USER_TICK_TIMER_EN 0?? /* 禁止(0)或允許(1)系統定時中斷調用用戶函數UserTickTimer() */
#define EN_OS_INT_ENTER ??? 1?? /* 禁止(0)或允許(1)中斷嵌套管理??? ???????????????????????? */
#define EN_TIMER_SHARING? ? 1 ??/* 禁止(0)或允許(1)定時器中斷調用OSTimeTick()?? ??????????? */
#define TICK_TIMER_SHARING? 1?? /* 定義進入多少次硬件中斷為一次系統定時器軟中斷?????? ????? */
//
#if EN_TIMER_SHARING == 0
#define TIME_ISR_TASK_ID?? SHOW_TASK_ID? /* 定義系統定時器軟中斷觸發的任務ID???????????? */
#endif
?
? ? Os_cpu.h中定義了一些常量可以配置一些與cpu相關的部分。
針對Small RTOS 51,具體定義如下:
#define EN_SP2??? ????? 0?????????? /* 禁止(0)或允許(1)非屏蔽中斷????? */
#define IDATA_RAM_SIZE 0x100?????? /* idata大小?????????????????????? */
#define Sp2Space??? ??? 4????????? /* 高級中斷(軟非屏蔽中斷)堆棧大小 EN_SP2為0時無效??? */
#define OS_TIME_ISR? ?? 1????????? /* 系統定時器使用的中斷????????????????? ??????????????? */
? //
SET_EA? MACRO?????????????? ;打開所有允許中斷
SETB?? EA
ENDM
?
?
(2)運行Small RTOS
??? 在main函數中調用OSStart()后系統開始運行,OSStart()結束后運行優先級為0的任務。
??? 注意:在調用OSStart()前不要使能總中斷標志,系統會自動使能這個標志,對于8051系列,這個標志為EA。
(3)建立任務:
??? Small RTOS使用靜態方法建立任務,在config.h中有這樣一段代碼:
?
?? #ifdef IN_OS_CPU_C
?? extern void TaskA(void);
?? extern void TaskB(void);
?? extern void TaskC(void);
?
?? void? (* const TaskFuction[OS_MAX_TASKS])(void)={TaskA,TaskB,TaskC};
?? //函數數組TaskFuction[]保存了各個任務初始PC指針,其按任務ID(既優先級次序)順序保存
?? #endif
??
用戶只要定義好OS_MAX_TASKS,TaskFuction[],任務將自動運行。其中TaskA等為任務對應函數。
注意:ID為0的任務為最高優先級任務,系統運行后首先執行它。
(4)刪除任務
??? Small RTOS 1.00版不允許刪除任務,因此,每個任務必須為無限循環結構。
(5)任務睡眠
??? 任務可以調用OSWait()使自己睡眠,其原型如下:
???
??? unsigned char OSWait (unsigned char typ, unsigned char ticks);
?
??? 功能描述: 系統等待函數,任務調用此函數可以等待一定時間或信號
??? 輸入: typ: 等待事件類型,目前可以取以下值,或是其中任意個值的按位或
????????????? K_SIG: 等待信號
????????????? K_TM 等待超時???
???????? ticks : 等待超時時的系統節拍數
??? 輸出 : NOT_OK : 參數錯誤
????????? TMO_EVENT : 超時到
????????? SIG_EVENT : 有信號
??? 如果任務等待信號,另一個任務可以調用OSSendSignal()使其進入就
??? 緒狀態,其原型如下:
??
??? void OSSendSignal (unsigned char TaskId);
?
??? 功能描述: 中斷中給指定任務發送信號,既使指定任務就緒
??? 輸 入: TaskId : 任務ID
??? 輸 出: 無
??? 中斷調用OSIntSendSignal()也可以喚醒睡眠任務,其原型如下:
??
??? void OSIntSendSignal (unsigned char TaskId);
?
??? 功能描述: 任務中給指定任務發送信號,既使指定任務就緒
??? 輸 入: TaskId : 任務ID
??? 輸 出: 無
(5)優先級最低的任務
??? 優先級最低的任務必須一直處于就緒狀態,不允許調用OSWait;
(6)Small RTOS 51 任務特殊處由于
Small RTOS51 使用許可協議
復制、發布和修改的條款和條件:
(1)任何人可以免費獲取Small RTOS51 源代碼用于非商業目的而無需作者同意。一
旦您得到這些源代碼,表示您接受本協議。如果您不同意本協議,請銷毀它,或是將其退回
原購買處。
(2)任何人可以分發Small RTOS51 源代碼,條件是要完整分發,不能缺少任何一個
文件,目錄結構也不得改變,也不能修改它的任何部分,
(3)如果要將Small RTOS51 用于您的項目中,而您的項目有商業目的,您也無需支
付任何費用,但您必須將項目的簡要介紹、技術特點、應用范圍、Small RTOS51 的使用情
況等說明文字交給作者,聯系方法請閱讀readme.txt 文件。
(4)法律與本許可協議沖突的地區暫時不允許使用本產品。如果您確實需要,可以與作者
聯系。
沒有擔保
由于Small RTOS51 只是最終產品的程序的一部分,作者不提供任何類型的擔保。不
論是明確的,還是隱含的。包括但不限于合適特定用途的保證。全部的風險,由使用者來承
擔。如果程序出現缺陷,使用者承擔所有必要的服務、修改和改正的費用。
評論
查看更多