7.1裸機(jī)開(kāi)發(fā)步驟和工具使用

001節(jié)_裸機(jī)開(kāi)發(fā)步驟簡(jiǎn)介
回憶大學(xué)在VC6.0上面學(xué)習(xí)C語(yǔ)言,操作大致流程如下:
x86平臺(tái),Windows應(yīng)用程序:建立工程/項(xiàng)目,編輯源碼,編譯代碼(編譯器:VC6.0),運(yùn)行。
在Ubuntu上學(xué)習(xí)C語(yǔ)言,操作大致流程如下:
x86平臺(tái),Ubuntu應(yīng)用程序:編輯源碼,編譯代碼(編譯器:gcc),運(yùn)行。
兩者是幾乎一致的。
名詞解釋:?
gcc:
gcc是linux系統(tǒng)下主要的編譯軟件, gcc的全稱是GNU編譯器套件(GNU Compiler Collection), 除了可以編譯c語(yǔ)言開(kāi)發(fā)的程序外,還可以開(kāi)發(fā)C++、Java等多個(gè)語(yǔ)言的程序。 GCC的初衷是為GNU操作系統(tǒng)專門編寫的一款編譯器。?
使用gcc的原因:功能強(qiáng)大、穩(wěn)定、開(kāi)源免費(fèi)。
(1)gcc ?-v
查看gcc的版本,從而驗(yàn)證了gcc編譯器正常。
不論你使用哪一個(gè)版本的gcc,只有后面能夠正常編譯就可以了。
(2)gcc ? -o ? 輸出文件名 ? ?源文件
o:output?
交叉編譯模式:
通常編譯嵌入式程序的平臺(tái)成為宿主機(jī)(如:PC的ubuntu系統(tǒng),CPU架構(gòu)為X86架構(gòu)), 運(yùn)行嵌入式程序的平臺(tái)成為目標(biāo)機(jī)(如:某款A(yù)RM開(kāi)發(fā)板,CPU架構(gòu)為ARM架構(gòu))。 在X86平臺(tái)編輯和和編譯器arm-linux-gcc編譯ARM架構(gòu)的程序, 兩者屬于不同的架構(gòu)平臺(tái),從而屬于交叉編譯模式。 然后將程序燒寫到ARM開(kāi)發(fā)板中(下載方式有:JTAG、USB、SD卡、網(wǎng)絡(luò)等多種方式), 然后在開(kāi)發(fā)板上運(yùn)行該程序。?
編輯器:
推薦使用windows平臺(tái)的source insight和notepad。 source insight在查看代碼、編輯代碼等功能時(shí)非常好用。?
編譯器
推薦使用arm-linux-gcc arm-linux-gcc是基于linux平臺(tái)的arm編譯器。它是開(kāi)源免費(fèi)的編譯器。 arm-linux-gcc功能強(qiáng)大、穩(wěn)定、支持的arm芯片眾多、更新速度快。?
入門誤區(qū):使用ads、MDK
ads(停止更新)、MDK,是windows平臺(tái)的編譯器,功能較弱。
1)只適合個(gè)人或者小團(tuán)隊(duì)的開(kāi)發(fā),不適合于中型、大型團(tuán)隊(duì)的協(xié)作開(kāi)發(fā)。
2)是收費(fèi)軟件。?

002節(jié)_source insight代碼查看工具的使用
編輯器
推薦使用windows平臺(tái)的source insight和notepad。
source insight在查看代碼、編輯代碼等功能時(shí)非常好用。
source insight針對(duì):c文件、h文件、ARM匯編文件
notepad針對(duì):其他文件,如Makefile(簡(jiǎn)單理解為:指明了要編譯哪些源文件、指定編譯后的輸出文件名)
source insight是收費(fèi)軟件,但是這個(gè)軟件可以免費(fèi)35天。
版本:3.5
安裝包:自己百度一下"source insight3.5"
source insight常用設(shè)置:
1.增加文件類型?
options-->documents options中,將c source file的文件過(guò)濾設(shè)置為*.c;*.h;*.S
2.新建項(xiàng)目(新建工程)
project-->new project,然后將相應(yīng)的文件添加到該項(xiàng)目中。
3.字體的設(shè)置(解決中文亂碼)
options-->documents options中,將screen fonts設(shè)置為:宋體、常規(guī)、12、GB2312.
使用alt+F12來(lái)調(diào)整字體的等寬。?
4.說(shuō)明一下source insight的窗口
項(xiàng)目窗口:指明該項(xiàng)目中有哪些文件。
主窗口:顯示當(dāng)前打開(kāi)文件的文件內(nèi)容。
符號(hào)窗口:顯示了當(dāng)前打開(kāi)文件的函數(shù)名、結(jié)構(gòu)體名、宏定義等等。
上下文窗口:光標(biāo)放在某個(gè)函數(shù)上(變量上、宏定義上),在下面的上下文窗口就可以看到相應(yīng)的定義。
5.顯示行號(hào)
view-->line number
6.快速跳轉(zhuǎn)到某一行
工具欄中有一個(gè)go to line。
7.高亮關(guān)鍵詞
光標(biāo)放在關(guān)鍵詞上,然后右鍵菜單--->highlight word
8.查看函數(shù)定義位置
光標(biāo)放在函數(shù)上,然后右鍵菜單--->jump ?to defintion,或者ctrl + 鼠標(biāo)左鍵。
go back ? (alt + ,)回到上一次光標(biāo)所在位置,或者使用工具欄中的向左箭頭。
go forward(alt + .)回到下一次光標(biāo)所在位置,或者使用工具欄中的向右箭頭。
9.查找
右鍵菜單-->lookup reference,或者ctrl + / 。

003節(jié)_notepad編輯器和二進(jìn)制文件查看工具
下面介紹兩個(gè)免費(fèi)的工具: 文本編輯器工具Notepad++和二進(jìn)制查看工具Free Hex Editor Neo。
Notepad++使用技巧:
按住Ctrl+鼠標(biāo)滾輪,可以縮放文本內(nèi)容大??;
查看c語(yǔ)言文件時(shí),雙擊變量,即可在高亮整個(gè)文本中的該變量;
查看c語(yǔ)言文件時(shí),光標(biāo)放在任一括號(hào)處,即可高亮整個(gè)括號(hào)范圍;
快捷鍵“Ctrl+F”,打開(kāi)查找窗口,可搜索所需字符;
Free Hex Editor Neo使用技巧:
打開(kāi)hex二進(jìn)制文件,默認(rèn)每行顯示16個(gè)數(shù),即0x00-0x0f;
在菜單欄的View->Offset可設(shè)置左邊偏移的顯示進(jìn)制;
在菜單欄的View->Display As可設(shè)置當(dāng)前數(shù)據(jù)的顯示進(jìn)制;
在菜單欄的View->Columns As可設(shè)置當(dāng)前每行顯示多少數(shù)據(jù);
在菜單欄的View->Group By可設(shè)置當(dāng)前數(shù)據(jù)顯示的數(shù)據(jù)類型;
視頻教程???
?韋東山升級(jí)版全系列嵌入式免費(fèi)視頻_快速入門篇
