历史上的今天
返回首页

历史上的今天

今天是:2025年03月31日(星期一)

正在发生

2020年03月31日 | linux 下 avr开发环境的搭建

2020-03-31 来源:eefocus

环境: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


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

推荐阅读

史海拾趣

Apex [Apex Microtechnology]公司的发展小趣事

Apex Microtechnology凭借其卓越的产品质量和服务水平,赢得了客户的广泛认可。其中,公司连续两年获得雷神公司的5星供应商卓越奖,这一奖项是雷神公司综合防御系统业务部对供应商在质量和性能方面的最高认可。Apex Microtechnology的获奖不仅体现了其在电子行业中的领先地位,也为其未来的发展奠定了坚实的基础。

这些故事展示了Apex Microtechnology在电子行业中的发展历程和成就,体现了其在功率模拟技术领域的专业实力和不断创新的精神。作为电子行业的佼佼者,Apex Microtechnology将继续致力于为客户提供更优质的产品和服务,推动电子行业的持续发展。

BLT Circuit Services公司的发展小趣事

随着公司实力的不断增强,BLT Circuit Services开始积极拓展国内外市场。公司积极参加各类行业展会,与国内外同行进行深入交流与合作,不断提升公司的知名度和影响力。同时,公司还根据市场需求调整产品策略,推出了一系列符合市场需求的新产品,进一步扩大了市场份额。

AEL [AEL Crystals Ltd]公司的发展小趣事

AEL Crystals Ltd公司成立于1960年,最初专注于石英频率控制元件的研发与生产。在创立初期,公司面临着技术挑战和市场竞争的双重压力。然而,凭借创始人的远见卓识和团队的不懈努力,AEL Crystals逐渐在石英频率控制领域站稳了脚跟。公司通过持续改进生产工艺和提高产品质量,逐渐赢得了客户的信任和支持。

EQCOLOGIC公司的发展小趣事

随着环保意识的日益增强,电子行业对环保的要求也越来越高。EQCOLOGIC公司积极响应环保号召,将环保理念贯穿于产品研发、生产和销售的各个环节。公司采用环保的生产工艺和材料,减少污染物的排放;同时,还开展了一系列环保宣传活动,提高员工和消费者的环保意识。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了基础。

Corex Intervest Inc公司的发展小趣事

Corex Intervest Inc公司在电子行业的发展历程中,始终保持着稳健的步伐和进取的精神。公司不断适应市场变化和技术更新,不断调整战略方向和发展重点。在未来,公司将继续加大研发投入,拓展新的应用领域和市场空间,为电子行业的发展贡献更多的力量。

这五个故事展示了Corex Intervest Inc公司在电子行业中的发展历程和取得的成就。从创立初期的艰难起步到技术创新、市场拓展、战略合作和持续发展的不断推进,Corex Intervest Inc公司始终保持着积极进取的精神和不断创新的态度,在电子行业中取得了显著的成绩。

C.K TOOLS公司的发展小趣事

近年来,随着环保意识的不断提高,电子制造行业也开始关注绿色生产。C.K TOOLS积极响应这一趋势,开始在生产过程中采用环保材料和工艺。他们研发出了一系列可回收、可降解的工具材料,减少了生产过程中的环境污染。同时,他们还通过优化生产流程、提高能源利用效率等方式,降低了生产过程中的能耗和排放。这些举措不仅符合了电子制造行业的绿色生产要求,也提升了C.K TOOLS的企业形象和市场竞争力。

请注意,以上故事均基于虚构和假设,并未涉及C.K TOOLS公司真实的业务情况和市场策略。如需了解更多关于C.K TOOLS在电子行业中的发展故事,建议查阅相关的行业报告、公司年报或新闻报道等公开资料。

问答坊 | AI 解惑

急求:信号发生器

毕业设计,急,设计一个信号发生器,最好用单片机实现。要求如下: 1.至少实现三个波形,正弦、方波、三角波,还个锯齿波。 2.可以调频调幅,频率10~20KHZ以上,幅度0~5V步进可以自己设定,频率达不到,至少能上KHZ。 3.LED显示,键盘输入。 有 ...…

查看全部问答>

前两天,一个48岁结构工程师从公司离职

公司以他不能够胜任他的岗位工作为由,要求他离开。唉,从他的境况看到,35岁还从事具体的设计工作的人员以后的生存缩影!…

查看全部问答>

请问这道题为什么选C?

某计算机的cache共有16块,采用2路组相联映射方式(即每组2块)。每个主存块大小为32字节,按字节编址。主存129号单元所在主存块应装入到的Cache组号是 A.0  B.2   C.4  D.6…

查看全部问答>

怎样让触摸屏右键出来慢一些

就是按住不动时,那一圈黑点慢慢地出来。…

查看全部问答>

在WINCE60里面增加了RIL组件,RIL也被加载了,但在AP里面调RIL_Initialize( )接口,怎么老是报数据异常呢?为什么?AP不能调RIL接口

在WINCE60里面增加了RIL组件,RIL也被加载了,但在AP里面调RIL_Initialize( )接口,怎么老是报数据异常呢?为什么?AP不能调RIL接口?…

查看全部问答>

请问,WINCE注册表[HKEY_LOCAL_MACHINE\Drivers\BuiltIn]下的DLL都会被设备管理器加载吗?

我在移植SDIO驱动SDHC_SC2440.dll,它在注册表里的项如下。但是我感觉它的入口函数DllEntry、初始化函数SDH_Init没有执行。 我在开头用printf打印,在串口上没看到输出。 在[HKEY_LOCAL_MACHINE\\Drivers\\Active]下确实也没看到这个DLL。 难道 ...…

查看全部问答>

关于入门求助

我是刚参加工做的应届毕业生,由于单位使用的环境是VxWorks,进行嵌入式软件开发,主要是开发通信方面的软件,希望有好心人能推荐比较好的入门书籍,(由于保密的需要所以不能在上班期间上网,所以只能是看书籍等资料了)小弟先谢谢了〉。。。。。…

查看全部问答>

初学c51,xdata的相关问题.

初学c51,对xdata的地址分配不是很了解,比如我定义了以下几个变量。 unsigned char xdata        b1; unsigned char xdata        b2; unsigned int xdata      b3; unsigned ch ...…

查看全部问答>

【问TI】官方评估板自带的仿真器的器件选型

请教TI的专家,最近新推的官方评估板,仿真器部分都用一片FT2232和两片LVC125,一片LVC126来实现,驱动和接口芯片选用74LVC125和LVC126,能否用常见的HC125和HC126来代替呢? 74系列的LVCt和HC系列芯片工作电压都能在3.3V稳定工作,但LVC的输入有5V ...…

查看全部问答>

MSP430 LaunchPad支持那些20Pin的IC

MSP430 LaunchPad支持那些20Pin的IC,我来弄点玩玩,14Pin不够用啊…

查看全部问答>