行頻率,即 98MHz,同時定時器使用 CPU 運行頻率的 12 分頻,即 8MHz;
TINIUX 操作系統 ticks 運行頻率通過預置文件“OSPreset.h”中的宏定義 SETOS_TICK_RATE_HZ 來配置。在系統啟動時,通過 FitCPU.c 文件中的 FitSetupTimerInterrupt()函數,配置芯片指 定的寄存器,使系統時鐘(中斷)參數生效;
注:在官方示例中,我們通常配置 ticks 頻率為 1000Hz,這個 ticks 頻率主要便于對系統的性 能測試;對于運行主頻不高的 MCS‐51 單片機系列,適當降低 TINIUX 系統 ticks 頻率,運行 效率會更高。
5.3 TINIUX資源配置
‐對于嵌入式系統來說,內存都是比較寶貴的資源,因此一般的程序都會嚴格管理內存使用, TINIUX 也一樣,需要使用多大的內存,可以根據實際的 task 數量、信號量、互斥鎖、timer、 消息隊列、鏈表等內容的數量來決定的(根據各自的結構體大小以及數量計算),總的內存 池的大小由系統宏定義 OSTOTAL_HEAP_SIZE 來確定。
‐TINIUX 中的內存使用可以通過參數預置文件“OSPreset.h”進行配置。在系統預置文件中使 用宏定義SETOS_TOTAL_HEAP_SIZE 來確定內存池的大小,并以此來管理任務、信號量、消息 隊列等等資源的創建。
‐對于 MCS‐51 單片機,運行效率高的 RAM 空間一般在 256 字節,擴展的 XRAM 空間會稍大, TINIUX 系統在啟動時,處于掛起及休眠狀態的任務或分配到 XRAM 空間,只有當前運行的任 務會分配到 RAM 空間。同時為了減少對 XRAM 空間的占用,推薦裁剪掉信號量、互斥鎖、 timer、消息隊列等功能模塊,只啟用系統內輕量級的同步信號與同步消息功能。
6 移植其他內核的芯片
‐ 目前 TINIUX 官方已經支持 MCS‐51/8051 8052 等系列的芯片,用戶若需移植 TINIUX 到其他 內核的芯片時,需要在 CPU下添加一個芯片所屬系列的目錄,并且在該新增加的目錄下添 加 FitType.h、FitCPU.h、FitCPU.c 等文件,或根據開發平臺(SDCC,keil,IAR 等)的要求, 添加相應的匯編文件。FitType.h 文件主要根據平臺的特點定義 TINIUX 系統的數據類型, FitCPU.c 文件主要定義系統 ticks 中斷,SVC 中斷,中斷鎖定,task 調度及調度時寄存器的保 存與恢復等。
‐ 目前 TINIUX 官方適配了 MCS‐51/8051 8052 等系列的芯片移植文件,其中 8051 系列的移植 文件使用了傳統 51 定時器Timer0 的模式 1,具有 16 位寬,但無法自動重載,系統會自動 根據 ticks 頻率設置 timer0 重載起點。此種定時器模式的優點是適用于大多數 51/52 等系列 的單片機,但是會導致系統時間漂移。目前很多芯片生產廠商都優化了 Timer0 的功能,若 具有 16 位寬并且具有自動重載的模式,建議用戶配置使用,或者使用其他 Timer 定時器。
‐ 目前 TINIUX 官方提供的 8052 芯片移植文件使用了 52 單片機中標準的 Timer2 定時器,具有 16 位寬,并且具備自動重載功能,這樣系統 ticks 精度會更高;只是在配置 Timer2 時使用了 C8051 等芯片特有的寄存器“SFRPAGE”,若用戶使用的平臺具有 52 單片機標準的 Timer2定時器,卻沒有“SFRPAGE”寄存器,則可以直接注釋掉對該寄存器的配置再使用。
7 其他說明
‐ 對于 RAM 較小的芯片,請參照參數預置文件“OSPreset.h”中的注釋進行適當調整,通過 宏定義關閉不必要的功能模塊,否則有可能會出現編譯失敗的問題。
‐ TINIUX 官方網站提供了一些已經創建好了的示例工程,移植到新的開發板(芯片)時可參考 這些示例工程。