打印

丰田栽了的原因,嵌入式软件工程师都该看看

[复制链接]
楼主: i55
手机看帖
扫描二维码
随时随地手机跟帖
21
z_no1| | 2013-11-4 17:34 | 只看该作者 回帖奖励 |倒序浏览
xxlin1984 发表于 2013-11-4 16:30
"就算是一个while(1);的循环,都不定什么时候就会跑飞。"   -- 这是PC指针飞了!和内存无关。
硬件不稳定 ...

PC指针是CPU里的寄存器,可以看做是CPU的内存。

使用特权

评论回复
22
xxlin1984| | 2013-11-4 17:38 | 只看该作者
PC指针飞了,软件还能干什么事呢,像51时代添加一堆NOP指令,然后祈祷PC指针能飞回来吗?估计都已经车毁人亡了。

另外,宇宙粒子就夸张了,量子理论那种层次的东东不是写几行代码能影响的。

使用特权

评论回复
23
moheionly| | 2013-11-4 18:52 | 只看该作者
不能用全局变量,那用什么?只能是尽可能的在关键数据部位增加冗余校验,**写的语气也太夸张了点

使用特权

评论回复
24
eydj2008| | 2013-11-4 18:57 | 只看该作者
他们的车 为什么还卖得那么火  这么弱智的程序员

使用特权

评论回复
25
kseeker| | 2013-11-4 19:00 | 只看该作者
xxlin1984 发表于 2013-11-4 17:38
PC指针飞了,软件还能干什么事呢,像51时代添加一堆NOP指令,然后祈祷PC指针能飞回来吗?估计都已经车毁人 ...

PC指针飞了,正确设计的软件可以通过看门狗复位然后继续工作。而丰田的软件里居然在中断里喂狗,确实是很让人震惊,这种低级的错误不应该在汽车控制这种场合里出现。
宇宙粒子会导致内存数据被修改甚至损坏电子器件这件事,很多电子学入门的书里都会提及。阿波罗飞船的设计也是一个利用并行模块提高系统可靠性的经典例子。这跟量子理论不搭边,纯粹是电子学的知识。

使用特权

评论回复
评论
xxlin1984 2013-11-5 11:58 回复TA
另外,别提什么阿波罗飞船,您也没深入了解过,别拿这个来压人。 
xxlin1984 2013-11-5 11:57 回复TA
看门狗必须是硬件看门狗,跟LZ位说的软件纠正(任务、堆栈、软件检测)不同吧 
26
qrshi| | 2013-11-4 19:55 | 只看该作者
mark.

使用特权

评论回复
27
luzhch| | 2013-11-4 20:12 | 只看该作者
围观

使用特权

评论回复
28
黄小俊| | 2013-11-4 20:59 | 只看该作者
不好意思,没看完

使用特权

评论回复
29
kx918| | 2013-11-4 21:01 | 只看该作者
学习了,谢谢楼主

使用特权

评论回复
30
gegezaixiao| | 2013-11-4 21:18 | 只看该作者
我怎么感觉有点假呀?

使用特权

评论回复
31
tcwntc| | 2013-11-4 22:00 | 只看该作者
本帖最后由 tcwntc 于 2013-11-5 12:29 编辑
xxlin1984 发表于 2013-11-4 16:30
"就算是一个while(1);的循环,都不定什么时候就会跑飞。"   -- 这是PC指针飞了!和内存无关。
硬件不稳定 ...


PC 不飞 程序也可能飞 难道 ROM就不能出错么?
谁说ROM就不能有错的 有100%保证的硬件么 硬盘 ROM EPROM E2PROM 怎么就保证永远不失效了 没见过不代表不存在 没见过的多了 都保证有效了还做什么冗余 你可以说是小概率事件 别跟我说不可能
还跟这儿玩点评 笑了

使用特权

评论回复
评论
forrest11 2013-11-8 18:47 回复TA
Flash ROM 里面的东西真有可能错。除非熔丝烧断型的,好像鲁棒性非常高。 
xxlin1984 2013-11-5 11:50 回复TA
ROM出错?你见过吗? 你期望的纠正程序都在ROM里,ROM出错了,还有什么是可靠的 
32
i55|  楼主 | 2013-11-4 22:04 | 只看该作者
tcwntc 发表于 2013-11-4 22:00
PC 不飞 程序也可能飞 难道 ROM就不能出错么?

建议你看看本质安全单片机的资料,比如Infineon TriCore、Freescale PPC这些,所有Flash和RAM都有校验,只要校验错误马上触发异常中断。Infineon和Freescale在汽车关键控制领域的垄断地位不是吹出来的,相当于十几块钱STM32性能的本安单片机要200多块也不是就是坑人用的,ARM的Cortex-R4F也是针对这一领域,目前看还没挤进去。

使用特权

评论回复
评论
xxlin1984 2013-11-5 11:54 回复TA
都是触发硬件复位(hard fault),包括PC指针飞了后,指向了被保护的禁止区域。 软件最多能做的,也就复位完成后,检查一下复位原因,看看能干什么 
33
wang5637| | 2013-11-4 22:23 | 只看该作者
xxlin1984 发表于 2013-11-4 16:30
"就算是一个while(1);的循环,都不定什么时候就会跑飞。"   -- 这是PC指针飞了!和内存无关。
硬件不稳定 ...

那还要软件陷阱干嘛 ? 太绝对了 看来你认为只有好的完美硬件才能完成可靠的功能吧?

使用特权

评论回复
评论
xxlin1984 2013-11-5 12:09 回复TA
如果你指的软件陷阱是nop;nop;ljmp ERR; 这种没硬件看门狗时代的不可靠措施还是算了吧。 
34
tcwntc| | 2013-11-5 08:19 | 只看该作者
i55 发表于 2013-11-4 22:04
建议你看看本质安全单片机的资料,比如Infineon TriCore、Freescale PPC这些,所有Flash和RAM都有校验, ...

既然有检测 有中断了 依据**的表述 就不应该出现错误吧 错误注入应该第一时间被硬件检测出来吧 谢谢您的提示 不过我真不是搞这块的 我只是针对一般的硬件提出一下自己的想法 我也没说那些芯片卖的贵是坑人啊 您反应过激了

使用特权

评论回复
35
asn60| | 2013-11-5 11:16 | 只看该作者
很不错。看完了。

使用特权

评论回复
36
diyocean| | 2013-11-5 16:06 | 只看该作者
xxlin1984 发表于 2013-11-4 11:02
“嵌入式系统中内存出错或者程序死亡其实是一种正常现象”
LZ,嵌入式系统 != Windows.

据我所知,要求严格的东西都是都系统备份的,即使是现在的工业控制系统还有一套冗余呢。

看过a320的电子仓,很震撼

使用特权

评论回复
37
jasongu| | 2013-11-7 18:01 | 只看该作者

使用特权

评论回复
38
3htech| | 2013-11-8 15:59 | 只看该作者
长见识了~  多谢i55

使用特权

评论回复
39
BitFu| | 2013-11-8 16:17 | 只看该作者
我觉得还是抗电磁干扰能力不足的可能性较大。

使用特权

评论回复
40
zjp8683463| | 2013-11-8 16:33 | 只看该作者
硬件无错是基础。如果硬件都完蛋了,你软件在多的校验和冗余也没用,可能是错上加错。

使用特权

评论回复
评论
bester 2018-2-4 11:08 回复TA
硬件出错是有概率存在的,软件和算法可以处理这种错误就是好的程序。 简单比如我们的SSD盘,bit坏块的概率很大,但芯片里有算法可以规避坏块... 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则