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

標(biāo)題: 好書推薦:AVR單片機(jī)GCC程序設(shè)計(jì) [打印本頁]

作者: snowplanet    時(shí)間: 2018-3-8 14:20
標(biāo)題: 好書推薦:AVR單片機(jī)GCC程序設(shè)計(jì)
AVR單片機(jī)GCC程序設(shè)計(jì)的目錄:

4.9  鍵盤程序設(shè)計(jì)
4.10 蜂鳴器控制

第五章 使用 C 語言標(biāo)準(zhǔn) I/O 流調(diào)試程序
5.1  avr-libc 標(biāo)準(zhǔn)I/O 流描述
5.2  利用標(biāo)準(zhǔn) I/0 流調(diào)試程序
5.3  最小化的格式化的打印函數(shù)

第六章 CA-M8 上實(shí)現(xiàn) AT89S52 編程器的實(shí)現(xiàn)

前    言

2000年在學(xué)校我第一次接觸 Linux,那時(shí)在班里學(xué)習(xí)做網(wǎng)頁的氣氛較濃,我也是為了學(xué)習(xí) PHP 才認(rèn)識(shí) Linux 的。PHP 解析器的安裝過程讓我多多少少對(duì) GCC 有了些認(rèn)識(shí),不過當(dāng)時(shí)我并沒有意識(shí)到它還可以用于嵌入式系統(tǒng)編程上,至于 Linux 、認(rèn)為用處只在于架構(gòu)一個(gè)免費(fèi)的WEB站點(diǎn)。
2002 年在公司我第一次接觸了AVR, 當(dāng)時(shí)公司只有一個(gè) ICC 序列號(hào),導(dǎo)致我和一個(gè)同事經(jīng)常搶用一臺(tái)機(jī)器,不過這種狀況沒有持續(xù)多久,我在瀏覽雙龍的數(shù)據(jù)光盤時(shí)發(fā)現(xiàn)一個(gè)叫“如何使用 AVR-GCC”的 PDF 文檔,上面沒有署名,我想我應(yīng)該感謝該文的作者。我發(fā)現(xiàn)這個(gè)免費(fèi)的編譯軟件遠(yuǎn)比ICC好用。
今天,我把使用 AVR-GCC 兩年來的體會(huì)寫在這里,愿更多的人了解和使用GCC及自由軟件。
水平有限,錯(cuò)誤和缺陷在所難免,請(qǐng)廣大讀者批評(píng)指正。

作者:芯 藝
2004-12-13   
于內(nèi)蒙古包頭

第一章   概  述

1.1  AVR 單片機(jī) GCC 開發(fā)概述
一 AVR 單片機(jī)介紹
誕生:
1997 年 ATMEL 公司挪威設(shè)計(jì)中心的 A 先生和 V 先生出于市場(chǎng)需求的考慮推出了全新配置的 8 位精減指令集微處理器(RISC-Reduced Instrction Sot CPU) 。起名為AVR。

系列和主流:
  AVR是一種指令內(nèi)核的統(tǒng)稱,它內(nèi)部又分ATt iny、AT90S和ATmega三大系列,分別對(duì)應(yīng)AVR的低、中、高檔產(chǎn)品。Attiny系列中常用的有Attiny15、Attiny2313等產(chǎn)品,AT90S系列中常用的有AT90S2313、AT90S8535、AT90S8515等。AT90S2313引腳兼容AT89C2051,而AT90S8515的引腳則兼容51單片機(jī), 在設(shè)計(jì)中很容易的替代51單片機(jī)。 但是到目前, AT90S系列的絕大部分已停產(chǎn),當(dāng)某一個(gè)AT90S系列芯片停產(chǎn)時(shí)ATMEL通常會(huì)在ATMega或ATtiny系列中推出一個(gè)新的替代產(chǎn)品,替代產(chǎn)品往往在引腳兼容的基礎(chǔ)上內(nèi)部資源和性能得到加強(qiáng)。例如Attiny2313作為AT90s2313的替代產(chǎn)品在AT90S2313的基礎(chǔ)上增加了片內(nèi)標(biāo)定振蕩器、增強(qiáng)型上電復(fù)位、可編程的掉電檢測(cè)等等多種功能。類似的ATMega8515和ATMega8535分別作為AT90S8515和AT90S8535的替代產(chǎn)品繼承了很多Mega系列的特性。
