调用f_open函数之后,竟然进了硬中断。。。

2019-08-11 17:56发布

执行到下面这句之后
 #if !_FS_READONLY
 mode &= FA_READ | FA_WRITE | FA_CREATE_ALWAYS | FA_OPEN_ALWAYS | FA_CREATE_NEW;
跳到了
void HardFault_Handler(void)
{
  /* Go to infinite loop when Hard Fault exception occurs */
  while (1)
  {
  }
}

是不是我ffconf.h配置的不对?我就改了个#define _CODE_PAGE 936 这个,别的都没动?
我把中断里的while(1),注释掉之后,程序继续执行了,就是不知道对不对,看看,待会儿发结果。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
正点原子
1楼-- · 2019-08-12 17:51
回复【7楼】JXCine:
---------------------------------
就是file没有分配内存导致的.
李冠林
2楼-- · 2019-08-12 23:25
回复【8楼】正点原子:
---------------------------------
请问老师,file的内存一般是在编译的时候由编译器进行分配的么,如果我不声明为指针变量就行了是么?

我看到您的在战舰开发板配套库函数程序中用到板载的SRAM对两个文件对象进行内存分配(在exfuns_init(void)函数中由下面两行代码)

fs[0]=(FATFS*)mymalloc(SRAMIN,sizeof(FATFS)); //为磁盘0工作区申请内存
fs[1]=(FATFS*)mymalloc(SRAMIN,sizeof(FATFS)); //为磁盘1工作区申请内存

想请问老师,这样一来fs[]数组实际运行时,临时存储在战舰开发板的板载SRAM中么?
正点原子
3楼-- · 2019-08-13 00:47
回复【9楼】李冠林:
---------------------------------
1,
你知道指针怎么用吧?
不知道的话,学习下指针的使用先.
2,
malloc是从SRAMIN,申请的
自然fs[]就是用的内部SRAM的内存.
MarginLost
4楼-- · 2019-08-13 02:36
f_open 怎么会报错呢,需要引用什么

一周热门 更多>