熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 告別內(nèi)存焦慮!最適合小RAM MCU的RTOS,來了!

告別內(nèi)存焦慮!最適合小RAM MCU的RTOS,來了!

作者:嵌入式芯視野 時間:2025-07-15 來源:今日頭條 收藏


 是一個面向小內(nèi)存嵌入式系統(tǒng)(如 8KB RAM MCU)的輕量級、協(xié)作式 RTOS,它的最大特點是 共享棧技術。以下是對你提供內(nèi)容的整理和總結(jié),方便你理解和介紹該操作系統(tǒng):


什么是 ?

 是一個簡潔、高效的 協(xié)作式內(nèi)核 RTOS(非搶占式),專門為 RAM 極其緊張的嵌入式平臺設計,尤其適用于 8KB~20KB RAM 的 MCU。

核心理念:

  • 簡單

  • 易用

  • 極低資源占用

  • 強調(diào)開發(fā)友好性


為什么開發(fā) BasicOS?

背景項目:

在開發(fā) BasicOS 之前,作者曾開發(fā)過 EventOS 和 EventOS Nano,它們以 事件驅(qū)動、控制反轉(zhuǎn)、OOP 等理念為核心,雖然資源占用極低,但 上手難度較高。

問題:

  • 很多嵌入式工程師難以掌握事件驅(qū)動模型

  • 閱讀和維護事件驅(qū)動代碼成本較高

  • RTOS 占用 RAM 高,不適用于小 RAM 芯片

解決方案:

借助網(wǎng)友“光哥”的建議,作者引入了 “共享?!奔夹g,在協(xié)作式 RTOS 模型下大大節(jié)省內(nèi)存。


什么是共享棧?

傳統(tǒng) RTOS:

每個任務分配獨立棧空間,占用大量 RAM。

BasicOS:

所有任務共享一個物理棧區(qū),在任務切換時:

  1. 收縮并保存 當前任務的堆棧

  2. 擴展并恢復 下一個任務的堆棧

特點:

  • 顯著節(jié)省 RAM

  • 切換過程多了內(nèi)存復制,犧牲了一點性能

  • 適合任務數(shù)少、對實時性要求不高的系統(tǒng)


為什么使用協(xié)作式內(nèi)核?

協(xié)作式(Cooperative)特點:

  • 任務主動釋放 CPU

  • 沒有資源競爭問題

  • 調(diào)試簡單,邏輯可控

相比搶占式(Preemptive):

  • 并發(fā)問題更少

  • 更適合大多數(shù)非硬實時系統(tǒng)

  • 響應時間可達 <10ms,足以滿足大部分產(chǎn)品


BasicOS 的技術特點

特性

描述

協(xié)作式調(diào)度

無搶占,任務必須主動讓出 CPU

共享任務棧

多個任務使用一個棧區(qū),降低 RAM 占用

Export 機制

每個任務只占用 16 字節(jié)內(nèi)存,通過 bos_task_export 宏定義任務

不支持 FPU

為降低占用,默認不支持浮點運算,需在 MDK 中關閉 FPU 配置

可擴展基礎設施

支持加入消息隊列、信號量等 RTOS 基礎設施

計劃與 EventOS 結(jié)合

將事件驅(qū)動與共享棧線程模型結(jié)合,提升系統(tǒng)靈活性

CMSIS-RTOS 適配中

支持 CMSIS 標準,計劃加入 eLab 平臺


示例代碼

主函數(shù)初始化:

int main(void){
   bsp_init(); // 初始化外設

   static uint8_t stack[4096];
   basic_os_init(stack, sizeof(stack));  // 初始化 BasicOS(分配共享棧)
   basic_os_run();                       // 啟動 BasicOS

   return 0;
}

任務定義方式(通過宏導出):

static void task_entry_led(void){    while (1)
   {
       bos_delay_ms(500); // 任務延遲
       bos_delay_ms(500);
   }
}

bos_task_export(led, task_entry_led, 2, NULL); // 注冊任務,優(yōu)先級為2

SysTick 中斷(用于系統(tǒng)心跳):

void SysTick_Handler(void){
   bos_tick(); // 系統(tǒng)時間推進}

項目目錄結(jié)構說明

路徑

說明

BasicOS/basic_os.c

內(nèi)核核心實現(xiàn)

BasicOS/basic_os.h

內(nèi)核頭文件

01_basic_os_iar/

針對 IAR 的 Cortex-M0 示例

02_basic_os_mdk/

針對 MDK 的 Cortex-M0 示例


總結(jié)

BasicOS 是一個非常適合 極小 RAM 嵌入式平臺 的協(xié)作式操作系統(tǒng),它通過共享任務棧技術,將任務切換的 RAM 成本壓縮到極致,適合低資源、低實時性需求的項目。它的出現(xiàn),為那些無法使用主流 RTOS 的 MCU 提供了新思路。

開源網(wǎng)站:
https://gitee.com/event-os/basic-os



關鍵詞: BasicOS

評論


技術專區(qū)

關閉