This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/F28M35H52C:将 FatFs 从 v0.04b 更新为0.13b

Guru**** 2609895 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/687140/compiler-f28m35h52c-updating-fatfs-from-v0-04b-to-0-13b

器件型号:F28M35H52C

工具/软件:TI C/C++编译器

我在硬件上运行了 SD_CARD_M3示例代码、该代码与 controlCARD 类似、但 SD 卡使用 SSI2而不是 SSI0。  我正在尝试将 SD 卡代码整合到我正在运行的另一个项目中、但由于 许多错误修复和更新、我还想将 FatFs 从 v0.04b 更新到 v0.13b。  我必须指出、只有3个未定义的符号正在停止编译、这些符号是:

未定义的首次引用
符号
------ --------
f_oem2uni ./ff.obj
f_uni2oem ./ff.obj
f_wtoumper ./ff.obj

我已将 ff.c、ff.h、ffconf.h 从 v0.04b 更新为 v0.13b  

ff.c #include ff.h

ff.h #include ffcond.h

在 ffcond.h 的第100行中设置了选项 FF_USE_LFN = 1、如下所示

#define FF_USE_LFN 1.

在 ff.h 中、第314行显示上面的3个符号为有效(不灰显)、如下所示:

/* LFN 支持函数*/
#if FF_USE_LFN >= 1 /*代码转换(在 unicode.c 中定义)*/
wchar ff_oem2uni (WCHAR OEM、word CP);// OEM 代码到 Unicode 转换
wchar ff_uni2oem (DWORD uni、word CP);// Unicode 到 OEM 代码转换
DWORD ff_wtoumper (DWORD uni);/* Unicode 大写转换*/
#endif

ff.c 使用3个符号 ff_oem2uni、ff_uni2oem、ff_wtoumper、它们在 ff.c 文件中未突出显示为未找到、但它们在编译尝试结束时会显示为未找到的符号...

****为项目 CPS_DSTR_m3构建配置 Flash-Standalone **"C

:\\ti\\ccs_700\\ccsv7\\utils\\bin\\gmake"-k 所有
'构建文件:c:/ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/setup_m3.c

/ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/include /ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/ccs '调用:ARM 编译器'"C:/ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/bin/armcl /ti/controlSUITE/device_support/f28m35x/v220/MWare -mv7M3 -code_state=16 -me - ccs_define=-ctrack-g=-cn=-cn-cn-cn=dice-subsband_define-band-c_define-bot-g=-ctrack-g=-cus-g=-ctrack-g=-g199 -ctrack-board-g=-g=-ctrack-guide-guide-band-ctrack-g=-ctrack-g=-ctrack-g=-ctrack-g=-ctrack-g=-gpage= abi=eabi --ual --preproc_with_compile --preproc_dependence="dSTR_m3.d""C:/ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/setup_m3.c
"C:/ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/setup_m3.c




/ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/bin/armcl /ti/controlSUITE/device_support/f28m35x/v220/MWare ",第209行:警告:function "disk_timerproc" declared 'finished building:c:/ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/setup_m3.c /ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/include ''''''building file:c:/ti/controlSUITE/device_support/f28m35x/v220/MWare/utils/cmdline.c /ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/ccs ''inverting:arm Compiler'"c:texampling ""c:texampling "c:goramine""-mctrab-gathere-come"-gathere-ce-me-ce-m="-gathere-m="-me"---ctrab-gathere-me-me-me-ctrab-g="-me"-----mctrab-gathere-m="-me-ctrab-mctrab-me- define=uart_buffer--diag_suppress=10199 --diag_warning=225 --gen_func_subsections=on --abi=eabi --ual --preproc_with_compile --preproc_dependence="cmdline.d""C:/ti/controlSUITE/device_support/f28m35x/v220/MWare/utils/cmdline.c


/ti/controlSUITE/device_support/f28m35x/v220/MWare/third_party/fatfs_v13/src/ff.c

/ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/bin/armcl /ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/ccs /ti/controlSUITE/device_support/f28m35x/v220/MWare 'finishing: c:/ti/controlSUITE/device_support/f28m35x/v220/MWare/utils/cmdline.c /ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/include '''''building file:c:c:ctrab_with_compile ---come"-guide-ctrab-cc-mcc-come"-guide-mcc-mcc=-ctrane.g-cc-cc-mcc-guide-band-ctrane.d"-ctrab-ctrab-cc-cc-cc-cc-ctrade-band-cc-cc-cc-cc-cc-cc-cc-mcc-cc-mcc-cc-cc=- define=uart_buffer--diag_suppress=10199 --diag_warning=225 --gen_func_subsections=on --abi=eabi --ual --preproc_with_compile --preproc_dependence="ff.d"C:/ti/controlSUITE/device_support/f28m35x/v220/MWare/third_party/fatfs_v13/src/ff.c




/ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/bin/armcl /ti/controlSUITE/device_support/f28m35x/v220/MWare 'finishment:c:/ti/controlSUITE/device_support/f28m35x/v220/MWare/third_party/fatfs_v13/src/ff.c /ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/include ''''building file:c:c:with_compile ---preproc_come"--ctrabuse-guide-gcc=-cc-cc-cc-membr-status=-cc-cc-cc-cc-cc-cc-cc-cc-cc-ccs"/ti/controlSUITE/device_support/f28m35x/v220/MWare/third_party/fatfs_v13/port/mmc-concerto.c /ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/ccs -guide-band-cc-cc-cc-cc-cc-cep-cc-cc-cc-cc-cc-cc-cc-cc-cc-cc-cc-cc-cc-cc-cc-cc-cc-cc-cc=- define=uart_buffer--diag_suppress=10199 --diag_warning=225 --gen_func_subsections=on --abi=eabi --ual --preproc_with_compile --preproc_dependence="mmc-convot.d""C:/ti/controlSUITE/device_support/f28m35x/v220/MWare/third_party/fatfs_v13/port/mmc-concerto.c



/ti/controlSUITE/device_support/f28m35x/v220/MWare/board_drivers/set_pinout_f28m35x.c

/ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/ccs "C:/ti/controlSUITE/device_support/f28m35x/v220/MWare/third_party/fatfs_v13/port/mmc-concerto.c /ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/bin/armcl:inflag_combulation"-combes="c:cumb:/ti/controlSUITE/device_support/f28m35x/v220/MWare/third_party/fatfs_v13/port/mmc-concerto.c /ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/include include_path="C:/ti/controlSUITE/device_support/f28m35x/v220/MWare /ti/controlSUITE/device_support/f28m35x/v220/MWare/board_drivers/set_pinout_f28m35x.c


/ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/startup_ccs.c

/ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/bin/armcl /ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/ccs -g -c99 --gcc -define="_flash"-define="_band"-define=ccs -define=uart_buffer--proc_suppress=10199 --diag_warning=225 --gen_func_subsections=on --abi=eabi --exit_buffer=-proc-pinc -compress=10199 --proc:-com_code.combulinc:/ti/controlSUITE/device_support/f28m35x/v220/MWare/board_drivers/set_pinout_f28m35x.c /ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/include -mc_decum_building -inc:-inc:-inc:-inc:-inc:-inc:-inc:-income"-inc:-c_exc_enchinc:-inc:-inc:-mus_enchinc:-inc:-inc:-mus-inc:-inc:-inc: include_path="C:/ti/controlSUITE/device_support/f28m35x/v220/MWare /ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/startup_ccs.c


/ti/controlSUITE/device_support/f28m35x/v220/MWare/utils/uartstdio.c

/ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/ccs -g -c99 --gcc -define="_flash"-define="_band"-define=ccs -define=uart_buffer--proc_suppress=10199 --diag_warning=225 --gen_func_subsections=on --abi=eabi --exit_buffice-compress-proc-compress=10199 --proc-d_code.com_combulin_combuline_combulation="c_sbulinflue.com"-combulincom-com-com-com_combulation_sband_debus-come"-combuline.com-com-combuline.com-com-com-com-combe.com-com-combine.com-com-com-com-combe.com_/ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/include /ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/bin/armcl /ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/startup_ccs.c include_path="C:/ti/controlSUITE/device_support/f28m35x/v220/MWare /ti/controlSUITE/device_support/f28m35x/v220/MWare/utils/uartstdio.c


/ti/controlSUITE/device_support/f28m35x/v220/MWare/utils/ustdlib.c

/ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/bin/armcl /ti/controlSUITE/device_support/f28m35x/v220/F28M35x_examples_Control/setup_m3/m3/ccs -g -c99 -gcc -define="_flash"-define="_band"-define=ccs -define=uart_buffer--proc_suppress=10199 --diag_warning=225 --gen_func_divisd=on --abi=eabi --exit_buffer--proc-compress=10199 --proc:/ti/controlSUITE/device_support/f28m35x/v220/MWare/utils/uartstdio.c -code.combulin_code.com_en_enu_enu_bulation="-intrab_come"-inu_code.come"-inu.com.c:/ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/include -inu_code.comband_dec"-ino:-inu_code.come"-inu_inu_code.come"-inu_inu_code.comband-ino:"c: include_path="C:/ti/controlSUITE/device_support/f28m35x/v220/MWare /ti/controlSUITE/device_support/f28m35x/v220/MWare/utils/ustdlib.c




/ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/bin/armcl -g -c99 -gcc -define="_flash"-define="_band"-define=ccs -define=uart_buffer--proc_suppress=10199 --diag_warning=225 --gen_func_subsections=on --abi=eabi --exabi=---proc-buffer=10199 --proc-dexpress-dmexpress-dmex-dm /ti/controlSUITE/device_support/f28m35x/v220/MWare/utils/ustdlib.c:-code.compress-dtrad_dtrab-dm:-dst_guest-dm:-dm:-dm:-dstr-r-r-dm:-dm:-dstr-dm:-dstr-dm gcc --define="_flash"--define="_industrial"--define=ccs --define=uart_buffer--diag_suppress=10199 --diag_warning=225 --gen_func_subsections=on --abi=eabi --obj -z -m"dst_str.map"--stack_s=rom_files"/ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/lib -"-content/from_files"-line.ms/from_status./from_line.mc.obj -line.ms/from_unic.intrack_en./from_en./r./from.intrack_s./infot./r./intrack_s./inobj -status./intrack_infot."/ti/ccs_700/ccsv7/tools/compiler/ti-cgt-arm_16.9.0.LTS/include -intrack_s./r./r./inobj -m./from./r./intrack_infot./r./r./inobj -m./intrack_s./inobj /ti/controlSUITE/device_support/f28m35x/v220/MWare/cmd/F28M35x_generic_M3_FLASH.cmd /ti/controlSUITE/device_support/f28m35x/v220/MWare/driverlib/ccs/Debug/driverlib.lib


未定义的第一个引用
符号 文件中
------ --------
f_oem2uni ./ff.obj
f_uni2oem ./ff.obj
f_wtoumper ./ff.obj

错误:未解析的符号仍然

存在错误:链接期间遇到错误;"DSTR_m3.out"未生成
>>编译失败
makefile:149:目标'DSR_m3.out'的配方失败
gmake:***[DSTR_m3.out]错误1
gmake:目标'all'不会由于错误而重做。

****构建完成**** 

有什么想法有什么问题吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否在项目中包含了 ffunicode.c 文件? 这就是这些函数的实际实现方式。

    惠特尼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你是对的、我添加了这个问题、问题得到了解决。  我不确定现在是否需要 Unicode 支持、该文件编译为使用闪存空间的巨大常量。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    让我感到失望的是、错误消息是说"未引用的符号"、但它实际上是一个已定义但未定位的函数