嵌入式設計課程總結4

2021-10-04 06:02:34 字數 1505 閱讀 3920

偵錯程式:gdb

1.gnu計畫的工具;核心除錯kgdb

2.程式的錯誤分類:編譯時錯誤:語法錯誤 執行時錯誤:記憶體錯誤,邏輯錯誤

3.gdb的功能:(1)執行程式;(2)設定斷點;(3)檢視變數值4.hello.c gcc -g hello.c -o hello

gcc gdb

5.使用–tui:圖形化layout asm:

彙編layout src:c語言

layout split:彙編與c語言(run finish continue)

斷點break +行號:設定斷點

break+函式名

break+行號 if條件

info break:檢視斷點資訊

delete+break

enable +斷點編號

disable+斷點編號

單步執行

step :可以進入子函式

next :不可以進入子函式

6.工程管理器:make(-make -cmake)—實現自動編譯(根據makefile實現)

編譯很多個檔案(型別不同、存放不再不同目錄、資源檔案使用)組成的軟體**結構 --實現

自動編譯(根據makefile檔案的內容進行)。

「自動編譯」:

(1)根據makefile檔案的內容進行自動編譯;

(2)根據檔案的時間戳來判斷檔案是否需要編。

單個.c — gcc hello.c -o hello;

10000個.c (分別儲存在100個不同目錄) – gcc *.c -o hello。

7.make讀取makefile內容(如何編寫makefile檔案?)

(1)makefile是個指令碼檔案(批處理)

(2)makefile語法: 目標、依賴、命令

格式:目標:依賴、按下tab命令。

(3)執行命令,依賴這個檔案,最終生成目標。

(4)makefile執行順序:自上向下,當你的目標依賴的檔案又是有乙個目標時,會先跳轉到該目標去執行相關命令。

(5)make +目標名:從該目標開始自.上向下執行。

(6)偽目標:執行命令,不生成對應的檔案。phony: lclean install。

8.為什麼將.c檔案先編譯生成.o檔案,再由.o檔案生成可執行檔案?

前提:原始檔到可執行檔案:預處理、編譯、彙編、鏈結(1s)gcc hello.c -0 hello 4scal:main.c add.c sub.c div.c mul.cgcc *.c -0 cal假設修改了add.c — make: 20s假設修改了add.c — make:(.c -->.0) 第一次:20s,第二次:4s+4s=8s。

9.功能目錄管理軟體**:makefile:(閱讀makefile的順序1-3)

10.總控makefile:進入各個功能目錄執行make,並將所有.o檔案鏈結生成可執行檔案。

11.功能目錄makefile:將功能目錄下的原始檔編譯生成目標檔案.o。12.scripts目錄標頭檔案makefile:定義變數,供其他makefile使用。

嵌入式設計課程(4)

偵錯程式 gdb gun計畫的工具 核心除錯kgdb 程式的錯誤分類 編譯時錯誤 語法錯誤 執行時錯誤 記憶體問題,邏輯問題 gdb的功能 1.執行程式 2.設定斷點 3.檢視變數的值 hello.c gcc g hello.c o hello gdb hello 使用 tui layout asm...

嵌入式設計總結4

1 gnu計畫的工具 核心除錯kgdb 2 程式的錯誤分類 3 gdb的功能 1 工程管理器 如何編寫makefile檔案?編譯很多個檔案 型別不同 存放不再不同目錄 資源檔案使用 組成的軟體 結構 實現自動編譯 根據makefile檔案的內容進行 自動編譯 1 根據makefile檔案的內容進行自...

嵌入式課程設計總結(二)

學習內容 linux介紹 使用linux操作 命令 linux開發工具 目標 會用!夠用!vm虛擬機器 通過軟體的方法模擬pc 為什麼不使用雙系統?嵌入式開發與核心相互,會導致系統崩潰 linux發行版 發行給使用者使用的版本 redhat centos7 企業版 ununtu 16.10 18.0...