清雨影 发表于 2013-3-13 22:46:43

请教各位高手一个问题:开发单片机的高手一定要用仿真器吗?

最近认识一位同学,不说别的,水平肯定比我这个菜鸟高,他和我说,51比较基础,比较慢速,初学者才用,还有就是开发板也是初学者入门使用的,以后一般使用仿真器开发.

我不禁有一个疑问:开发单片机一定要用仿真器吗?我调试程序的时候,都是让它通(debugprintf()//自己写的函数)输出到LCD或者串口上调试的,最后整个工程将debugprintf替换为//debugprintf,删除某些多余模块(或者条件编译)实现的.

至于断点,是通过检测按键实现的,比如while(!keynext);之类的语句最后也可以注释掉.

仿真器的作用到底是什么呢?为什么卖那么贵?(买不起的说)

还有那些自制的仿真器,原理是什么?如果仿真器不接外设,和软件仿真有什么区别?

lcofjp 发表于 2013-3-13 22:57:57

用仿真器提高效率是肯定的

aozima 发表于 2013-3-13 23:29:40

高手在于,有仿真可以调得很好,没仿真器也能调好。{:titter:}

清雨影 发表于 2013-3-13 23:40:01

lcofjp 发表于 2013-3-13 22:57 static/image/common/back.gif
用仿真器提高效率是肯定的

求详细,杜邦线和开发板就不能提高效率了吗?

lcofjp 发表于 2013-3-14 00:03:47

清雨影 发表于 2013-3-13 23:40 static/image/common/back.gif
求详细,杜邦线和开发板就不能提高效率了吗?

仿真器是用来调软件的,不是调硬件的,跟杜邦线开发板没啥关系,看样子你没写过多少代码,不知道调试代码的辛苦。

zhangyidao 发表于 2013-3-14 00:07:38

示波器是最好的,有了示波器可以监视各个信号线。仿真器只是方便看中间值。

wajlh 发表于 2013-3-14 00:25:13

一般都是直接串口打印出来,需要什么参数,就打什么参数很方便。仿真器更多的时候是当做下载线用

bailangcn 发表于 2013-3-14 00:27:16

串口表示无压力 不过jlink在手,有啥好担心的呢

god-father 发表于 2013-3-14 07:49:22

相同条件下,用仿真器开发,效率比不用要高很多倍。

wb156351 发表于 2013-3-14 08:37:58

有的芯片没有jtag口,用不了仿真器,就还是得用串口输出了

wangyeqing333 发表于 2013-3-14 08:53:12

用仿真器很方便,不用也可以,直接看现象,调试的时候麻烦点

pulan 发表于 2013-3-14 09:19:25

很少用,基本jtag口都不留。

Louis_Bright 发表于 2013-3-14 09:52:30

关于仿真器,哥有话说。

十多年前,哥刚出道,工资才700一个月,一个伟福仿真器,仿真51系列的(那个时候Keil C51才刚刚冒头),4000多,被俺不小心烧掉了,当时我脸就绿了……

那时候混得比较多的是C51BBS,老古之类的论坛,有高手说,要逼着自己不用仿真器,进步会快一些。

摧残之下,必有高手!

从那时候起,我就不用仿真器。直到现在,比如STM8/STM32的仿真/下载器这么方便并且便宜,我也坚持不用仿真的功能。

因为我现在觉得,过分依赖仿真器,只会让你在最初设计的时候偷懒,系统架构设计考虑得不够详细,写代码的时候,也会对健壮性等无意识的忽略。

现在我自己写的程序,bug相当少,即使有bug,90%以上看到现象,就知道大概在什么地方,而不是想怎么通过仿真器去查找在什么地方。

但另外一方面,我并不是否定仿真器。

当你使用一个新的MCU并且做二次开发的时候,项目又比较大,这个时候,仿真器确实能加快上手的速度,也能加快效率。

最后说一句:现在用汇编写程序的人,依然能混口饭吃,甚至比大部分人混得好。

AVR_USER 发表于 2013-3-14 10:07:48

从来就没用过仿真器的路过,都是直接在产品上调试程序!!

huangyiwen 发表于 2013-3-14 10:10:12

用仿真器效率高,找错误也比较容易

lvhoujun 发表于 2013-3-14 10:22:11

117433525 发表于 2013-3-14 10:27:12

我也是基本不用仿真器,以前一同事跟我说尽量别依赖仿真器,后来就慢慢不用了。现在调程序基本就是能有一个IO脚和一个示波器就能知道MCU内部的情况了,查错非常快每次程序不正常,基本可以非常快的知道那块代码出问题。

清雨影 发表于 2013-3-14 21:29:26

lcofjp 发表于 2013-3-14 00:03 static/image/common/back.gif
仿真器是用来调软件的,不是调硬件的,跟杜邦线开发板没啥关系,看样子你没写过多少代码,不知道调试代码 ...

可能吧,我写过最大的一个代码(.c文件)也就25KB...但是我觉得:1,软件大多是硬件无关的,往往可以在VC++之类的IDE上完成,2,就算是用到底层的,用软件debug应该也够用了吧.

清雨影 发表于 2013-3-14 21:35:43

wajlh 发表于 2013-3-14 00:25 static/image/common/back.gif
一般都是直接串口打印出来,需要什么参数,就打什么参数很方便。仿真器更多的时候是当做下载线用 ...

那么贵的下载线....顺便问一下,仿真器是怎么获取内部运行情况的,比如寄存器的值

清雨影 发表于 2013-3-14 21:38:20

Louis_Bright 发表于 2013-3-14 09:52 static/image/common/back.gif
关于仿真器,哥有话说。

十多年前,哥刚出道,工资才700一个月,一个伟福仿真器,仿真51系列的(那个时候K ...

摧残之下,必有高手,严重同意!
顺便问一下,如果调试程序软件的话,为什么不用debug呢?以keil为例,它可以直接查看各种寄存器什么的啊!
为什么仿真器会影响开发程序的健壮性呢?

siriux 发表于 2013-3-14 22:23:46

Louis_Bright 发表于12 小时前 static/image/common/back.gif
关于仿真器,哥有话说。

十多年前,哥刚出道,工资才700一个月,一个伟福仿真器,仿真51系列的(那个时候Keil C51才刚刚冒头),4000多,被俺不小心烧掉了,当时我脸就绿了……...

求问为什么是混口饭吃啊〜读书那会老师说,当年那些用汇编写代码的年薪现在都好几百万了

scybzxl 发表于 2013-3-15 10:04:32

与12楼同样。很少用,基本jtag口都不留。

Wxy8030 发表于 2013-3-15 10:13:37

建议:有仿真器,当然要用 —— 前提是要用就要用好的,千万别用烂仿真器!否则有问题的时候你都不知道该怀疑板子还是仿真器!
如果是在公司打工,那么尽量买好仿真器用(反正也不是花自己的钱,何必心疼呢),很多不用仿真器的高手其实都是自己在干,为了节省成本而不用的。

zc3909 发表于 2013-3-15 10:19:05

以最短时间达到设计要求为最终目标,用或不用仿真器依习惯和系统资源为准










山外メ雲ジ 发表于 2013-3-15 10:25:28

有仿真器,效果很多好很多,更容易找到bug。

51比较基础,比较慢速,初学者才用……用低端的单片机实现其他人用高端单片机才能实现的功能,这才是高手……市场上,你能用更加便宜低端的单片机就能实现别人用高价高性能单片机才能实现的产品,你就有优势

chengtina 发表于 2013-3-15 10:54:32

我是坛里有位大师告诉我的,这么小的系统,用什么仿真器?用下去脑子不会动了,然后就一直不用,都直接上目标板看效果,因为他告诉我,脑子就是仿真器......
但是仿真器也是个好东西..

清雨影 发表于 2013-3-15 12:28:10

山外メ雲ジ 发表于 2013-3-15 10:25 static/image/common/back.gif
有仿真器,效果很多好很多,更容易找到bug。

51比较基础,比较慢速,初学者才用……用低端的单片机实现其他 ...

可是我说我的智能光控系统准备用51的时候,老师说,用51,产品的档次就上不去……

orzorzorzorz 发表于 2013-3-15 12:33:07

有仿真器不用的人是装逼
为了显摆而已

wb156351 发表于 2013-3-15 12:49:27

现在盗版jlink也就50元左右,用来调还是很方便的,串口也依靠软件的,波特率设置也容易出错,示波器的价格更是令人望而却步。

山外メ雲ジ 发表于 2013-3-15 13:28:03

清雨影 发表于 2013-3-15 12:28 static/image/common/back.gif
可是我说我的智能光控系统准备用51的时候,老师说,用51,产品的档次就上不去…… ...

我跟你说,市场上大部分的MP3(低端) 都是 用 51 做的……
页: [1]
查看完整版本: 请教各位高手一个问题:开发单片机的高手一定要用仿真器吗?