ATMega48/88/168、ATMega8、ATMega16、ATMega32、ATMega64 和 ATMega128 是ATMega 系列的主流產(chǎn)品。值得關(guān)注的是 ATMega8 這一款單片機(jī),它以豐富的片內(nèi)資源、低廉的價(jià)格深受廣大設(shè)計(jì)人員的喜愛,并在國(guó)內(nèi)得到了較好的推廣。然而 ATMega48/88/168作為它的兼容產(chǎn)品,為用戶提供更多功能的選擇。
ATMega16 也是個(gè)用量較多的器件,它的引腳兼容 AT90S8535,可以取代產(chǎn)品中的 8535芯片。相對(duì) ATMega8  它除了 I/O 引腳多之外內(nèi)部集成了 ATMega8 兩倍(16K)的 FLASH程序存儲(chǔ)器。

隨著國(guó)內(nèi) AVR 用戶的增多,ATMEL也開始了主流器件數(shù)據(jù)手冊(cè)的中文翻譯工作。從網(wǎng)絡(luò)上可以找到 Attiny2313、 ATMega48/88/168、 ATMega8、 ATMega16、 ATMega32、 ATMega64
等器件的官方翻譯中文數(shù)據(jù)手冊(cè)。這對(duì)學(xué)習(xí)和使用 AVR 器件提供了很大的幫助。

硬件結(jié)構(gòu):
有關(guān) AVR 硬件結(jié)構(gòu),各功能模塊的描述請(qǐng)參考數(shù)據(jù)手冊(cè)或相關(guān)的書籍。

開發(fā)工具:
更適合采用高級(jí)語言開發(fā)是 AVR 單片機(jī)最初設(shè)計(jì)時(shí)的目的之一。 目前 AVR 單片機(jī)高級(jí)語言發(fā)發(fā)工具主要有 IAR C、WINAVR、ICCAVR、CodeVision、BASCOM-AVR(BASIC 語言) 。 IAR 是與 AVR 內(nèi)核協(xié)同開發(fā)的, 很多對(duì) AVR 更適合 C 語言開發(fā)方面的改進(jìn)是根據(jù) IAR開發(fā)過程的,它也是 ATMEL 公司推薦的 C 語言編譯器,但它的價(jià)格幾呼讓人難以接受,達(dá)到上萬元人民幣。ICCAVR 是國(guó)內(nèi) AVR 主要推廣單位雙龍公司代理的 C 編譯器,它價(jià)格低廉,性能也XX,友好的界面把很多煩瑣的項(xiàng)目管理和編譯設(shè)置隱藏了起來,為此它受部分開發(fā)人員的歡迎。CodeVision 也是個(gè)很不錯(cuò)的 C編譯器,目前在國(guó)內(nèi)也有一定數(shù)量的用戶。
Winavr 是個(gè)免費(fèi)的 AVR 開發(fā)程序集,它以著名的自由軟件 GCC 為 C/C++編譯器。下面所有章節(jié)我都會(huì)介紹如何使用 WINAVR 開發(fā) AVR 單片機(jī)。   學(xué)習(xí) GCC 的意義絕不僅僅是為了開發(fā) AVR 程序,正如 21ICBBS上一位網(wǎng)友所說: “如果其它編譯器是一棵樹,那么 GCC 就是個(gè)樹林” ,GCC 支持多種處理器,包括 ARM、DSP、X86等 32 位 CPU。它的歷史足以說明它是個(gè)成熟的編譯器。
如果不是個(gè)業(yè)余的程序開發(fā)人員,我不會(huì)建議你使用 BASIC 編寫 AVR 程序,因?yàn)槲覀冊(cè)诰帉懪c硬件密切相關(guān)的單片機(jī)程序時(shí)通常需要想象編譯器是如何將這些代碼翻譯成匯編程序的,而 C 更適合我們?nèi)ミ@樣做。

