原创 《嵌入式工程師自我修養》系列視頻教程 更新進度

《嵌入式工程師自我修養》視頻教程自學路線:視頻教程路線主頁專題課程《Linux三劍客》套餐教程《從小白到Makefile專家視頻教程》《零基礎學習C語言及項目實戰視頻套餐》第00步:C語言基礎學習及項目訓練C語言零基礎學習視頻教程:C語言那

原创 跟濤哥一起學嵌入式 第05集:一道程序改錯題,測出你的嵌入式功底

大家好,歡迎閱讀《跟濤哥一起學嵌入式》第05集,我們今天討論一下中斷的基本概念。 中斷,是嵌入式開發中經常使用的一個功能,也是嵌入式工程師必須要掌握的一個概念:CPU和外設通信時,一般都採用中斷的形式異步通信,可以大大提高CPU資源的利用率

原创 跟濤哥一起學嵌入式 第03集:嵌入式要從u-boot移植學起?

大家好,我是濤哥,歡迎閱讀《跟濤哥一起學嵌入式》第3集。俄羅斯仲夏夜,世界盃依舊如火如萘。球場上,夕陽下,梅西沒落的身影、C羅的黯淡離場,並沒有打擊大家太多的熱情。戰火依舊,老兵不死,梅羅時代是否快要終結?然而新一代巨星冉冉升起,風起雲涌。

原创 跟濤哥一起學嵌入式 第04集:一道面試題,測出你的C語言功底

大家好,我是濤哥,歡迎閱讀《跟濤哥一起學嵌入式》第04集,今天聊聊面試題。 嵌入式C語言面試題中,大家經常會看到宏定義的考題。比如:定義一個宏,求兩個數中的最大數。別小看這個考題,雖然簡單,但是它卻陷阱不斷,時刻在考驗着你的C語言編程功底!

原创 跟濤哥一起學嵌入式 第02集:工作還是考研?

大家好,我是濤哥,今天我們聊聊第一個話題:工作還是考研。 工作與考研,是每個大三大四學生都要去糾結一下的問題,也是一個很難做抉擇的話題。對自己的現狀不滿意,蹉跎了歲月,感覺自己學得不夠多,沒學到什麼技能;對自己能否找到工作、自己能否勝任未來

原创 Linux進程間通信10分鐘快速入門

在Linux環境下運行程序,無論是點擊桌面上的一個圖標,還是在命令行下敲擊一個shell命令,Linux系統都會把我們的程序“包裝”成一個進程的形式,然後調度運行:每個進程輪流佔用CPU一段時間去執行,時間到了就讓給其它進程,時間片輪轉,只

原创 Linux下的進程江湖

有人的地方,就有江湖Linux進程也不例外 有進程的地方,也有江湖 那些年,奢望金盆洗手的江湖大佬們 按照武俠小說的套路:一個高手一旦決定金盆洗手、隱退江湖,下場往往會很慘,甚至引發整個武林動盪。比如衡山派的劉正風,早已厭倦了江湖,打算

原创 嵌入式學習三劍式

前言 學習一門技術猶如修煉一門武功。在成爲高手的路上,無數英雄豪傑不盡相同,按照武俠小說的套路,大俠之所以成爲大俠,絕對不可能平平淡淡,肯定有一段開掛的傳奇人生:要麼被關入湖底,偶然發現前輩留在石壁上的心法;要麼被罰上思過崖面壁思過,一不小

原创 嵌入式C語言自我修養 01:Linux 內核中的 C 語言語法擴展

1.1 Linux 內核驅動中的奇怪語法 大家在看一些 GNU 開源軟件,或者閱讀 Linux 內核、驅動源碼時會發現,在 Linux 內核源碼中,有大量的 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]

原创 嵌入式C語言自我修養 11:有一種函數,叫內建函數

11.1 什麼是內建函數 內建函數,顧名思義,就是編譯器內部實現的函數。這些函數跟關鍵字一樣,可以直接使用,無須像標準庫函數那樣,要 #include 對應的頭文件才能使用。 內建函數的函數命名,通常以 __builtin 開頭。這些函數主

原创 嵌入式C語言自我修養 12:有一種宏,叫可變參數宏

12.1 什麼是可變參數宏 在上面的教程中,我們學會了變參函數的定義和使用,基本套路就是使用 va_list、va_start、va_end 等宏,去解析那些可變參數列表我們找到這些參數的存儲地址後,就可以對這些參數進行處理了:要麼自己動手

原创 嵌入式C語言自我修養 10:內聯函數探究

10.1 屬性聲明:noinline & always_inline 這一節,接着講 attribute 屬性聲明,attribute可以說是 GNU C 最大的特色。我們接下來繼續講一下跟內聯函數相關的兩個屬性:noinline 和 al

原创 嵌入式C語言自我修養 03:宏構造利器 - 語句表達式

3.1 基礎複習:表達式、語句和代碼塊 表達式 表達式和語句是 C 語言中的基礎概念。什麼是表達式呢?表達式就是由一系列操作符和操作數構成的式子。操作符可以是 C 語言標準規定的各種算術運算符、邏輯運算符、賦值運算符、比較運算符等。操作數可

原创 嵌入式C語言自我修養 06:U-boot鏡像自拷貝分析:section屬性

6.1 GNU C 的擴展關鍵字:attribute GNU C 增加一個 atttribute 關鍵字用來聲明一個函數、變量或類型的特殊屬性。聲明這個特殊屬性有什麼用呢?主要用途就是指導編譯器在編譯程序時進行特定方面的優化或代碼檢查。比如