__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,已保护系统


修改代码如上,对读出的数据长度作了一个防错误机制。
浙公网安备 33010602011771号