contributed by < hugo0406 >
在閱讀完因為自動飲料機而延畢的那一年,我深受啟發。對於文章作者勇於嘗試、不願放棄的精神感到敬佩,從一開始的滿腔熱血,過程中的不斷自我懷疑之後做出延畢的決定,最後做出成果。若是換成一般人,可能會迫於現實的壓力而放棄。
人們往往會被迫妥協,我也深受其害。回想起大學求學階段時,一開始非常鄙視只會看考古題而不認真上課、不願啃原文書的人,認為學習沒有捷徑可言,直到過了幾次考試,學習心態發生改變,我花了大量時間在啃原文書,然而考試成績與那些考前一天只瘋狂刷考古題的人卻相差不大,感受到心態上的不平衡,漸漸地我也同流合污,依賴考古題,只注重考試會考的來應付考試,享受低成本高報酬的快感而沾沾自喜,隨著大學將近四年這樣的學習心態也讓我與他人的差距越來越大。
一開始非常猶豫要不要修 Linux 核心實作 這門課,因為這堂課是出了名的硬,要花費大量的心力及時間。在聽了老師第一堂課程介紹後,首先就是要誠實面對自己,想到過去大學的自己不求甚解,學的不夠扎實,那就趁這個機會,把基礎打好,改變自己的學習態度,就頭鐵決定修下去。
修了這堂課的這幾週,深刻的體會到為大學的不努力而買帳,不論是在理解教材或是寫作業上都非常吃力,指定進度嚴重落後,與大部分學員的進度也落差很大,常常看不懂教材,想了半天也想不出個所以然,隨著每次的卡關,常常有退選的念頭出現,看了這系列的文章及同儕的鼓勵,有了動力。
前陣子在翻閱 The Linux Programming Interface 這本書的時候,對第七章 Memory Alloctian 的主題感到興趣,花了一些時間把第七章閱讀完,因此想做跟 Memory 相關的專案
〈每位程式開發者都該有的記憶體知識〉翻譯和校訂
實作高效記憶體配置器
Verify it by checking the installed version :
stlink
is an open source toolset to program and debug STM32 devices and boards manufactured by STMicroelectronics.To verify the successful installation
minimal Linux config
Menu Config
When I try to menu config, but got some error message
libncurses5-dev need
to be installed before compiling the kernel
Error Message:
參考,似乎是 GCC 版本太新所造成的問題
解決方法:
https://hackmd.io/@cychen/linux-final
Boot loader 存在必要?
XIP image => 1.8MB
boot loader 責任是初始化 memory controller, flash controller, 和相關周邊,之後再載入 Linux 核心
TODO: 確保 u-boot 正確編譯、用 st-link 燒錄成功,且在 STM32F429-Discovery 執行 u-boot (可見命令提示)
TODO: 確認 u-boot 支援的 Linux image 格式 (Image, uImage, zImage),偏好用 XIP
TODO: 在 u-boot 載入 Linux image (from flash),輸入正確的 boot cmd (boot args)
non-XIP: load everything from Flash to RAM and then execute programs on RAM (佔用較多的記憶體)
XIP : load data from Flash to RAM and then execute program on Flash + RAM (data section)
https://www.kernel.org/doc/Documentation/nommu-mmap.txt
uClibc : libc used for mmu and no-mmu