STC的(硬件)在线仿真, 請問高人 它如何實現
https://www.amobbs.com/thread-5724524-1-1.html 少年,接触51单片机不超过20年吧。keil自带的一个很古老的技术Monitor-51,单片机需要预先写入监控程序,占用一个串口。
可以实现运行,停止,单步,断点,查看变量等功能。
停止是通过PC发数据使单片机进入串口中断程序,从而打断用户程序运行。
运行是退出串口ISR,恢复用户程序运行。
断点是通过修改用户程序断点位置的指令,跑飞至监控程序运行。单步运行同理。
keil原版的Monitor-51,用户程序是在外扩RAM里运行的,非常便于修改,但掉电就丢失了。
后来一家叫SST的公司,推出的51单片机具有IAP功能,就是程序可以自己改写Flash内容。
SST将Monitor-51改造,用户程序也可以放在Flash中,直接一片单片机就可以仿真,不需要专用硬件,但是每加一个断点,单步每走一步,都要擦写Flash,所以速度慢一些,对Flash寿命也有影响。
这一时期出现了很多简易的51仿真器,都是基于SST这一方案做的。
再后来,STC横空出世,终于一统全宇宙,独霸51单片机。
但因为STC单片机内部没有仿真部件,要想仿真,还是采用了监控程序的方案,基本照搬SST的Monitor-51。
现代的单片机一般集成仿真部件,不占用单片机运行资源,例如ARM,STM8,C8051F等。
单片机内部仿真部分通过特定接口与调试主机通讯,例如JTAG,SWD,SWIM等,这种单片机使用的所谓仿真器其实是一个接口协议转换器,例如JLINK,STLINK等,就是USB-JTAG-SWD接口转换,实际的仿真功能是在单片机内部实现。
早期51比较功能完整的仿真器是采用的专用仿真芯片,仿真时用专用仿真芯片替代目标芯片,调试完成后再换回正式芯片,适合DIP封装使用芯片插座的场合。现在应该见不到这中了。
简单的OTP单片机也是采用这种仿真技术。 health 发表于 2020-1-5 12:34
少年,接触51单片机不超过20年吧。
keil自带的一个很古老的技术Monitor-51,单片机需要预先写入监控程序, ...
把这段历史都回顾了,终于看明白了 health 发表于 2020-1-5 12:34
少年,接触51单片机不超过20年吧。
keil自带的一个很古老的技术Monitor-51,单片机需要预先写入监控程序, ...
再后来,STC横空出世,终于一统全宇宙,独霸51单片机。
但因为STC单片机内部没有仿真部件,要想仿真,还是采用了监控程序的方案,基本照搬SST的Monitor-51。
这个说到了点子上了,{:lol:} 51仿真还是silicon lab做的最好,stc赶紧仿制啊 health 发表于 2020-1-5 12:34
少年,接触51单片机不超过20年吧。
keil自带的一个很古老的技术Monitor-51,单片机需要预先写入监控程序, ...
现代的单片机,仿真不错。 hzpyl 发表于 2020-1-5 12:57
现代的单片机,仿真不错。
呵呵,这个现代是相对于古代说的,不是韩国那个现代。 謝謝各位!
看來,STC 不僅重新定義了 (EEPROM),唯一序列號,
現在更重新定義 硬件仿真! health 发表于 2020-1-5 12:34
少年,接触51单片机不超过20年吧。
keil自带的一个很古老的技术Monitor-51,单片机需要预先写入监控程序, ...
所以STC就不应该吹的震天响,还鄙视各种link,呵呵 stc压根不明白什么叫jtag吧? 不懂2楼这段历史的人,以为STC又发明了什么黑科技了呢
不过STC的芯片,性价比的确不错。
health 发表于 2020-1-5 12:34
少年,接触51单片机不超过20年吧。
keil自带的一个很古老的技术Monitor-51,单片机需要预先写入监控程序, ...
有瑕疵现代的是调试器不是仿真器内含的监控调试模块 不是仿真模块 Puppey 发表于 2020-1-5 12:53
51仿真还是silicon lab做的最好,stc赶紧仿制啊
那个调试器记得掉固件超级频繁 health 发表于 2020-1-5 12:34
少年,接触51单片机不超过20年吧。
keil自带的一个很古老的技术Monitor-51,单片机需要预先写入监控程序, ...
51仿真器应该就是大概10年前基本消失的08年还有在卖 补充下, 国内用MON51协议第一个在SST芯片上做出51仿真器的人,他的ID叫etool . 他已经离开这个世界了.大概是在20年, etool推出SST-51仿真器. 然后他到周立功公司, 继续做仿真器. 记得曾经为了某件事情,他也来过这里.. 性价比高==========便宜没好货!!! IAP15和STC8测试频繁掉线,没法用。相比stlink就是就是垃圾 "早期51比较功能完整的仿真器是采用的专用仿真芯片,仿真时用专用仿真芯片替代目标芯片,调试完成后再换回正式芯片,适合DIP封装使用芯片插座的场合。现在应该见不到这中了。"学生时代看到别人用这个仿真器羡慕的要死,但最后没钱只买了51编程器 health 发表于 2020-1-5 12:34
少年,接触51单片机不超过20年吧。
keil自带的一个很古老的技术Monitor-51,单片机需要预先写入监控程序, ...
原理讲的很明白,,感谢{:handshake:} easier 发表于 2020-1-5 13:18
謝謝各位!
看來,STC 不僅重新定義了 (EEPROM),唯一序列號,
現在更重新定義 硬件仿真! ...
哈哈,大火炉不是吹的,EEPROM 本来是24C01 一样的,可以字节编程的,STC 那种Flash 模拟出来的,真的重新定义了EEPROM , “再后来,STC横空出世,终于一统全宇宙”,我觉得不是他横空出世,而是ATMEL、PHILIPS、华邦、SST这些公司觉得51架构性能没办法提升了,不搞了。想想同期的silicon把c51性能提到极限高度,除价格外,其它方面是对手吗? nanfang2000 发表于 2020-1-5 18:37
"早期51比较功能完整的仿真器是采用的专用仿真芯片,仿真时用专用仿真芯片替代目标芯片,调试完成后再换回 ...
记得那时候连编程器也没有,天天研究用8139网卡做编程器,最后也没搞成,怕把电脑搞烧了 health 发表于 2020-1-5 12:34
少年,接触51单片机不超过20年吧。
keil自带的一个很古老的技术Monitor-51,单片机需要预先写入监控程序, ...
原来如此 zllfdd 发表于 2020-1-5 20:11
记得那时候连编程器也没有,天天研究用8139网卡做编程器,最后也没搞成,怕把电脑搞烧了 ...
哈哈我也研究网卡做编程器,还有改BIOS什么的,最后把主板弄成砖 再后来,STC横空出世,终于一统全宇宙,独霸51单片机。==》基本上就没仿真神马事了,,,只要编程的时候思路清晰,一个几十k的程序,也就烧录个几十次差不多了,{:titter:} health 发表于 2020-1-5 12:34
少年,接触51单片机不超过20年吧。
keil自带的一个很古老的技术Monitor-51,单片机需要预先写入监控程序, ...
04年,飞利浦的P89C51RD2就已经是STC差不多的功能了。我当时用过。 就仅于 51 的仿真,个人觉得本坛的 mon51 大侠搞得还真不错!小巧好用。
health 发表于 2020-1-5 12:34
少年,接触51单片机不超过20年吧。
keil自带的一个很古老的技术Monitor-51,单片机需要预先写入监控程序, ...
看了你的描述,明白了stc的调试原理,多谢。
10年前我自己写了一个类windows内核玩,运行在bochs、virtual pc上。后来嫌闭着眼调试太麻烦了,于是就写了一个和gdb通过串口通信的stub程序,其实就是一个串口isr,中断优先级设为最高,解析gdb发来的串对内存进行读写修改,从而实现单步、断点、修改变量等功能。现在看来,stc51仿真也是一个桩子而已。 多谢2楼讲解 STC还是很方便的。至少使用简单。STM32功能强大得多。 其实用串口来输出调试信息就够了,关键代码后面来个printf()。
页:
[1]