嵌入式 C:可重複使用模組和單元測試

使用 Unity 和 Ceedling 建立可重複使用的嵌入式 C 模組,並透過基於主機的單元測試驗證韌體。

從這 2.5 小時的課程,你會學到

  • 設計具有清晰 API 和可預測行為的可重複使用嵌入式 C 模組
  • 使用 Unity 和 Ceedling 建立基於主機的測試工作流程
  • 在主機上編寫並執行嵌入式 C 程式碼的單元測試
  • 實作核心嵌入式元件,包括環形緩衝區、佇列和事件分發器
  • 使用事件驅動設計和表驅動狀態機構建立嵌入式系統
  • 將模組整合到具有工作應用程式循環的完整事件驅動系統中
  • 使用靜態記憶體分配建構確定性系統
  • 透過全面的單元測試驗證行為並處理邊界情況
  • 將這些模式應用於實際的嵌入式用例,例如驅動程式、日誌記錄和通訊系統

要求

  • 具備C語言程式設計基礎(函數、指標、結構體)
  • 熟悉嵌入式系統概念(例如中斷、週邊或韌體結構)
  • 有使用頭檔/原始檔和模組化C程式碼的經驗

課程說明

本課程包含人工智慧的應用。

(僅用於輔助視覺效果,例如幻燈片佈局。所有教學內容、代碼和講解均由講師創作。)

課程描述

大多數嵌入式系統起初都很簡單,但很快就會變得難以測試、擴展和維護。

本課程著重於透過建立可重複使用的嵌入式 C 模組使用基於主機的單元測試對其進行驗證來解決這些問題。

課程內容

您將建立一組實用的嵌入式元件,並了解它們如何在一個清晰的事件驅動系統中協同工作。

重點內容:

  • Reusable design
  • Predictable behavior
  • Proper verification

所有測試均在主機上使用 Unity 和 Ceedling 完成,因此您無需硬體即可驗證韌體邏輯。

您將建立的內容

在整個課程中,您將使用核心嵌入式建置模組,包括

  • 位元( Bit )和暫存器欄位( register field )輔助函數
  • 環形緩衝區(確定性、串流安全)
  • 固定大小佇列(無動態分配)
  • 事件分發器(ID 到處理程序的路由)
  • 基於表的有限狀態機
  • 整合事件驅動型迷你系統

每個模組包含:

  • 靜態分配
  • 確定性
  • 經過邊界狀況測試
  • 設計用於復用

測試方法

每個組件都會在主機上透過單元測試進行驗證。

這包括:

  • 驗證正常行為
  • 處理極端情況
  • 測試故障條件
  • 驗證組件間的整合

您也會看到用例式測試和系統級流程,從而清楚地了解每個元件在實際應用中的運作方式。

本課程的獨特之處

這不是一門「跟著程式碼打」的程式設計課程。

課程重點在於:

  • 理解實際應用
  • 正確地測試系統行為
  • 了解系統中各個組件的互動方式

目標不僅是編寫程式碼,更是建立可重複使用且值得信賴的元件。

為什麼基於主機的測試至關重要

大多數嵌入式邏輯並不需要硬體進行驗證。

透過在電腦上進行測試,您可以:

  • 加快迭代速度
  • 儘早發現異常狀況
  • 在部署前提升程式碼品質

這種工作流程在專業嵌入式開發中被廣泛使用,但在傳統課程中卻常常缺乏。

您將收穫什麼

完成本課程後,您將能夠:

  • 設計具有簡潔 API 的可重複使用嵌入式 C 模組
  • 使用事件驅動模式建立韌體
  • 使用 Unity 和 Ceedling 編寫並執行單元測試
  • 在主機上驗證行為,包括邊界情況
  • 將組件整合到完整的工作系統中

目標受眾

  • 希望改進程式碼結構、提高程式碼復用性和可測試性的嵌入式 C 開發人員
  • 希望在不依賴硬體的情況下對韌體進行單元測試的開發人員
  • 建構使用佇列、狀態機或事件驅動設計的系統的工程師

講師簡介

Kevin Aguilar 嵌入式軟體工程師

具備豐富的嵌入式軟體開發經驗,擅長工業系統、電氣保護產品、電動車充電和工業物聯網設備的韌體開發。

我的經驗涵蓋 ESP32、STM32、dsPIC、連接性、驅動程式和嵌入式應用開發。

我主要使用 C 語言開發基於微控制器的系統,並樂於透過專案和教學分享嵌入式系統的實用知識。

我創建這些課程旨在透過實際案例和動手開發,幫助他人學習嵌入式系統。

字幕:英文

  • 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To

  • Udemy 永久擁有課程 NT310 起特價中點擊看優惠)
  • 年訂閱每月 NT350 🌈悠遊 Udemy 的 28000+ 門課,最大化學習 ( 原價 NT635/月 )
  • Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
  • 手機上點選優惠連結看到的價格比電腦上看到的貴
  • $代表當地貨幣, 如在台灣為 NT
  • 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現

報名參加課程

Sponsored by Udemy


也許你會有興趣

不受 FB 演算法影響,歡迎透過 e-mail 訂閱網站更新

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

由 WordPress.com 建置.

Up ↑

探索更多來自 Soft & Share 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

繼續閱讀