- 论坛徽章:
- 1
|
本帖最后由 linuxfellow 于 2012-04-30 09:16 编辑
嵌入式系统里如何处理警告信息?好像好多系统都是接着运行直到oops, 有问题后头疼好几天来找原因,尤其是那些从用户返回有“reset"问题的板子,一点头绪都没有。领导还会站你后面看着你查错,那感觉真不是滋味。
突然想起波音的飞机都有黑匣子,于是想在嵌入式装置里也设计一个。
先要把系统的警告(alarm)给分类:
critical
major
minor
debug_info
再定义一个黑匣子, 在系统的永久信息保存区申请256bytes
在这个黑匣子里倒序放上4~5条critical alarms。
这样每次产品从用户回来时,首先读黑匣子, 希望这个黑匣子能给我足够的信息去找到问题的根源。
黑匣子里的信息很重要,每条信息必须小,信息要丰富,至少让你知道从那里下手排查。
现在能想到的有下面几项
进程id,
正在执行的函数,
PC 寄存器
当前函数返回地址(LR继承器 powerpc)
含有exception info的寄存器(ESR in powerpc)
这样,就可以大概知道这些critical alarm在什么情况下发生的。
我还有点犹豫, 关键是如何把这瓜卖出去。希望它真正有用,不影响系统性能。而且不停往NVM里写内容本省就容易出问题。
先拿到在这里show一下,大家看我这瓜会有市场吗? |
|