- 最后登录
- 2024-7-26
- 在线时间
- 8372 小时
- 寄托币
- 4828
- 声望
- 711
- 注册时间
- 2007-3-28
- 阅读权限
- 50
- 帖子
- 2714
- 精华
- 0
- 积分
- 8853
- UID
- 2320774
- 声望
- 711
- 寄托币
- 4828
- 注册时间
- 2007-3-28
- 精华
- 0
- 帖子
- 2714
|
发信人: chauncey (ag), 信区: Automobile
标 题: 丰田的自动加速是因为ECM代码写的太烂了
发信站: BBS 未名空间站 (Sun Apr 26 11:27:39 2015, 美东)
http://www.edn.com/design/automotive/4423428/Toyota-s-killer-fi
https://news.ycombinator.com/item?id=9440094
>> The Camry ETCS code was found to have 11,000 global variables. Barr
described the code as “spaghetti.” Using the Cyclomatic Complexity metric,
67 functions were rated untestable (meaning they scored more than 50). The
throttle angle function scored more than 100 (unmaintainable).
代码里有11,000个全局变量,67个函数被认为是根本没法测试的因为代码太乱了。油门
角度的函数被认为是没法维护的
>> Toyota loosely followed the widely adopted MISRA-C coding rules but Barr
’s group found 80,000 rule violations. Toyota's own internal standards make
use of only 11 MISRA-C rules, and five of those were violated in the actual
code. MISRA-C:1998, in effect when the code was originally written, has 93
required and 34 advisory rules. Toyota nailed six of them.
丰田违反了80,000次编程规范。丰田自己的内部标准只采用了11项MISRA-C规范,这其
中5项在实际编程中被违反。MISRA-C应该是有93项必须的规范和34条建议规范。丰田只
符合了6项规范
Stack overflow. Toyota claimed only 41% of the allocated stack space was
being used. Barr's investigation showed that 94% was closer to the truth. On
top of that, stack-killing, MISRA-C rule-violating recursion was found in
the code, and the CPU doesn't incorporate memory protection to guard against
stack overflow.
丰田宣称只用了41%的栈空间,但是调查发现实际使用了94%,而且没有任何栈溢出的保
护(栈溢出会毁坏数据使得程序的运行变得不可预料)
Toyota's ETCS used a version of OSEK, which is an automotive standard RTOS
API. For some reason, though, the CPU vendor-supplied version was not
certified compliant.
Unintentional RTOS task shutdown was heavily investigated as a potential
source of the UA. As single bits in memory control each task, corruption due
to HW or SW faults will suspend needed tasks or start unwanted ones.
Vehicle tests confirmed that one particular dead task would result in loss
of throttle control, and that the driver might have to fully remove their
foot from the brake during an unintended acceleration event before being
able to end the unwanted acceleration.
丰田的CPU用的是没有经过认证的。由于硬件或软件造成的内存数据毁坏由此导致需要
的任务被关闭或者启动不需要的任务被认为是造成自动加速的潜在原因。测试确认一个
特定的被关闭的任务会导致失去油门控制
我不下任何结论,只说事实。
发信人: helloguys (Skywalker), 信区: Automobile
标 题: Re: 丰田的自动加速是因为ECM代码写的太烂了
发信站: BBS 未名空间站 (Sun Apr 26 13:25:00 2015, 美东)
【 在 miroku (Neil) 的大作中提到: 】
: 这报告净扯淡,瞎忽悠,代码质量差不是有bug的必要条件,就算是全是全局变量也不
: 代表一定有bug,就算栈用了90%也不代表就一定会溢出
: 最有说服力的证据是找到bug在哪里,在什么条件下这个bug会导致自动加速
: 看来bug具体在哪里根本没找到啊
严重同意!
社区的脏乱差并不是安全隐患的必要条件。就算是满街吸毒针筒也不代表一定有抢劫偷
窃。最有说服力的证据是捉现行。没捉到现行就说这是个坏区,是不公道的。
发信人: laoselang (LAOSELANG(好吧,别打了,我就是兔子)), 信区: Automobile
标 题: Re: 丰田的自动加速是因为ECM代码写的太烂了
发信站: BBS 未名空间站 (Sun Apr 26 13:27:34 2015, 美东)
bug太多,而且模拟需要时间太长,要求比较苛刻,最后就没做了
因为丰田当机立断,答应赔偿,所以原告就终止了继续分析,好象是赔了300多万?
大致分析过,也做过实验,就是内存出错以后导致那些看门狗什么的进程失效,导致系
统卡死,油门会开到最大或者固定在某个位置,人为修改内存大部分时候都会出现卡死
结果丰田非要说内存不会出错,人为改变内存模拟出错是不对的,反正就是扯皮,麻痹
的估计等待自然出错而且还要卡死做几年才能遇到那么几次,谁愿意来做呢?这就是
一笔糊涂账,
话说丰田的东西,同级别配置最烂,操控最渣,价格最高,性价比几乎都是倒数第一,
打滑失控软屁股这些安全隐患全系标配
实在没什么必要非买不可,能避免为什么不避免呢?
就算特别追求所谓resale,reliability,honda表现可比丰田更好
发信人: foxbat (狐蝠), 信区: Automobile
标 题: Re: 丰田的自动加速是因为ECM代码写的太烂了
发信站: BBS 未名空间站 (Sun Apr 26 13:45:56 2015, 美东)
堆栈都94%满了居然没有保护,这就好比一个漂亮女的穿个丁字裤在黑人区jogging,出
事是早晚的事情。
全局变量是可以用的,但是如果有一万多个全局变量那程序就成了一张破鱼网,没有可
测性和可维护性,这也是自动加速迟迟没有解决的原因之一。
“最有说服力的证据是找到bug在哪里,在什么条件下这个bug会导致自动加速看来bug
具体在哪里根本没找到啊”,程序都烂成这样了,连丰田自己都找不到真正的解决方式
了,你还要别人找bug?
发信人: laoselang (LAOSELANG(好吧,别打了,我就是兔子)), 信区: Automobile
标 题: Re: 丰田的自动加速是因为ECM代码写的太烂了
发信站: BBS 未名空间站 (Sun Apr 26 16:20:57 2015, 美东)
查不出来问题是因为丰田不配合,连尼玛的所谓查看源代码也必须在丰田提供的一台老
掉牙的电脑上用丰田自己写的程序由丰田的员工操作来模拟,专家们只能坐旁边看着,
做了2、3天,啥都看不出来,最后所谓的专家组也没办法,只能拿着丰田自己的报告结
论来充数,反正以后如果再出更大问题也不是他们的问题,是丰田自己报告有问题
【 在 leonkun (Leon) 的大作中提到: 】
: 说起来都是头头是道,美国国会当年不是搞了个调查吗,最后也没查出毛病来,后来只
: 说脚垫的问题。
发信人: laoselang (LAOSELANG(好吧,别打了,我就是兔子)), 信区: Automobile
标 题: Re: 丰田的自动加速是因为ECM代码写的太烂了
发信站: BBS 未名空间站 (Sun Apr 26 21:57:36 2015, 美东)
如果是真的遇到丰田自动加速,换空档,长按按钮什么的是不管用的
国内有个scion高速上跑了一个多小时,最后靠踩刹车拉手刹加上剐蹭护栏才停下来的
换空档系统根本没反应
就看运气,运气好可能一会就回复了,运气不好就一直加速,如果高速不堵到还好,如
果遇到堵车什么的就只能自求多福了,这个以前发过视频的,躲来躲去最后还是撞了
【 在 ROSEBuilder ( 柔丝专家) 的大作中提到: 】
: 那么挂空挡莘补锌泥? |
|