打印
[AVR单片机]

敢问AVR路在何方???

[复制链接]
17036|69
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2010-8-14 08:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hotpower 于 2010-8-14 18:14 编辑

菜农受21ic之邀,6月4日到6月9日在北京进城了5天。北京之行主要是有几件重要的事情必须到北京见过各位大佬。其中AVR就有2件事情:1. ATmega406替代TI的BQ2060的可能性2. ATmega48的ISP问题为此双龙安排了和Atmel的ATmega406设计师谈了一个多小时,并拿到了样片。由于时间紧,CortexM0菜鸟未毕业,故不敢冒进而采用ATmega48为主控制。在菜农近年成功的设计中,老实话首选AVR,因为它编程非常容易。俺在ATtiny26、ATmega48~ATmega32采用,再高就采用ARM7.回到西安后就完成了M48的系统设计,手绘了图纸,并准备编程。随后发现有些问题,主要是AVR的价格和货源供应及项目延缓让俺有比对的时间。故有了俺做CortexM0菜鸟的事情。俺在这里做“斑竹”,实际是想总结AVR应用之经验,相信AVR会重新崛起。俺不想PK,因为在AVR方面,俺编程使用的是C++语言,汇编和C都没用过,故没资格PK。对于AVR的粉丝们,心里肯定没有放弃。做这个斑竹实际很迷茫,大举讨论又不符合当前时局,不讨论技术在这里整日口水???没人愿意这样,看到这样。。。俺反对汇编或不鼓励在AVR用汇编现在看不是没有道理的,假若AVR从此消失,那么C/C++的编程者可以迅速“转行”,但汇编编程者会怎样呢???继续留守等待???所以,汇编不可能使人达到什么境界,效率不会领先多少,为什么现在还要鼓吹汇编呢???PC端可以用汇编,它的运行效率第一,但现在有几个人还在用汇编???很迷茫,敢问众多网友:AVR路在何方???

相关帖子

来自 2楼
ZRL700424| | 2010-8-14 08:53 | 只看该作者
N年前开始弄单片机时就用的是汇编(有些单片根本没有C编译器),换过N次芯片后用AVR,因为以前的项目都是用汇编写的,换芯片时就一条一条指令翻译(项目不大,花不了多少时间),做大点的项目时,因为有汇编写好的各种子程序,写起来也很方便,所以汇编一直用到现在。
    另外,几年前也想把汇编换成C,可惜换成C后根本装不下,因为汇编都用到了百分之九十几。
    现在AVR又缺货又涨价,换成其他芯片了,FLASH容量都很大,不用担心容量问题,所以彻底放弃汇编了

使用特权

评论回复
来自 3楼
宇宙飞船| | 2010-8-14 11:39 | 只看该作者
-----在菜农今年成功的设计中,老实话首选AVR,因为它编程非常容易。
-----俺在ATtiny26,ATmega48~ATmega32采用,再高就采用ARM7.  
为何只字不提有丰富外设的STM32
---------回到西安后就完成了M8的系统设计,手绘了图纸,并准备编程。随后发现有些问题,主要是AVR的
---------价格和货源供应及项目延缓让俺有比对的时间。
----------故有了俺做CortexM0菜鸟的事情。   

M0的有那么多的外设?IO的操作速度可以PK过AVR?

-------俺在这里做“斑竹”,实际是想总结AVR应用之经验,相信AVR会重新崛起。

司马超之心。

-------俺不想PK,因为在AVR方面,俺编程使用的是C++语言,汇编和C都没用过,故没资格PK。

推广C++的野心不灭。

----俺反对汇编或不鼓励在AVR用汇编现在看不是没有道理的,假若AVR从此消失,那么
---C/C++的编程者可以迅速“转行”,但汇编编程者会怎样呢???继续留守等待???

你可以调用MPEG解压驱动,但是你也可以研究MPEG解压驱动,一个是调用,另一个是学习,两码事。

-----所以,汇编不可能使人达到什么境界,效率不会领先多少,为什么现在还要鼓吹汇编呢???

没有汇编算法与混编基础,你有能力DIY一个有速度效率的C库出来?答案是根本不可能。

----PC端可以用汇编,它的运行效率第一,但现在有几个人还在用汇编???很迷茫,敢问众多网友:
----AVR路在何方???
很多PC机上的高手黑客用汇编,国内就有一个专门讨论PC机汇编的论坛,并且出了两个版本的PC机汇编书。
里面详细讲述了用汇编直接调用windows 的API的混合编程。

