打印
[STC单片机]

未知BUG

[复制链接]
1313|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lysfht123|  楼主 | 2020-4-16 15:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     程序中设计了参数“C   XXX ”   每次按下按键参数会+5,可是  在执行动作的时候   参数“C ”会变值,原来是0  执行动作期间变成2.导致不能正常工作了,在工作的时候没有任何操作参数“C”的语句。  程序用了两年了,第一次出现这种问题,两个客户,连续4个产品。
   我怀疑是电压输入不稳定造成的单片机工作电压不稳,反复重启造成的。

使用特权

评论回复

相关帖子

沙发
ayb_ice| | 2020-4-16 16:36 | 只看该作者
这么巧,只改变参数吗

使用特权

评论回复
板凳
lysfht123|  楼主 | 2020-4-17 09:20 | 只看该作者
ayb_ice 发表于 2020-4-16 16:36
这么巧,只改变参数吗

是的。有时候还会重启。

使用特权

评论回复
地板
ayb_ice| | 2020-4-17 09:29 | 只看该作者
lysfht123 发表于 2020-4-17 09:20
是的。有时候还会重启。

参数都改变了,应该多从程序角度怀疑

参数应该是存在EEPROM中的,需要复杂时序才可能改变,如果只改变参数应该怀疑程序问题,

使用特权

评论回复
5
lysfht123|  楼主 | 2020-4-17 09:35 | 只看该作者
ayb_ice 发表于 2020-4-17 09:29
参数都改变了,应该多从程序角度怀疑

参数应该是存在EEPROM中的,需要复杂时序才可能改变,如果只改变参 ...

可这个程序用了两年了。

使用特权

评论回复
6
ayb_ice| | 2020-4-17 09:42 | 只看该作者
lysfht123 发表于 2020-4-17 09:35
可这个程序用了两年了。

时间长了,用的人多了,BUG暴露出来了而已,

或者现在的使用环境使得BUG容易出现而已

使用特权

评论回复
7
ayb_ice| | 2020-4-17 09:45 | 只看该作者
lysfht123 发表于 2020-4-17 09:35
可这个程序用了两年了。

可以给参数加个CRC校验,存两份(不要存在相邻的地址),哪个CRC正确就用哪个,如果有一份不正确,则用正确的再存两份

使用特权

评论回复
8
lysfht123|  楼主 | 2020-4-17 13:06 | 只看该作者
ayb_ice 发表于 2020-4-17 09:45
可以给参数加个CRC校验,存两份(不要存在相邻的地址),哪个CRC正确就用哪个,如果有一份不正确,则用正 ...

之前“C”参数单独一个扇区。其他4个参数都在另一个扇区。用的是单片机自带的flash,不是外挂EEPROM、

使用特权

评论回复
9
ayb_ice| | 2020-4-17 13:30 | 只看该作者
lysfht123 发表于 2020-4-17 13:06
之前“C”参数单独一个扇区。其他4个参数都在另一个扇区。用的是单片机自带的flash,不是外挂EEPROM、 ...

这与外挂还是内置的没有关系,片内的写一样要复杂的时序,也可以加CRC

使用特权

评论回复
10
lysfht123|  楼主 | 2020-4-17 14:25 | 只看该作者
ayb_ice 发表于 2020-4-17 13:30
这与外挂还是内置的没有关系,片内的写一样要复杂的时序,也可以加CRC

好的,我试试。

使用特权

评论回复
11
hwpga| | 2020-4-17 14:40 | 只看该作者
本帖最后由 hwpga 于 2020-4-17 14:43 编辑

不用什么CRC,校验和就很稳定
E2P的数据不要一次打包在一起,乱
分批存读,每10个字节左右算一批,做一个校验和
就像仓库入库,出库一样
每一批E2P数据都是独立的
错一批数据也不会影响别的数据
如果数据就1至2个字节,那就做头尾取反校验+数据取反校验
就像遥控器NEC码那种

使用特权

评论回复
12
hwpga| | 2020-4-17 14:44 | 只看该作者
这些都是思考了+踩坑慢慢领悟出来的

使用特权

评论回复
13
ayb_ice| | 2020-4-17 15:39 | 只看该作者
hwpga 发表于 2020-4-17 14:40
不用什么CRC,校验和就很稳定
E2P的数据不要一次打包在一起,乱
分批存读,每10个字节左右算一批,做一个校 ...

不太赞成你这说法

有时数据多,分多包可读性,可维护性差,

多备份几份数据,做校验,开机只有一份数据正确就可以了,同时将不正确的部分修正,

多份数据同时损坏的可能性不大

使用特权

评论回复
14
huyusss| | 2020-4-17 22:02 | 只看该作者
我之前遇到过类似问题:
好几年的成熟方案,程序都没动,但是EEPROM里的数据,会时不时出错;
后找原因,将I2C的上拉电阻由10K改为5.1K后改好,楼主可以试一试。
成熟方案出错,大概率不是软件业务逻辑问题,可能是时钟变了,或者硬件问题。

使用特权

评论回复
15
lysfht123|  楼主 | 2020-4-18 16:26 | 只看该作者
huyusss 发表于 2020-4-17 22:02
我之前遇到过类似问题:
好几年的成熟方案,程序都没动,但是EEPROM里的数据,会时不时出错;
后找原因,将 ...

我用的是内部FLASH。现在产品退回来了,在我这试了24H也没出现客户哪里的问题。在客户手里基本不用半小时就出现。拿上示波器,准备去现场。

使用特权

评论回复
16
lysfht123|  楼主 | 2020-4-18 16:27 | 只看该作者
ayb_ice 发表于 2020-4-17 15:39
不太赞成你这说法

有时数据多,分多包可读性,可维护性差,

我加入了CRC,  关键在公司里 一次也没触发错误指示,这就尴尬了。

使用特权

评论回复
17
ayb_ice| | 2020-4-20 10:34 | 只看该作者
lysfht123 发表于 2020-4-18 16:27
我加入了CRC,  关键在公司里 一次也没触发错误指示,这就尴尬了。

只要现象能容易重现是好解决的

使用特权

评论回复
18
lysfht123|  楼主 | 2020-4-20 20:13 | 只看该作者
ayb_ice 发表于 2020-4-20 10:34
只要现象能容易重现是好解决的

这就尴尬了,我在现场一直实验了4小时,也没出现。之前他们说不用半小时就出现了。这就尴尬了。

使用特权

评论回复
19
ayb_ice| | 2020-4-21 08:29 | 只看该作者
lysfht123 发表于 2020-4-20 20:13
这就尴尬了,我在现场一直实验了4小时,也没出现。之前他们说不用半小时就出现了。这就尴尬了。 ...

够尴尬

使用特权

评论回复
20
lysfht123|  楼主 | 2020-4-21 11:33 | 只看该作者

晚上客户的工程师给我提供了一个重要线索。我们有一款软件,硬件一样但外壳是abs
材质,从来没出过这样的问题。看来很有可能是esd问题了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

213

帖子

1

粉丝