linux 下 avr开发环境的搭建

环境:ubuntu12.04+atmega128A+JTAG ICE


网上已经有很多教程了,在前人走过的路上自然格外轻松,不过还是要稍微总结一下,毕竟还是有些不一样的。

 

(1)安装工具链

>sudo apt-get install binutils-avr avr-libc gcc-avr

(安装信息省略)

装完后用如下命令查看是否成功

zhy@hoply:~$ avr-gcc -v
Using built-in specs.
COLLECT_GCC=avr-gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/avr/4.5.3/lto-wrapper
Target: avr
Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr/lib --infodir=/usr/share/info --mandir=/usr/share/man --bindir=/usr/bin --libexecdir=/usr/lib --libdir=/usr/lib --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-libssp --build=i686-linux-gnu --host=i686-linux-gnu --target=avr
Thread model: single
gcc version 4.5.3 (GCC)

(2)安装下载工具

>sudo apt-get install avrdude avrdude-doc

装完后值得说一下了,很多网上买的下载器是只提供windows下的驱动,linux下怎么用完全没讲,这里提供一个思路,供参考。

avr-dude支持很多种编程器,具体支持哪些可以打开/usr/share/doc/avrdude-doc/avrdude-html/avrdude.html网页文件的第2.1节查看,avrdude的详细使用说明也就是这个。同样,我也网购了这样的一个编程器,只知道它是一个USB转串口而制成的一个JTAG ICE,工作波特率什么的完全不知道,怎么办?只能自己试了。


zhy@hoply:~$ lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
可以看到最后一个PL2303设备是我的AVR编程器

zhy@hoply:~$ ls /dev/ttyUSB*
/dev/ttyUSB0

设备名为ttyUSB0,因为仅有一个USB串口设备


zhy@hoply:~$ sudo avrdude -p m128 -c jtag1 -P /dev/ttyUSB0 -t

avrdude: jtagmkI_recv(): failed to send command to serial port


如此,把可能的设备试了个遍,不行。这才意识到可能是波特率设置问题,加上波特率参数再试

zhy@hoply:~$ sudo avrdude -p m128 -c jtag1 -b 9600 -P /dev/ttyUSB0 -t


avrdude: jtagmkI_recv(): failed to send command to serial port


就这样一次又一次,终于被我试出来了!

zhy@hoply:~$ sudo avrdude -p m128 -c jtag1 -b 19200 -P /dev/ttyUSB0 -t

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9702
avrdude>

测试一下:

avrdude> part
>>> part

AVR Part                      : ATMEGA128
Chip Erase delay              : 9000 us
PAGEL                         : PD7
BS2                           : PA0
RESET disposition             : dedicated
RETRY pulse                   : SCK
serial program mode           : yes
parallel program mode         : yes
Timeout                       : 200
StabDelay                     : 100
CmdexeDelay                   : 25
SyncLoops                     : 32
ByteDelay                     : 0
PollIndex                     : 3
PollValue                     : 0x53
Memory Detail                 :

                         Block Poll               Page                       Polled
  Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
  ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
  eeprom         4    12    64    0 no       4096    8      0  9000  9000 0xff 0xff
  flash         33     6   128    0 yes    131072  256    512  4500  4500 0xff 0xff
  lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
  hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
  efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
  lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
  calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00
  signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

avrdude> dump eeprom 0 16
>>> dump eeprom 0 16
0000  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
avrdude> erase
>>> erase
avrdude: erasing chip

暂时没什么问题,后续再写个程序试试看。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值