二 GCC編譯器
UNIX上最原始的 C 編譯器叫 CC(C Compiler   C編譯器) ,源于此 GNU 的 C 編譯器叫作 GCC(GNU C Compiler) ,然而,隨著 GCC 支持語言的增加 GCC 這個(gè)縮寫的意義已演變成了 GNU 編譯器集合(GNU Compiler Collection),它是 GNU項(xiàng)目的一個(gè)產(chǎn)品,是個(gè)開放源代碼軟件。

GCC 可編譯多種語言,目前支持的語言有 C、C++、Objective-C、Fortran、java 和 Ada。  這些高級(jí)語言程序通過編譯程序前端(front-end)后產(chǎn)生解析樹,之后與器件相關(guān)的后端(back-end)程序?qū)⑺鼈兘忉尦蓪?shí)際的可執(zhí)行指令集。前端與后端是完全分開的,解析樹是它們中間的產(chǎn)物。GCC 這樣的設(shè)計(jì)使得任何一種語言只要通過合適的語法解析器產(chǎn)生符合格式的解析樹,就可以產(chǎn)生 GCC 后端程序所支持的所有器件上的可執(zhí)行指令集。同樣的,任何一種器件只要將樹結(jié)構(gòu)翻譯成匯編,就可以使用 GCC 前端所支持的所有語言。

要承認(rèn)的是,以上描述是理論化的,便于理解,實(shí)際操作并沒有想象的那么簡(jiǎn)單。事實(shí)上前端和后端都不是孤立的。幸運(yùn)的是 AVR 的確得到了 GCC 的支持,它也是 GCC支持的唯一一種 8位處理器。不僅如此,我們還可以在 WINDOWS 平臺(tái)上安裝程序包 WINAVR 來使用 GCC 的 AVR C/C++編譯程序。

WINAVR 是一組開放源代碼的程序集,用于 ATMEL  公司 AVR 系列單片機(jī)的開發(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 說明文檔。WINAVR 項(xiàng)目的


這是一個(gè)使接在 PB0 口的 LED 發(fā)光管閃爍的程序。有了源程序文件 demo1.c,我們就可以編譯它了。通過點(diǎn)擊菜單開始->運(yùn)行  在彈出的對(duì)話框中輸入  “ command ” ,來打開控制臺(tái)窗口,并在命令行輸入:

avr-gcc  –mmcu=at90s2313  –c  demo1.c     

如圖 1-1 所示。

  必需告訴編譯器  程序的 MCU 類型,這是我們通過命令行選項(xiàng)-mmcu 來指定的,我們指定的器件為 at90s2313。-c  選項(xiàng)告訴編譯器編譯完成后不連接。


由于這里不能上傳 大家可以圖書館借閱此書或者從百度獲取


作者: yi1liang    時(shí)間: 2018-3-9 22:45
謝謝分享。
作者: daiya    時(shí)間: 2018-6-15 08:45
很好的資料,謝謝分享!
作者: takaoksj    時(shí)間: 2018-12-18 10:13
好書,謝謝分享!
作者: wanffee    時(shí)間: 2019-4-26 05:36
好的資料,謝謝分享
作者: duyi324    時(shí)間: 2019-6-11 15:37
謝謝分享。正需要
作者: 2875007399    時(shí)間: 2019-6-14 17:35
謝謝分享。正需要
作者: huiyazhao    時(shí)間: 2019-11-20 09:21
謝謝分享,。
作者: yaojil    時(shí)間: 2019-11-20 16:44

很好的資料,謝謝分享!
作者: rayin    時(shí)間: 2019-12-14 15:02

很好的資料,謝謝分享!
作者: lxjmcuahz    時(shí)間: 2020-3-25 17:03
謝謝分享




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1