<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > Atmel AVR-GCC安裝方法簡介

          Atmel AVR-GCC安裝方法簡介

          ——
          作者: 時間:2007-04-19 來源: 收藏

          公司的AVR系列單片機(jī)是一種性能優(yōu)良, 耗電很小的微控制器, 他的主要特點(diǎn)是:

          1). 單時鐘周期指令;

          2). 很高的C語言編碼效率;

          3). 支持在系統(tǒng)編程(ISP)技術(shù).

          AVR單片機(jī)是我目前在Linux下看到的開發(fā)工具最全的微控制器, 它的開發(fā)非常方便, 從此我們在Linux下也可以開發(fā)單片機(jī)了.

          開發(fā)AVR的編譯器是gcc, 實(shí)際上就是給gcc加上適合于AVR的庫, 該庫的名字叫avr-libc, 目前支持的開發(fā)語言是c和c++, c++的支持還在開發(fā)中. 下面就介紹的安裝方法并簡單介紹一下通用編程器uisp的安裝方法.

          當(dāng)前avr-libc仍在不斷的進(jìn)行中, 該項(xiàng)目的主頁是 http://www.nongnu.org/avr-libc , 該頁面上面還有很多AVR在Linux下開發(fā)的輔助工具, 本文就不介紹了. avr-gcc的下載地址是: http://savannah.nongnu.org/download/avr-libc/snapshots/src , 請下載binutils-030428.tar.bz2 , gcc-core-20030428.tar.bz2 , gcc-g++-20030428.tar.bz2 , avr-libc-20030422cvs.tar.gz. 以root用戶登錄, 將它們拷貝到安裝目錄中(我的習(xí)慣是/usr/local/src), 解壓縮軟件包:

          bunzip2 *.bz2

          tar xvf *.tar

          tar zxvf *.tar.gz

          之后會在安裝目錄中生成`三個子目錄, binutils-030438/ , gcc-20030428/ , avr-libc-20030422cvs/ . 下面分別安裝之.

          安裝binutils:

          cd binutils-030428/

          ./configure --target=avr --prefix=/usr/local/atmel (/usr/local/atmel是安裝目錄)

          make

          make install

          然后在/etc/ld.so.conf中加入/usr/local/atmel/lib一行, 并運(yùn)行/sbin/ldconfig更新.

          在~/.bashrc文件中加入export PATH=/usr/local/atmel/bin:${PATH}, 并且在命令行下也輸入該語句.

          安裝gcc:

          cd gcc-20030428/

          ./configure --target=avr --prefix=/usr/local/atmel --disable-nls --enable-language=c,c++

          make

          make install

          安裝avr-libc:

          先設(shè)置一些環(huán)境變量:

          export CC=avr-gcc; export AS=avr-as; export AR=avr-ar; export RANLIB=avr-ranlib

          export PATH=/usr/local/atmel/bin:${PATH}; export PREFIX=/usr/local/atmel

          ./reconf

          ./doconf

          ./domake

          cd build

          make install

          如果一切順利的話, 就安裝完成了.

          下面介紹通用編程器uisp的安裝

          uisp是一個通用的編程器, 用來在Linux下控制各種各樣的編程器, 該項(xiàng)目正在不斷的完善中, 項(xiàng)目的主頁是:

          http://savannah.nongnu.org/projects/uisp

          從上面下載uisp-20021201.tar.gz

          解壓縮:

          tar zxvf uisp-20021201.tar.gz

          開始安裝:

          cd uisp-20021201/

          ./configure

          make

          make install

          這樣uisp也裝好了. 運(yùn)行之前我們還要作些準(zhǔn)備工作. 運(yùn)行l(wèi)smod命令, 看列表中有沒有parport, parport_pc, ppdev 三個模塊, 有的話就跳過下面一段.

          編譯內(nèi)核, 確信選中parallel port support -> parallel support 和 parallel port support -> pc-style hardware 及 Character devices -> Support for user-space parallel port device drivers 三項(xiàng). 編譯好內(nèi)核后, 進(jìn)入/lib/modules/<內(nèi)核版本號>/kernel/drivers/parport/ , 運(yùn)行 insmod parport.o ; insmod parport_pc.o ; cd .. ; cd char/ ; insmod ppdev.o , 可以將加載模塊的命令加入rc.sysinit, 這樣就不用以后再手工輸入了.

          下面簡單講講avr-gcc和uisp的使用方法, 詳細(xì)的handbook我會以后翻譯. 假定mcu為at90s8515, 源程序?yàn)閍vr.c .

          1). 編譯C源程序

          生成.o文件: avr-gcc -mmcu=at90s8515 -Os avr.c

          生成.out文件: avr-gcc -mmcu=at90s8515 -o -Wl,-Map,avr.map avr.o avr.out

          生成.hex文件: avr-objcopy -R .eeprom -O ihex avr.out avr.hex

          2). 在線下載

          刷新: uisp -dlpt=/dev/parport0 --erase -dprog=dapa

          編程: uisp -dlpt=/dev/parport0 --upload if=avr.hex -dprog=dapa -dno-poll -v=3 --hash=32

          3). 下載線

          PC 并口 AVR

          Init (Pin 16) -> Reset

          D0 (Pin 2) -> MOSI

          Busy(Pin 11) -> MISO

          Strobe(Pin 1) -> SCK

          GND(Pin 1 -> GND

          注意:

          引線要串1K的電阻, AVR的Reset端接10K的上拉, 要給單片機(jī)3-5V的外部供電.

          c++相關(guān)文章:c++教程




          關(guān)鍵詞: Atmel AVR-GCC

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();