作者:~~~ | 来源:互联网 | 2023-06-01 10:19
今天写程序的时候,遇到了一种奇怪的现象:f_open函数第一次可以调用,第二次调用时出现程序死掉的现象。起初移植以为时Fat文件系统存在BUG的问题,后来看了很多类似的问题和解决方案
今天写程序的时候,遇到了一种奇怪的现象:
f_open函数第一次可以调用,第二次调用时出现程序死掉的现象。
起初移植以为时Fat文件系统存在BUG的问题,后来看了很多类似的问题和解决方案后,将FIL结构体对象设置为全局变量 ,然后就可以避免该错误。如下图所示,将FIL结构体的两个fread和fwrite变量设置为全局变量,该方法避免了堆栈溢出现象。
下图即该解决方案的来源。