原创 嵌入式C語言自我修養 07:地址對齊那些事兒

7.1 屬性聲明:aligned GNU C 通過 attribute 來聲明 aligned 和 packed 屬性,指定一個變量或類型的對齊方式。這兩個屬性用來告訴編譯器:在給變量分配存儲空間時,要按指定的地址對齊方式給變量分配地址。如

原创 嵌入式C語言自我修養 09:鏈接過程中的強符號和弱符號

9.1 屬性聲明:weak GNU C 通過 attribute 聲明weak屬性,可以將一個強符號轉換爲弱符號。 使用方法如下。 void __attribute__((weak)) func(void); int num __a

原创 嵌入式C語言自我修養 08:變參函數的格式檢查

8.1 屬性聲明:format GNU 通過 attribute 擴展的 format 屬性,用來指定變參函數的參數格式檢查。 它的使用方法如下: __attribute__(( format (archetype, string-inde

原创 嵌入式C語言自我修養 05:零長度數組

5.1 什麼是零長度數組 顧名思義,零長度數組就是長度爲0的數組。 ANSI C 標準規定:定義一個數組時,數組的長度必須是一個常數,即數組的長度在編譯的時候是確定的。在ANSI C 中定義一個數組的方法如下: int a[10]; C9

原创 嵌入式C語言自我修養 04:Linux 內核第一宏:container_of

4.1 typeof 關鍵字 ANSI C 定義了 sizeof 關鍵字,用來獲取一個變量或數據類型在內存中所佔的存儲字節數。GNU C 擴展了一個關鍵字 typeof,用來獲取一個變量或表達式的類型。這裏使用關鍵字可能不太合適,因爲畢竟

原创 嵌入式C語言自我修養 13:總結

13.1 總結 前面12節的課程,主要針對 Linux 內核中 GNU C 擴展的一些常用 C 語言語法進行了分析。GNU C 的這些擴展語法,主要用來完善 C 語言標準和編譯優化。而通過 C 標準的發展過程我們又發現,對於一些編譯器擴展的

原创 第02節:Linux 內核驅動中的指定初始化

2.1 什麼是指定初始化 在標準 C 中,當我們定義並初始化一個數組時,常用方法如下: int a[10] = {0,1,2,3,4,5,6,7,8}; 按照這種固定的順序,我們可以依次給 a[0] 和 a[8] 賦值。因爲沒有對 a[9]

原创 第01節:Linux 內核中的 C 語言語法擴展

1.1 Linux 內核驅動中的奇怪語法大家在看一些 GNU 開源軟件,或者閱讀 Linux 內核、驅動源碼時會發現,在 Linux 內核源碼中,有大量的 C 程序看起來“怪怪的”。說它是C語言吧,貌似又跟教材中的寫法不太一樣;說它不是 C

原创 跟濤哥一起學嵌入式第12集:關於 apt-get 軟件安裝那些事兒

對於很多linux/ubuntu新手來說,要想在Ubuntu系統上熟練地安裝、升級、卸載軟件,確實是挺考驗人的一件事,會遇到各種各樣的問題,有時候會把人搞得很不耐煩,打擊人的學習積極性。Ubuntu一般使用apt-get命令 (ubuntu

原创 跟濤哥一起學嵌入式第11集:一個實現鎖機制非常有意思的宏

QQ羣(宅學部落)有位學員問了一個很奇怪的宏,覺得很有意思,特拿來分享,它的定義如下: 我們知道,宏定義其實就是爲了方便,給一串代碼字符串定義一個別名。有時候字符串過於複雜,我們可以分多行書寫,然後使用邏輯連接符“\”連接起來,表示一個完

原创 《嵌入式工程師自我修養》系列教程發佈更新

第00步:C語言基礎學習及項目訓練C語言零基礎學習視頻教程:C語言那些事兒C語言實戰之學生成績管理系統第一步第01步:Linux三劍客Linux三劍客視頻教程使用QEMU搭建嵌入式U-boot+Linux+NFS開發環境嵌入式軟件調試專題第

原创 跟濤哥一起學嵌入式第06集:後ARM時代,嵌入式工程師的自我修養

大家好,我是濤哥,今天我們繼續聊一聊嵌入式的學習,由於最近比較忙,就把以前寫的一篇文章重新發給大家,裏面談到的一些學習方法和學習經驗,還是很值得參考一下的。1嵌入式學習的一些概念理解誤區很多嵌入式初學者認爲,學嵌入式,就是學習ARM,就是學

原创 跟濤哥一起學嵌入式第07集:GNU/Linux和Linux有什麼區別?

GNU、GNU/Linux、Linux 之間到底是什麼關係?什麼是自由軟件?什麼是GPL協議?什麼是自由軟件基金會?什麼是GNU恥辱榜?有多年開發經驗的Linux工程師,估計也沒怎麼關注過這些問題。今天就以自由軟件發展的角度,給大家科普一下

原创 跟濤哥一起學嵌入式第10集:關於校招,應屆生都應該看一看

金九銀十,是應屆生求職的黃金時期。每年這個時候,各大企業、名企一般都會到校園去做各種宣講、面試招聘。對於大部分應屆生來說,通過校園招聘渠道,找到一份靠譜工作的概率遠遠勝過社會招聘。然而很多應屆生卻對校招的重視度不夠、準備不充分,結果跟一些好

原创 跟濤哥一起學嵌入式第09集:ARM啓動過程中你不知道的小祕密

學過嵌入式、玩過開發板的同學可能都知道這些常識:我們的ARM開發板有多種啓動方式,可以從NORFlash啓動、可以從NANDFlash啓動、也可以從SD卡啓動。當系統上電後,ARM會從U-boot啓動,然後U-boot將自身代碼拷貝到內存D