• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

FATFS问题

Spirit 2018-10-30 浏览量:566

在STM32上移植FATFS,使用外部Flash芯片

然后发现很奇怪的现象,写文件时操作,把FIL file定义为局部变量,打开文件正常

写文件时返回FR_INVALID_object错误

偶然把FIL file定义为全局变量,运行一切正常。想起原子的例程里,FIL变量向来是分配内存出来的。
何解?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 全局变量使用中一般不会产生变化,局部变量容易变化
    • 发布于 2018-10-31
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 文件系统的函数需也需要调用的,所以不能用局部变量
    • 发布于2018-10-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 你这个file肯定是全局变量才可以用的,是预先分配好内存的,不像Linux系统那种是带MMU的可以随时随地分配内存。
    • 发布于2018-10-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个变量。后续在文件系统的其它地方也是需要调用的,如果用的是局部变量,那fatfs的内部函数引用的有可能是一个错误的地址,但如果是全局变量,那个地址就是固定的了
    • 发布于2018-11-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个变量是一个相应的全局变量,可以直接在你地址中进行相关的访问
    • 发布于2018-11-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 实际的来说局部变量只会在你的函数执行的时候才会分配内存空间
    • 发布于2018-12-11
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

FATFS问题