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