嵌入式系統、硬體等常會用到位元遮罩(bitmasking),讓我們得以調整指定位元內容而不影響其他位元,這篇文章就來看要如何透過 &、|、^、~、<...
雖然單看各位元運算子好像不難,實際應用在題目上還是很有挑戰。本篇透過 Leetcode 第 371 題、也是 Blind 75 的其中一題:Sum of Two...
不少 C++ 的教學文都會拿 Lambda 表達式(Lambda expression)當範例,這是從 C++ 11 標準中開始出現的寫法,本篇就來快速看過什麼...
中斷(interrupt)指的是讓 CPU 暫停手上的工作,先處理優先等級更高的項目,而中斷時期的工作都由「中斷服務常式(Interrupt Service R...
「迴圈」要在條件判斷為 true 時才會執行,例如 for 迴圈的: for (int i = 0; i < 5; i++) {...
這篇文章的主題比較瑣碎,我們將一同探討幾個在嵌入式系統中,有關硬體資源配置要留意的細節。 位元數寫死 現在要令一個無號整數變數為 0,寫法如下: unsigne...
執行緒(thread)是個非常重要的觀念,在實際操作前,先來了解不同名詞之間的關係。 程式(program):指的是「靜態」程式檔案,尚未被執行。 行程/程序...
Day 14 跟 Day 17 介紹了「中斷」與「多執行緒」,其實就是為本篇的內容:volatile 鋪陳。 volatile 關鍵字的意義為「這個變數可能隨時...
Day 18 的文章提到 volatile 的意義是告訴編譯器不要讀暫存器上的快取值,因為該變數值隨時可能被外部改變。 這包含以下三種情況: 使用硬體暫存器...
之前就有學過物件導向程式設計(OOP)的「觀念」,但一直沒有認真看相關的程式碼,現在就來透過 C++ 程式碼,搞懂 OOP 是怎麼實現的。 類別 class 與...