使用特权

评论回复
来自 4楼
孤独泪| | 2010-8-15 22:21 | 只看该作者
不知道为什么,楼主都做了大半辈子单片机开发,还在停留在用什么的基础上。
我一直以来对于单片机来说,用什么根本不重要,而重要的是你会做什么。单片机只是实现你做的东西的一种方式而已,只有用什么单片机完全可以根据你产品的要求,选择怎样的单片机。不管是avr, 51,msp430还是arm7,arm9,M3, M0这些根本不是重点,根据楼主的经验那种不是一个月就可以熟悉。而一个月对于一个经典的产品你,完全是可以消耗的气的。当然国内老板普遍希望工程师能一天出图,三天出板,一周出程序,半个月就产品出货的快餐开发。

使用特权

评论回复
评分
参与人数 2威望 +12 收起 理由
xiaoaihua + 2
xwj + 10
来自 5楼
eydj2008| | 2010-8-21 19:33 | 只看该作者
汇编的效率是高很多的  我试过我用AVR C 编的一个程序 运行要25US 而用汇编只要12US
很多老工程师还在用汇编的,他们不但会用汇编 C C++ 更强。。。编程主要是思想(算法)

使用特权

评论回复
6
murex| | 2010-8-14 08:57 | 只看该作者
AVR用是真的还挺不错,就是这个价格与供货问题整的太不是滋味了

使用特权

评论回复
7
123jj| | 2010-8-14 09:00 | 只看该作者
支持大叔!

AVR的路在脚下!

使用特权

评论回复
8
yewuyi| | 2010-8-14 11:33 | 只看该作者
用ASM的人换MCU也很简单,何来留守说法?!


做产品重要的是设计思想,至于具体如何写代码,不管是ASM还是C或者C++,都不会形成太大的障碍。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
古道热肠 + 2
9
ZRL700424| | 2010-8-14 12:07 | 只看该作者
用ASM的人换MCU也很简单,何来留守说法?!


做产品重要的是设计思想,至于具体如何写代码,不管是ASM还是C或者C++,都不会形成太大的障碍。
yewuyi 发表于 2010-8-14 11:33


使用特权

评论回复
10
airwill| | 2010-8-14 12:44 | 只看该作者
虽然本人在 n 年前 (n>=3), 就玩了混编.
把一个 C 语言写的 BOOTLOAD 进行压缩精简.
进一步压缩, 就进入了混编, 把部分子程序改成了汇编.

个人最终的总结, 虽然增加了很多的精力, 却没有压缩掉多少代码.
还不如熟悉编译器的特性, 进行优选的算法来的好.
比如, 在 GCCavr 中的位测试:
用 (val & 0x20) ==0 ? 就不如 (val|0xDF) != 0xFF 效率高
......

使用特权

评论回复
11
hotpower|  楼主 | 2010-8-14 16:01 | 只看该作者
N年前开始弄单片机时就用的是汇编(有些单片根本没有C编译器),换过N次芯片后用AVR,因为以前的项目都是用汇编写的,换芯片时就一条一条指令翻译(项目不大,花不了多少时间),做大点的项目时,因为有汇编写好的各 ...
ZRL700424 发表于 2010-8-14 08:53


几乎所有的单片机上市后我都研究过,而且都是从汇编研究开始的,AVR也不例外。
AVR进入中国后,俺就想用它替代89c51,还专程去北京atmel办事处。
后来由于有些问题解决不了而放弃。

后来M8,T26等上市,在小控制上非常好,而且C/C++编译器也很成熟了。
俺起步AVR就是直接用了C++.
由于T26容量很小,故将其改为C编译,但结果比C++还大。也许是俺无能吧。

