kk908676 (吳堉銨)
簡介
2025 Linux 核心設計 春季班 自我評量
1. 成果發表和貢獻
自評分數: 4
在這個部份我沒有做出實際的貢獻,雖然我的期末專題還有待更進一步優化的空間,但是還是能提供對於stm32開發版系列運行Linux有基本的參考。
2. 作業/隨堂測驗
自評分數: 7
- lab0-c: HackMD
- 2025q1 Homework2 (quiz1+2): HackMD
- 2025q1 Homework3 (kxo): HackMD
- 2025q1 Homework4 (quiz3+4): HackMD
- 2025q1 Homework5 (assessment): HackMD
在修課的前期都有準時的繳交,但是因為我很早就有自己理想的專題方向(stm32),花了較多的心思在那邊,因此沒有完成部分作業(kxo,ktcp),所以給自己減去一些的分數。
3. 期末專題
自評分數: 8
- 針對 Arm Cortex-M4 的移植和客製化 : HackMD
將 Linux v6.14.y 移植到 STM32F429i-Discovery 平台並客製化相關的軟體組成,包含探討 Arm Cortex-M4 開機流程、記憶體佈局、中斷處理機制、輕量級 boot loader、Linux 核心組態、rootfs 建構,和降低佔用的空間等客製化。
4. 與授課教師「一對一討論」的時間
自評分數: 8
- 一對一討論:5月1日 週四 下午2:00
- 提問: Cortex-M 沒有 MMU、中斷處理較精簡、Thumb2-only
- 測驗:Optimize
uClinux for ARM Cortex-M4
- 測驗延伸:探討「為何afboot-stm32的start_kernel.c只靠一行 kernel(0, ~0UL, DTB_ADDR) 即可載入並執行 Linux 核心」
- 線上問答 : youtube連結
- Arm Cortex-M 特性 (尤其和 A prorfile 相比)
- 在 Cortex-M 移植 Linux 的挑戰和潛在優勢 (如減少 MMU 的成本
- STM32/Linux-no-mmu 開機流程
- XIP 和相關記憶體佈局 (memory layout)
透過這幾次跟老師的對談,我深深的體悟到往往研究一個議題時我會盲目的做,而不是先了解問題背後代表的意義。若是沒有這個對談的機會,我相信我也不會發現自己的問題所在。
5. 修課心得
自評分數: 10
閱讀〈因為自動飲料機而延畢的那一年>後, 我最深刻的啟發是:實作與理論之間的落差,只有透過親手去做才能真正理解與克服。這不是一篇普通的專案紀錄,而是活生生地展現了「做中學」的精神。作者從一開始不熟機構與硬體,卻靠著不斷嘗試、測量、修正,最終做出一台能穩定運作的飲料機,這種靠意志力與工程思維支撐的歷程,對我來說非常震撼。 此外,我也學到如何在有限的時間與資源中,學會取捨與聚焦。像作者只保留加茶、加糖、加冰三項功能,就是一種「抓核心需求」的能力。這讓我明白,專案成功的關鍵不只是技術,還包含判斷力與決策能力。 最後,在團隊協作的層面我也受到啟發。每個人都在自己不熟的領域中學習、貢獻與支持彼此。這提醒我:一個好專案,往往來自一群願意互相補位、願意一起熬夜找答案的夥伴。
透過這次的課堂,我嘗試了閱讀開發板的SPEC、boot loader和linux相關github專案、借鑑和修改他人github專案來符合我的專案等等,初期花了非常大量的時間只為了”理解”其他人的做法,到了後期完全懂了後要修改成自己的東西,這個過程讓我學習到了非常多有關於軟體和硬體之間的溝通,為我之後理解相關領域的知識種下了很好的基礎。
自我評量 (1 ~ 10)
- 計算方式: \(1 +
floor(GEOMEAN)\)
- \(GEOMEAN: \sqrt[5]{4*7*8*8*10} =
\sqrt[5]{17,920} = 7.09\)
- 最終成績: 1 + 7 =8
