系列

F0: 使用CortexM0內核 F1, F2: 使用CortexM3內核 F3, F4: 使用CortexM4內核

整體而言,越往上性能越高。

命名法

格式: STM32 F103 XYZW

X: 引腳數
Y: ROM容量
Z: 封裝方式
W: 工作溫度範圍

ROM容量代表字符:
6-32KB
8-64KB
B-128KB
C-256KB
D-384KB
E-512KB
F-768KB
G-1024KB

ROM容量為16~32K就是LD
64K~128K的就是MD
256~512K的就是HD

參考資料:彥林實驗筆記

FreeRTOS

FreeRTOS 是一個相對其他作業系統而言較小的作業系統。最小化的 FreeRTOS 核心僅包括 3 個 .c 文件(tasks.c、queue.c、list.c)和少數標頭檔,總共不到 9000 行程式碼,還包括了註解和空行。一個典型的編譯後 binary(二進位碼)小於 10 KB。

FreeRTOS 的程式碼可以分為三個主要區塊:任務通訊硬體界面

任務 (Task):

FreeRTOS 的核心程式碼約有一半是用來處理多數作業系統首要關注的問題:任務,任務是擁有優先權的用戶所定義的 C 函數。task.c 和 task.h 負責所有關於建立、排程和維護任務的繁重工作。

通訊 (Communication):

任務很重要,不過任務間可以互相通訊則更為重要!它帶出了 FreeRTOS 的第二項議題:通訊。FreeRTOS 核心程式碼大約有 40% 是用來處理通訊的。queue.c 和 queue.h 負責處理 FreeRTOS 的通訊,任務和中斷(interrupt)使用佇列(佇列,queue)互相發送數據,並且使用 semaphore 和 mutex 來派發 critical section 的使用信號。

硬體界面:

有近 9000 行的程式碼組成基本的 FreeRTOS,這部份是與硬體無關的(hardware-independent),同一份程式碼在不同硬體平台上的 FreeRTOS 都可以運行。大約有 6% 的 FreeRTOS 核心代碼,在與硬體無關的 FreeRTOS 核心和與硬體相關的程式碼間扮演著墊片(shim)的角色。我們將在下個部分討論與硬體相關的程式碼。[#]_

用 cloc 統計 FreeRTOS 8.0.0 的 include/ *.c portable/GCC/ARM_CM4F/ 等目錄,可得不含註解、空白行的行數為 6566,而統計與平台有關的部份 (portable/GCC/ARM_CM4F/ 目錄),則是 435 行。計算可得: 435 / 6566 = 0.06625 = 6%,與描述相符,但原本的 9000 行是指含註解的說法 (實際為 8759 行)

參考資料:成大資工wiki

results matching ""

    No results matching ""