对于ZRL700424谈的ASM转C,俺认为从原理和编程思路来可能更快省力。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
xuyiyi + 1
12
hotpower|  楼主 | 2010-8-14 16:24 | 只看该作者
本帖最后由 hotpower 于 2010-8-15 00:01 编辑
-----在菜农近年成功的设计中,老实话首选AVR,因为它编程非常容易。-----俺在ATtiny26,ATmega48~ATmega32采用,再高就采用ARM7.  为何只字不提有丰富外设的STM32---------回到西安后就完成了M8的系统设计,手绘 ...宇宙飞船 发表于 2010-8-14 11:39
为何只字不提有丰富外设的STM32
俺在网上的程序全部是经过产品调试通过后的摘录,虽然俺玩过STM32,并且香水城送给俺2套开发板,但都是弟子做ISP实验,俺无产品任务故没有权利评估。
司马超之心。
即使是狼子野心,俺也无话可说。因为俺进驻AVR是在你声明选美以前。
推广C++的野心不灭。
面向对象编程是MCU未来编程的方向,在容量和速度都接近PC时,C++,Java,C#等编程思想和理念不会没有应用之道理。
你可以调用MPEG解压驱动,但是你也可以研究MPEG解压驱动,一个是调用,另一个是学习,两码事。
现在专用芯片很多,有时没必要都在一个芯片内实现。分工协作可能更合理。
没有汇编算法与混编基础,你有能力DIY一个有速度效率的C库出来?答案是根本不可能。
C编程者不可能不了解汇编指令,混编在整体上不一定比纯C的效率高多少。混编对系统的威胁比纯汇编或纯C的威胁更大。片面追求效率而忽略系统稳定和安全有时是没必要的。
很多PC机上的高手黑客用汇编,国内就有一个专门讨论PC机汇编的论坛,并且出了两个版本的PC机汇编书。里面详细讲述了用汇编直接调用windows 的API的混合编程。
这个俺可能比各位更有资格发言,因为俺号称“红色黑客”。俺每天都需要用W32DASM、IDA和OllyDBG进行某些PC软件的分析,不明白汇编肯定是不行的。俺每天不是只在21ic游荡,http://www.pediy.com/也是俺一天到晚游荡的。加条裤子,因为飞船是在认真分析问题,虽持不同政见。俺声明,俺未自己加过一条裤子。

使用特权

评论回复
评分
参与人数 2威望 +2 收起 理由
xneasy + 1
xuyiyi + 1
13
hotpower|  楼主 | 2010-8-14 16:31 | 只看该作者
虽然本人在 n 年前 (n>=3), 就玩了混编.
把一个 C 语言写的 BOOTLOAD 进行压缩精简.
进一步压缩, 就进入了混编, 把部分子程序改成了汇编.

个人最终的总结, 虽然增加了很多的精力, 却没有压缩掉多少代码.
还不如熟 ...
airwill 发表于 2010-8-14 12:44


对于C位域的优化,特别是几个位的同时置位或清除,优化十分明显。
这个俺在AVR上体会明显。

当AVR的资源大时,如ARM的资源和速度,我们就没必要把精力花在代码的优化上面。

使用特权

评论回复
14
xuyiyi| | 2010-8-14 17:14 | 只看该作者
大叔说的好!
俺学习了!

使用特权

评论回复
15
hotpower|  楼主 | 2010-8-16 00:33 | 只看该作者
不知道为什么,楼主都做了大半辈子单片机开发,还在停留在用什么的基础上。我一直以来对于单片机来说,用什么根本不重要,而重要的是你会做什么。单片机只是实现你做的东西的一种方式而已,只有用什么单片机完全可 ...孤独泪 发表于 2010-8-15 22:21
全部理解,俺不可能只停留在基础研究上…

使用特权

评论回复
16
lpcfans| | 2010-8-16 13:27 | 只看该作者
无路可走。
所以不支持老HOT竞选版主。

使用特权

评论回复
17
xuyiyi| | 2010-8-16 13:48 | 只看该作者
条条大道通罗马,俺支持HOT大叔做正版主。

使用特权

评论回复
18
BitFu| | 2010-8-16 18:07 | 只看该作者
一群热血沸腾的青年,在他最稚嫩的时期冒着第一次吃螃蟹的风险为他铺路,让他走上了与前辈并肩的道路上,
如今他的未来不再掌握于这些热血青年手中,而在于为他谋划未来的“监护人”ATMEL.

使用特权

评论回复
19
xuyiyi| | 2010-8-16 19:29 | 只看该作者
这群热血沸腾的青年---------就是芯艺设计室成员。

使用特权

评论回复
20
astudent| | 2010-8-18 09:44 | 只看该作者
1# hotpower

赞同不用汇编,反对用C++。

使用特权

评论回复
21
astudent| | 2010-8-18 09:45 | 只看该作者
14# hotpower

你研究的单片机类型快到一个营了,佩服。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1460

主题

21619

帖子

506

粉丝