1.gnu計畫的工具;核心除錯kgdb
2.程式的錯誤分類:
編譯時錯誤:語法錯誤
執行時錯誤:記憶體錯誤,邏輯錯誤
3.gdb的功能:執行程式,設定斷點,檢視變數值
4. hello.c操作
gcc -g hello.c -o hello
gdb hello
5.使用
(1) --tui:影象介面
layout asm:顯示彙編
layout src:顯示原始碼
layout split:同時顯示彙編和原始碼
(2) break:設定斷點
break+行號
break+函式名
break+行號 if條件
info break:檢視斷點資訊
delete + 斷點編號:刪除斷點
(3)enable+斷點編號:始能斷點
disable+斷點編號:無效斷點
(4)run:執行程式
continue:從當前斷點繼續執行,直到遇見下乙個斷點為止
list:顯示原始碼
(5)單步執行
step:可以進入子函式
next:不能進入子函式
1.工程管理器:編譯多個檔案(型別不同,存放在不同目錄,資源檔案的使用)組成的軟體**結構----實現自動編譯(根據makefile檔案內容進行)
單個.c—gcc hello.c -o hello
100000個.c(分別儲存在100個不同目錄)—
2.如何編寫makefile檔案?
makefile是個指令碼檔案(批處理)。
makefile語法:目標、依賴、命令(按下tab)
目標:依賴
執行命令,依賴這個檔案,最終生成目標。
makefile執行順序:自上向下,當你的目標依賴的檔案又是乙個目標時,會先跳轉到該目標去執行相關命令。
make+目標名:從該目標開始自上向下執行
3.「自動編譯」:
(1)根據makefile檔案的內容進行自動編譯。
(2)根據檔案的時間戳來判斷檔案是否需要編譯。
4.偽目標
只執行命令,不生成對應的檔案。
.phony:clean(定義偽目標clean)
5.為什麼將.c檔案先編譯生成.o檔案,再生成可執行檔案?
節約程式執行時間。
6.功能目錄管理軟體**------makefile
總控makefile:
進入各個功能目錄執行make,並將所有.o檔案鏈結生成可執行檔案
功能目錄makefile:
將功能目錄下的原始檔編譯生成目標檔案.o
scripts目錄標頭檔案makefile:
定義變數,供其他makefile使用
閱讀makefile順序:s----總----功
3 17嵌入式設計(拓展)
1 單鏈表 鍊錶是一種常用的組織有序資料的資料結構,它通過指標將一系列資料節點連線成一條資料鏈,是線性表的一種重要實現方式。相對於陣列,鍊錶具有更好的動態性,建立鍊錶時無需預先知道資料總量,可以隨機分配空間,可以高效地在鍊錶中的任意位置實時插入或刪除資料。鍊錶的開銷主要是訪問的順序性和組織鏈的空間損...
嵌入式設計課程總結4
偵錯程式 gdb 1.gnu計畫的工具 核心除錯kgdb 2.程式的錯誤分類 編譯時錯誤 語法錯誤 執行時錯誤 記憶體錯誤,邏輯錯誤 3.gdb的功能 1 執行程式 2 設定斷點 3 檢視變數值4.hello.c gcc g hello.c o hello gcc gdb 5.使用 tui 圖形化l...
嵌入式課程設計總結(二)
學習內容 linux介紹 使用linux操作 命令 linux開發工具 目標 會用!夠用!vm虛擬機器 通過軟體的方法模擬pc 為什麼不使用雙系統?嵌入式開發與核心相互,會導致系統崩潰 linux發行版 發行給使用者使用的版本 redhat centos7 企業版 ununtu 16.10 18.0...