嵌入式linux基础知识累积
一、GCC工具
GCC是一個全功能的ANSI C兼容編譯器。
例子:gcc –o test test.c 和./test
基本用法是:gcc [options] [filename]
1.1 編譯選項
-o 為將產生的可執行文件指定一個文件名。
-c 告訴GCC僅把源代碼編譯成目標代碼而跳過會變和鏈接的步驟,產生.o的目標代碼文件
-s 告訴GCC在為C代碼產生了匯編語言文件后,就停止編譯,產生.s的擴展名匯編語言文件。
-E 告訴編譯器僅對輸入文件進行預處理。
-O 告訴GCC對源代碼進行基本的優化。
-O2 選項告訴GCC產生盡可能小和盡可能快的代碼。
二、GNU Make
在linux環境下使用GNU的Make工具能夠比較容易的構建一個屬于你自己的工程,整個工程的編譯只需要一個命令就可以完成編譯、鏈接以至于最后的執行。
三、GDB
linux包含一個叫GDB的GNU調試程序。GDB是一個用來調試C和C++程序的強大調試器,它使用戶能在程序運行時觀察程序的內部結構和內存的使用情況。
gdb常見命令:
1、file:裝入想要調試的可執行文件
2、kill:終止正在調試的程序
3、list:列出產生執行文件的源代碼的一部分
4、next:執行一行源代碼但不進入函數內部
5、step:執行一行源代碼而且進入函數內部
6、run:執行當前被調試的程序
7、quit:終止gdb
8、watch:能監視一個變量的值而不管它何時被改變
9、print:顯示表達式的值
10、break:在代碼里設置斷點,這將使程序執行到這里時被掛起
11、make:不退出gdb就可以重新產生可執行文件
12、shell:不離開gdb就執行UNIX shell命令
?
四、交叉編譯環境
交叉編譯環境就是在一臺計算機上編譯軟件,其生成的軟件在另一臺不同類型處理器的機器上運行。
總結應用交叉編譯環境時,嵌入式linux軟件開發的流程如下:
(1)要有一臺PC機和一個嵌入式開發板,這是硬件基礎。
(2)在PC上安裝linux操作系統。
(3)在linux上安裝交叉編譯工具。
(4)在linux環境編譯代碼文本,使用交叉編譯器編譯,調試器調試。
(5)完成挑時候,通過連接PC機的串口、USB口和網口,將程序下載到目標板上。
(6)在目標板上運行和測試程序。
五、NFS方式連接主機(嵌入式uClinux和Ubuntu9.10上NFS實驗)
????? 如果每次在開發板上測試程序時,都需要燒寫FLASH的話,將是一件十分麻煩的事情(對于我們的嵌入式Linux開發來說,還需要重新生成根文件系統鏡像才能燒錄)。利用
NFS方式---將主機的硬盤作為開發板的網絡硬盤來使用。
NFS是一種網絡文件系統。
常見命令集合:
(1)file 命令:查看文件類型
(2)cp命令:cp 源文件名 目標地址
(3)mount:掛載,mount 源地址 目標地址
(4)cat:連接文件并打印到標準輸出
例子:cat –b –E .lessrc 顯示文件.lessrc的內容
???????? -b參數表示從第一行開始記數,計算所有非空行的輸出。 -E表示在每行結尾加上字符'$'。
(5)cd:改變當前目錄
(6)clear:清除屏幕
(7)df:報告磁盤剩余空間。
(8)find:用來在大量目錄中搜尋特定文件
??????? find [路徑] [匹配表達式]
(9)man:顯示具有一定格式的在線手冊
(10)mkdir:建立目錄
(11)passwd:設置用戶的密碼
(12)pwd:顯示正在工作或當前目錄名
(13)rm:刪除文件或目錄
(14)mount,umount:裝載/卸下一個文件系統
(15)~/.bashrc和~/.bash_profile的區別
???????? /etc/profile:此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.并從/etc/profile.d目錄的配置文件中搜集shell的設置
??????? /etc/bashrc:為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取.
??????? ~/.bash_profile:每個用戶都可使用該文件輸入專用于自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!默認情況下,他設置一些環境變量,執行用戶的.bashrc文件.???
??????? ~/.bashrc:該文件包含專用于你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該該文件被讀取.
轉載于:https://www.cnblogs.com/yingfang18/archive/2011/03/15/1984650.html
總結
以上是生活随笔為你收集整理的嵌入式linux基础知识累积的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 团购倒计时
- 下一篇: C# 基于密钥的64位加密与解密方法(原