by Lin Danny | Sep 2, 2025 | Chinese
這幾個月我一直專注在 MProject 的 MCU 開發案。由於 MCU 的資源有限,記憶體管理就顯得格外重要。一開始我以為只要靠 C++ 的物件導向及 vector STL,就能避免 C 語言中大量指標與手動管理的麻煩;但實際上,STL 在 MCU 上容易造成記憶體碎片化,進而導致不可預期的異常。 最明顯的徵兆是:程式架構在運行前幾分鐘都很穩定,但無法長時間(數小時、數天)穩定運作,這往往代表架構本身有隱藏問題。每當遇到這類 bug,我的第一步就是檢查記憶體使用狀況。不過 MCU 沒有像 PC...
by Lin Danny | Aug 22, 2025 | OO
Just joined the company, ready to start my day by powering up the computer. As soon as I connected to the NAS network drive (Y drive), I realized all the data was gone! Oh no! The files had completely disappeared, and this is terrible—every crucial development file...
by Lin Danny | Aug 22, 2025 | Chinese
剛進公司,準備開啟電腦開始一天的工作,結果才一連上NAS網路磁碟(Y槽),發現裡面的資料竟然全都不見了?!天啊!檔案真的完全消失,這下糟了,開發中的所有重要資料全都放在上面! 當下腦袋一片空白,但還能保持一點冷靜。此時電話那頭還有一位貸款推銷員在熱情介紹他的「產品」,我勉強聽了十幾分鐘,最後還是果斷請他改天再打來。掛掉電話後,整理了一下思緒,開始思考救援辦法。 首先想到「冷儲存」硬碟裡的備份,趕緊查了一下,發現最新的備份資料是去年的。雖然不是最新,但至少還有一份,不至於全軍覆沒,心裡的壓力稍微減輕了一點,但風險還是有90%。...
by Lin Danny | Aug 20, 2025 | Chinese
先前已經大致介紹過硬體的開發過程,接下來想和大家分享軟體開發平台的選擇。其實這並不是唯一的選擇,但在當時的情境下,這是我認為最合適的做法。 SoC 的架構搭配 Armbian,就像我們常見的 Raspberry Pi 的環境,整體使用上與一般 PC 安裝 Debian 或 Ubuntu 沒有太大的差異。事實上,軟體環境與作業系統的結合,讓我們在開發時幾乎可以忽略底層硬體,因為整個軟體開發流程都能在各種平台上運行,即使 CPU 架構不同也不影響。 這次我選擇了 nodejs 作為主要開發平台。會選擇 nodejs,主要是受到...
by Lin Danny | Aug 18, 2025 | OO
M-EP1 This project has brought me many new insights. I want to use this blog post to record my thoughts and learning throughout the process, and hopefully provide some reference for friends who are interested in creation. The starting point was actually quite simple....