?? readme.txt
字號:
rtCell 實時微內核-具有下列功能:
1. 完全搶占的實時微內核結構,獨立的內核棧,中斷和系統調用均切換到內核棧執行;
2. 256(64、32)個優先級,0為最高優先級(系統保留),256(64、32)為空閑優先級;
3. 不同優先級任務完全搶占,同優先級之間可按先進先出或時間片輪轉方式執行;
4. 在一系統(定時器服務)任務中實現內核定時器,用于超時等待內核對象、周期性定
時器、任務延遲、一次定時(此時需定義一超時后執行的過程);此服務任務的優先
級由其客戶任務的最高優先級驅動,隨之動態改變,以消除隱式優先級反轉現象;
5. 提供任務(Task)、互斥鎖(Mutex)、信號量(Semaphore)、位域標志(Flag)、
定時器(Timer)、優先級消息(Message)和環形隊列(Ring buffer)內核對象;
6. 任何內核對象用一整數ID標識,而非指針,從而可避免用戶任務野指針的副作用,內
核對象總數不超過61440(即60K);
7. 互斥鎖支持優先級繼承和優先級置頂協議,在創建時設置該協議,且總按優先級等待,
優先級繼承協議時僅支持同一互斥鎖的嵌套調用,優先級置頂協議還可支持不同互斥
鎖的多次嵌套調用;
8. 其它對象的等待方式有:優先級等待和先進先出(節省內存)等待,在創建時設置;
9. 內核數據的同步,除在任務切換,及任務和內核之間切換堆棧時暫時關中斷外,其它
地方均以延遲過程調用(DPC)方式執行;
10. 任務對象支持異步過程調用(Window用語APC,相當于UNIX中的信號機制),從而可
引導任務異步的執行一個過程(前提是任務棧不小于1024字節),此過程將在該任務
下次被調度時執行;
11. 刪除避免機制,擁有互斥鎖的任務及處于占有狀態的互斥鎖均具有防止被刪除的機制,
要刪除擁有互斥鎖的任務必須自行終止或調用任務終止函數,而要刪除任一個互斥鎖
則必須先使其處于空閑狀態,即沒有任何任務占有此互斥鎖,否則禁止刪除;
12. 對象命名機制,同類內核對象可用唯一的名稱標識來獲取其ID,達到引用目的。
13. 在內核中實現了中斷的進出接口,因此用戶中斷處理只需寫標準的C函數,而不必關
心中斷底層處理的細節;
14. 系統調用以陷阱指令(x86中int指令)實現,易于擴展到“內存保護”的進程模式;
15. 在內核庫之外提供了一個簡單的堆內存分配機制,用于內核對象動態內存分配時調用;
16. 支持毫秒級定時器,內核定時器周期為一毫秒;
17. 支持 X387/287 硬件浮點協處理器的任務狀態保護,被動方式的任務浮點狀態切換(開
中斷執行,由于使用了特權指令實現,因此只能在純DOS實模式下或虛擬機X386/X387及
后續機型上執行,而無法在Windows的DOS窗口中運行)。
giCell 視口裁減及消隱處理引擎-功能如下:
1. 完善而精巧的多視口裁剪和消隱處理引擎,與微內核rtCell緊密結合;
2. 真正的事件(或消息)驅動的多窗口(視口)技術,支持頂層窗口和透明窗口的顯示和
裁剪處理;
3. 當前支持Label、Edit、Botton、Slider、Listbox、TreeView和Checkbox控件,其中的
Edit控件支持剪切、復制和粘貼(ctrl+x,ctrl+c,ctrl+v);
4. 支持窗口的平移、縮放,光標切換和窗口系統按鈕,及窗口和控件的過程回調;
5. 基于透明視口(或窗口)的裁剪和消隱處理,可生成任何非矩形(多態)窗口,本示例
中的三角形窗口就是基于透明視口來實現的;
7. 支持圖形內存設備(GDC),有效避免窗口重繪時閃爍,易于實現視頻及動畫處理;
6. 內存需求小,窗口和控件的缺省狀態均不使用GDC(而是采用直接屏技術),所耗內存小,
因此實用性強,包括rtCell調度器、鼠標、鍵盤及圖形驅動的庫文件在DOS下僅77K。
關于可文件Engine.lib和mcOutLib.obj:
1. 考慮到DOS內存的限制,庫文件Engine.lib中的rtCell內核僅支持32個任務優先級(因為
優先級隊列太占用內存),這樣即使在640K內存下,也可創建上數百個內核及GUI對象,可滿
足一定規模的應用程序要求;
2. 庫文件mcOutLib.obj是目錄giCell\mcOSLib下文件的編譯結果,用于處理任務的浮點協
處理器(硬件)狀態切換,任務浮點數狀態初始化,內存分配,信息顯示等操作(主要用于
內核),用戶也可自己編譯giCell\mcOSLib目錄下的文件,注意:Borland C/C++ 3.1可能無
法識別其中的某些浮點數操作指令;
3. 文件MAIN.C是對Engine.lib使用的具體實例,在Borland C/C++ 3.1中編譯時必須打開X
387/287選項和C函數參數傳遞約定,此文件還對任何使用透明窗口來生成非矩形窗口,以及
如何使用GDC生成動畫進行了演示;
4. 注意其中的一些執行順序:浮點數操作不得放到回調函數中執行,而只能在其它任務中
執行(可從回調函數中向其它任務發送消息來實現),否則程序將進行無限循環;
5. 因為浮點協處理器的任務狀態切換機制使用了特權指令,所生成的可執行文件只能在純
DOS實模式下或虛擬機X386/X387及后續機型上執行,而無法在Windows的DOS窗口中運行;
6. 由MAIN.C所生成的可執行文件在AMD機器DOS實模式、X86虛擬機qemu-0.9.0-windows以及
Bochs-2.1.1下均執行良好,注意:生成的可執行文件依然是16位實模式。
壓縮文件C_lib.rar中包含窗口及其子控件的源代碼,演示文件MAIN.C和DateTime.c,以及
一個專用于Borland C/C++ 3.1的工程文件。
聯系郵件:taowentao_twt@163.com, taowentao_twt@sohu.com
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -