yuanzhongda 发表于 2023-11-30 08:47:25

内存bug

大家有遇到这样的情况吗


iic的中断开启的时候总线有干扰之类的会导致内存中一个0x100的数变成0x00

eric2013 发表于 2023-11-30 08:54:24

这个用什么芯片,主机还是从机,硬件I2C还是模拟I2C。问题描述太少,不好回复。

yuanzhongda 发表于 2023-11-30 10:11:49

eric2013 发表于 2023-11-30 08:54
这个用什么芯片,主机还是从机,硬件I2C还是模拟I2C。问题描述太少,不好回复。

硬件iic 芯片是一国产的仿的stm32f103的,做从机。开了时钟拉伸,有概率出现address应答后,scl拉低的现象,发现是长度突然变成0,没查到有内存溢出堆栈不够之类的现象。而且现象只出现在地址应答后,应该不是内存溢出之类的。

yuanzhongda 发表于 2023-11-30 11:08:49

yuanzhongda 发表于 2023-11-30 10:11
硬件iic 芯片是一国产的仿的stm32f103的,做从机。开了时钟拉伸,有概率出现address应答后,scl拉低的现 ...

因为从机是发送256字节,用的中断方式,如果内存覆盖逸出之类的,在数据传输过程中应该也有这个现象,但是故障复现是只是在address应答之后

emwin 发表于 2023-11-30 13:04:21

遇到过类似的,但是在强干扰情况下。建议与主机侧一起单步调试下

xiashuang 发表于 2023-11-30 16:43:58

I2c主要用模拟的,硬件的测试过103和国产的在工业环境下总是会出问题

庄永 发表于 2023-11-30 19:24:27

yuanzhongda 发表于 2023-11-30 10:11
硬件iic 芯片是一国产的仿的stm32f103的,做从机。开了时钟拉伸,有概率出现address应答后,scl拉低的现 ...

主机要求支持时钟拉伸?

yuanzhongda 发表于 2023-12-1 08:37:07

庄永 发表于 2023-11-30 19:24
主机要求支持时钟拉伸?

从机要分地址处理不同事物,所以还是开着吧,不开可能处理不过来

yuanzhongda 发表于 2023-12-1 08:38:23

emwin 发表于 2023-11-30 13:04
遇到过类似的,但是在强干扰情况下。建议与主机侧一起单步调试下

单步不太行,因为不好复现,复现一次挺久的

庄永 发表于 2023-12-1 22:31:02

yuanzhongda 发表于 2023-12-1 08:37
从机要分地址处理不同事物,所以还是开着吧,不开可能处理不过来

有可能是时钟拉伸支持不好,自己用软件实现一个试试。另外
1、你做从机拉低时钟,要保证主机也支持时钟拉伸,会等你
2、IO是不是已经配置成开漏了
页: [1]
查看完整版本: 内存bug