欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3862|回復(fù): 0
收起左側(cè)

對(duì)編譯器的選擇

[復(fù)制鏈接]
ID:83710 發(fā)表于 2015-6-24 21:23 | 顯示全部樓層 |閱讀模式
一般來(lái)說(shuō),單片機(jī)的使用要從基礎(chǔ)的匯編語(yǔ)言開(kāi)始講起,即使使用C語(yǔ)言進(jìn)行開(kāi)發(fā),也必須對(duì)內(nèi)部的機(jī)器碼實(shí)現(xiàn)非常熟悉,才能應(yīng)付設(shè)計(jì)和調(diào)試中可能出現(xiàn)的各種情況。WINAVR是個(gè)免費(fèi)的AVR 開(kāi)發(fā)程序集,它以著名的自由軟件GCC 為C/C++編譯器。之所以選用WINAVR,是因?yàn)樗且唤M開(kāi)放源代碼的程序集,也是目前最好的自由軟件之一。   下面是關(guān)于WINAVR的使用要點(diǎn),更詳細(xì)的情況建議參考芯藝的《AVR 單片機(jī)GCC 程序設(shè)計(jì)》。開(kāi)發(fā)工具:
更適合采用高級(jí)語(yǔ)言開(kāi)發(fā)是AVR 單片機(jī)最初設(shè)計(jì)時(shí)的目的之一。目前AVR 單片機(jī)高級(jí)語(yǔ)言發(fā)發(fā)工具主要有IAR C、WINAVR、ICCAVR、CodeVision、BASCOM-AVR(BASIC 語(yǔ)言)。IAR 是與AVR 內(nèi)核協(xié)同開(kāi)發(fā)的,很多對(duì)AVR 更適合C 語(yǔ)言開(kāi)發(fā)方面的改進(jìn)是根據(jù)IAR開(kāi)發(fā)過(guò)程的,它也是ATMEL 公司推薦的C 語(yǔ)言編譯器,但它的價(jià)格幾呼讓人難以接受,達(dá)到上萬(wàn)元人民幣。ICCAVR 是國(guó)內(nèi)AVR 主要推廣單位雙龍公司代理的C 編譯器,它價(jià)格低廉,友好的界面把很多煩瑣的項(xiàng)目管理和編譯設(shè)置隱藏了起來(lái),為此它受部分開(kāi)發(fā)人員的歡迎。CodeVision 也是個(gè)很不錯(cuò)的C 編譯器,目前在國(guó)內(nèi)也有一定數(shù)量的用戶。Winavr 是個(gè)免費(fèi)的AVR 開(kāi)發(fā)程序集,它以著名的自由軟件GCC 為C/C++編譯器。下面所有章節(jié)我都會(huì)介紹如何使用WINAVR 開(kāi)發(fā)AVR 單片機(jī)。GCC 編譯器
UNIX 上最原始的C 編譯器叫CC(C Compiler C 編譯器),源于此GNU 的C 編譯器叫作GCC(GNU C Compiler),然而,隨著GCC 支持語(yǔ)言的增加GCC 這個(gè)縮寫(xiě)的意義已演變成了GNU 編譯器集合(GNU Compiler Collection),它是GNU 項(xiàng)目的一個(gè)產(chǎn)品,是個(gè)開(kāi)放源代碼軟件。GCC 可編譯多種語(yǔ)言,目前支持的語(yǔ)言有C、C++、Objective-C、Fortran、java 和Ada。這些高級(jí)語(yǔ)言程序通過(guò)編譯程序前端(front-end)后產(chǎn)生解析樹(shù),之后與器件相關(guān)的后端(back-end)程序?qū)⑺鼈兘忉尦蓪?shí)際的可執(zhí)行指令集。前端與后端是完全分開(kāi)的,解析樹(shù)是它們中間的產(chǎn)物。GCC 這樣的設(shè)計(jì)使得任何一種語(yǔ)言只要通過(guò)合適的語(yǔ)法解析器產(chǎn)生符合格式的解析樹(shù),就可以產(chǎn)生GCC 后端程序所支持的所有器件上的可執(zhí)行指令集。同樣的,任何一種器件只要將樹(shù)結(jié)構(gòu)翻譯成匯編,就可以使用GCC 前端所支持的所有語(yǔ)言。要承認(rèn)的是,以上描述是理論化的,便于理解,實(shí)際操作并沒(méi)有想象的那么簡(jiǎn)單。事實(shí)上前端和后端都不是孤立的。幸運(yùn)的是AVR 的確得到了GCC 的支持,它也是GCC 支持的唯一一種8 位處理器。不僅如此,我們還可以在WINDOWS 平臺(tái)上安裝程序包WINAVR 來(lái)使用GCC 的AVR C/C++編譯程序。WINAVR 是一組開(kāi)放源代碼的程序集,用于ATMEL 公司 AVR 系列單片機(jī)的開(kāi)發(fā),它主要包含:
1. GNU 程序包Binutils
GNU Binutils 非常龐大,WINAVR 僅包含與AVR 相關(guān)的部分,有AVR 匯編器、連接器以及與機(jī)器指令相關(guān)的一些工具
2. GNU GCC 的C 和C++編譯器。
3. AVR-LIBC
AVR-LIBC 是AVR 單片機(jī)C 運(yùn)行時(shí)庫(kù), 它是為應(yīng)用程序提供標(biāo)準(zhǔn)C 函數(shù)的連接時(shí)定位庫(kù)。
         
另外WINAVR 還包含軟件調(diào)試器、器件編程軟件、文件格式轉(zhuǎn)換工具等多個(gè)有用工具,這里不一一列出, 請(qǐng)參考WINAVR 說(shuō)明文檔。WINAVR 項(xiàng)目的WEB 地址是http://sourceforge.net/projects/winavr ,這里可以下載最新的版本,并可訂閱郵件組。 郵件組是獲取WINAVR 相關(guān)幫助信息的重要途徑。一個(gè)簡(jiǎn)單的例子文件demo1.c :#i nclude
int main( void )
{
unsigned char i, j, k,led=0;
DDRB=0xFF;
while (1)
{
if(led)
PORTB|=0X01;
else
PORTB&=0XFE;
led=!led;
//延時(shí)
for (i=0; i<255; i++)
for(j=0; j<255;j++)
k++;
}
}這是一個(gè)使接在PB0 口的LED 發(fā)光管閃爍的程序。使用Mfile 生成合適的makefile然后運(yùn)行make all即可生成hex文件。




回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表