COSCUP 2023

Your locale preferences have been saved. We like to think that we have excellent support for English in pretalx, but if you encounter issues or errors, please contact us!

Tenok: 打造用於機器人控制的微型即時作業系統
2023-07-29, 15:30–16:00 (Asia/Taipei), TR 412-1
Language: Traditional Chinese (Taiwan)

Tenok (在阿美族語中意指 Kernel) 是一個支援 ARM Cortex-M 架構、6000行左右、目標應用為機器人控制 (Robotics) 以及物聯網 (Internet of Things) 的實驗型微型即時作業系統。本專案是由講者所開發之專案,希望與聽眾分享關於作業系統開發的細節以及經驗。


Tenok 一詞在阿美族語中表示核心 (Kernel),其啟發自成大資工系師生於2013年所創作的 rtenv / rtenv+,後者被用於成大資工嵌入式系統系列課程中作為教材。原先 Tenok 只是用於學習及重現 rtenv,但目前已強化了部分 rtenv 設計,可視為另一個作業系統開發的參考案例。

Tenok 亦參考了 mini-arm-os 以及 FreeRTOS,相較 rtenv 有較完整的資源管理功能,且檔案系統基於 inode 邏輯,更加貼近於真實作業系統的設計。另外也包含了一個支援自動補齊、歷史檢索以及數個快捷鍵功能的 Shell 文字互動界面。

以下為 Tenok 的主要特徵以及功能:

  • POSIX 風格的 API
  • 同步機制: Spinlock, Mutex, Semaphore
  • 行程間通訊 (IPC): FIFO (Named pipe), Message Queue
  • 支援浮點數運算單元 (Floating-point Unit, FPU)
  • 內建 Shell 的使用者文字互動介面
  • 簡單的 rootfs 及 romfs 的檔案系統實做
  • 可用 Metalanguage 定義除錯封包 (Debug messaging) 並進行即時資料繪圖 (Real-time plotting)
  • 整合 MAVLink 通訊協議連接既有的 Open-source 軟體生態

GitHub 連結: https://github.com/shengwen-tw/tenok


Difficulty

中階

Target Audience

對嵌入式系統、作業系統有興趣的聽眾,建議對作業系統及計算機組織有基礎認知

畢業自陽明交通大學 (機器人碩士學程,2021年) 及靜宜大學 (資訊工程系,2019年),主要興趣為機器人系統、嵌入式系統以及即時作業系統。曾參與開源四軸飛行器韌體開發 (UrsusPilot,因主要成員創業,已轉為閉源) 及小型實驗型自駕車系統設計 (Puyuma,基於電腦視覺及 Real-time Linux),熟悉機器人控制以及導航,更詳細的介紹可見: http://wiki.csie.ncku.edu.tw/User/shengwen