STC8H单片机触发EEPROM时还需要关中断吗 | 要关总中断
STC8H单片机触发EEPROM时还需要关中断吗?下面程序:EA = 0;是必须的吗?EA = 0; //禁止中断, 避免触发命令无效
IAP_TRIG = 0x5A; //先送5AH,再送A5H到IAP触发寄存器,每次都需要如此
IAP_TRIG = 0xA5; //送完A5H后,IAP命令立即被触发启动//CPU等待IAP完成后,才会继续执行程序。
要关总中断 !
如你送触发命令流【5A, A5】, 5A送后,A5还没送,
其他中断来了,其他的程序里面,
又整到送 5A, 这第2个触发命令不是有效的命令 A5
===是非法命令流,那要重新送触发命令流【5A, A5】
===触发命令状态机判前面是非法命令流 !
===后续还得重新开始触发命令流【5A, A5】
后续的程序还得按合法顺序 送 【5A,A5】
关键您程序肯定没考虑这,所以这有软件漏洞
要关总中断
我也是刚回忆起还有这一出大戏的
我用的8G的,用了挺久不关中断的,暂时没有发生啥问题。 我前两天也是刚看到这个,我个人认为关 一下比较好,写这两个是不能打断的 不是必须的,但是建议加上。
E2写入的时候最好别被打断。
其次E2建议上电读取一次,
断电的时候整体写入一次,
不建议在运行的时候频繁读写E2
重来没关过,一切正常 楼上说从来没关一切正常,那是自己的测试环境远没有客户现场的环境复杂
如果只是玩或者开发对可靠性完全没有要求的消费类产品,那可关可不关,
如果对可靠性有要求,那强烈建议按照官方文档中的说明来,该关的一定要关,不要心存侥幸。
本帖最后由 hhh402 于 2024-7-3 11:54 编辑
谢谢大家{:4_174:}
STC手册以前版本提到过需要关中断再触发,但是最新STC8H手册中已经没有提到要关中断再触发,给的例程也没有关中断,是不是硬件改进了不需要关中断了。
严谨来说还是得关,中断打断写入EEPROM造成写入失败是存在的,你没碰到不代表没有,好的程序就要避免各种错误发生 严谨来讲,一定是需要关掉的。
但是做嵌入式的,您按照现场要求来,可能会更好一点。
我个人是习惯关掉的。 hhh402 发表于 2024-7-3 11:41
谢谢大家
STC手册以前版本提到过需要关中断再触发,但是最新STC8H手册中已经没有提到要关中断再触发,给的 ...
强烈建议,中断该关还得关,
另外,最新的手册中,部分EEPROM操作的例程中不涉及到中断问题的就不会强调,请看STC8H系列的最新手册第1000~1009页,在读写EEPROM时还是会先禁止中断的。
页:
[1]
2