工具/软件:Code Composer Studio
我在使用elm-chan的FATFS库编译代码时遇到问题。
我创建了一个函数,它应该将SD卡或闪存格式化为FAT32。
void sdcard_fd (void) //格式卷
{
errCode = f_mkfs (0,FS_FAT32,0);
如果(errCode != FR_OK)
{
fprintf (stdout,("\n 错误:格式化驱动器失败,错误代码:%d\r\n"),错误代码);
返回;
}
否则
{
fprintf(" .....Success!formated drive。");
返回;
}
}
我收到的错误如下所示。
#1.001万链接期间发生错误;未构建"H_5529_V01.Ut"
#1.0234万-D未解析的符号仍然存在
gmake:***[HoneyCrise_5529_V01_Sept_2017.ut]错误2017.错误1
gmake:由于错误,目标'all'没有重制。
未解析的符号f_mkfs,首先在./sd_interface.obj中引用
当然,当我注释掉函数的第一行时,此链接器错误消失了。 所以我很确定问题出在这一行。 行 errCode = f_mkfs (0,FAT32,0)发生了某种情况;
当我查看f_mksf的声明时,该声明位于库文件ff 声明如下。
FRESULT f_mkfs (字节,字节,UINT); /*在驱动器上创建文件系统*/
我对本规范的理解如下:
第一个0是SD卡驱动器指示灯。
第二种是指格式类型。 在这种情况下,它是FAT32,在ff.h中定义
第三个0是指分配单位的大小..... 我尝试了 多个值_MAX_SS,FF_MAX_SS,0512和1024。
我是从elm_chung.org上的f_mkfs页面了解这一点的
我在函数中输入的值都有效。 0是一个字节,FAT32 =3是一个字节,_MAX_SS =512是一个uint。 代码只编译文件。
包括文件
以下是包含的文件列表。
#include <MSP4S.h>
#include <stdio.h>
#include <string.h>
#include <stdint.h>
#include "include/HAL_SDCard.h"
#include "include/ff.h"
#include "include/ffconf.h"
#include "include/diskio.h"
#include "include/mmc.h"
包括"UART.h"
#include "sd_interface.h"
我添加了许多附加的include文件,以查看是否有帮助。 我添加了include/ff.h和include/ffconf.h ... 这没有什么帮助。 我确信我指向的是正确的库。
为什么我收到链接器错误?
我正在 MAC上使用代码编辑器版本:7.3。 自从我开始开发以来,我没有更新我的代码沉稳性...也许这可能是一个问题。
任何帮助都是非常好的。
Chris