我相信有很多同学知道单片机烧写程序需要给单片机通电,这种叫做冷启动。但是对于什么是热启动、什么是冷启动,我相信很多同学还不清楚。在STC单片机官方数据手册中其实有详细的说明和解释。如下图是引用STC官方手册43页。
从表中内容可以看到,冷启动和热启动方式最大的区别就是冷启动是从系统无电到有电的过程,而热启动是系统在有电情况下的操作。在这个表格中可以注意到,在系统停电后再上电硬气硬复位后,系统就会从ISP监控程序区开始执行程序,所以会检测是否有ISP下载命令流入,这个其实就是一个烧写程序的过程。有很多同学咨询过芯哥关于远程OTA升级,这个ISP下载命令应该就是非常重要的一个信息,有了这个命令告知单片机,接下来就是输入程序数据了吧。
大家注意在热启动中还有一个和冷启动相同的功能,同样可以让系统从ISP监控程序区开始执行程序,同样让系统检测是否有ISP下载命令流入。这不就也是一个烧写过程吗?那是不是意味着如果通过软件操作ISP_CONTR寄存器,并且可以看到需要写入60H数据即可产生软复位,这个热启动的软复位过程也会引起单片机开始检测ISP烧写命令啊。
为了详细的了解这个ISP_CONTR寄存器,如下图所示,如果想要烧写程序,控制ISP_CONTR寄存器为60H,那么就是B6和B5两个位为1,B6为1表示系统从ISP程序区启动,这也是冷启动产生的一个条件。B5为1表示产生软件系统复位,这也是冷启动会产生的一个条件,只不过这个是软复位,冷启动是硬复位。
那么通过对ISP_CONTR寄存器写入06H后,会不会完成烧写操作呢?下期给大家测试一下。