__stack_chk_fail栈检查失败,spi max310x驱动出现栈溢出的内核panic错误,导致内核保护,系统卡死

 

 

 https://blog.csdn.net/guofeizhi/article/details/90511898

https://www.cnblogs.com/gsharpsh00ter/p/6420233.html

由于我的spi转串口max310x驱动,再做静电试用时,出现栈溢出的内核panic错误,导致内核保护,系统卡死

根据上面2个博客,推断问题是由于芯片在受到静电干扰时,驱动读取的寄存器有效数据长度错误

驱动设置的buf长度是128字节,很有可能读出的字节数错误,超过128字节,导致内存溢出,覆盖了函数的返回地址ret

gcc编译器添加的函数保护代码,检测到ret与进入时不一致,就直接让系统进入panic,已保护系统

 

 

 

 修改代码如上,对读出的数据长度作了一个防错误机制。

posted on 2020-03-17 09:37  紫枫术河  阅读(520)  评论(0)    收藏  举报

导航