This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Error C193 : '==' : illegal type conversion ??

Hi,

I have tried to remove this error but no way.

Error C193 : '==' : illegal type conversion from/to 'void'

I have tried to include severals headers file but nothing, how can I resolve this error?

This error is in the function mem_task():

void mem_task (void)
{
Byte state;

  switch (mem_state)
  {
    case MEM_INIT:
    {
   #if MEM_CHIP_TYPE != CHIP_NONE /*if chip defined*/
     if (Hard_chip_init() == OK)/* if init chip OK*/
     {
      mem_state = MEM_CHIP_INIT; /*install chip*/
     }
   #if MEM_CARD_TYPE != CARD_NONE /*if card defined*/
    if (Hard_card_init() == KO) //ERROR: C193
     {
      if (mem_state == MEM_INIT)/*if init fail*/
       {
          print_screen(FATAL_CHIP_SCREEN);/*error*/
          while(1);


and my build target output is :


Build target 'Target 1'
compiling main.c...
compiling I2C.c...
compiling ADC.c...
compiling AUD.c...
compiling DAC.c...
compiling MICRO2.c...
compiling DONG2.c...
assembling STARTUP.A51...
compiling variable.c...
compiling ide_drv.c...
compiling C_Flash.c...
compiling CF_oper.c...
modules\file\fat.h(16): warning C322: unknown identifier
modules\file\fat.h(16): warning C322: unknown identifier
modules\file\fat.h(16): warning C322: unknown identifier
modules\file\fat.h(16): warning C322: unknown identifier
modules\file\fat.h(16): warning C322: unknown identifier
modules\file\fat.h(16): warning C322: unknown identifier
modules\file\fat.h(16): warning C322: unknown identifier
modules\file\fat.h(16): warning C322: unknown identifier
modules\file\fat.h(19): warning C322: unknown identifier
modules\file\fat.h(19): warning C322: unknown identifier
modules\file\fat.h(19): warning C322: unknown identifier
modules\file\fat.h(19): warning C322: unknown identifier
modules\file\fat.h(19): warning C322: unknown identifier
modules\file\fat.h(19): warning C322: unknown identifier
modules\file\fat.h(19): warning C322: unknown identifier
modules\file\fat.h(19): warning C322: unknown identifier
CF_oper.c(189): warning C307: macro 'fat_install': parameter count mismatch
CF_oper.c(240): warning C307: macro 'fat1216_save_cluster_info': parameter count mismatch
CF_oper.c(241): warning C307: macro 'fat1216_feob': parameter count mismatch
compiling cf_drv_.c...
compiling ata.c...
compiling file.c...
modules\file\file.c(184): warning C316: unterminated conditionals
compiling fs_variable.c...
compiling fat.c...
modules\file\fat.c(3790): warning C316: unterminated conditionals
compiling song_task.c...
compiling mem_task.c...
MODULES\MEM\MEM_TASK.C(123): error C193: '==': illegal type conversion from/to 'void'
Target not created

Thank you

Parents Reply Children
  • "I have now 76 warnings."

    Better fix 'em, then!

    As you may now have noticed, it is quite likely that one simple fix will remove many Warnings and/or errors - possibly even all 76 of 'em!

  • Thank you,

    I try to remove alls warnings and I have now 55.

    But I have this errors :

    MODULES\FILE\FAT.C(128): warning C258: 'PBR_record_part1': mspace on parameter ignored
    MODULES\FILE\FAT.C(128): error C244: 'PBR_record_part1': can't initialize, bad type or class

    I don't understand how to remove this error locate in the bold line of my code below:

    .....
    ........
    static  bit     fat1216_create_entry(char *name, bit unicode_name);
    void fat1216_update_fat_sector (Uint16 sector_number)
    
     code Byte PBR_record_part1[] = 
    {
      0xEB, 0x3C, 0x90, /* JMP instruction to boot code */
      'O', 'E', 'M', ' ', 'N', 'A', 'M', 'E', /* OEM name */
      SECTOR_SIZE, SECTOR_SIZE >> 8, /* number of bytes per sector */
      0x00, /* number of sector per cluster */
      NB_RESERVED_12_16, NB_RESERVED_12_16 >> 8, /* number of reserved sector */
      NB_FATS, /* number of FAT */
      NB_ROOT_ENTRY, NB_ROOT_ENTRY >> 8, /* number of root directory entries */
      0x00, 0x00, /* total sectors if less than 65535 */
      HARD_DISK, /* media byte */
    };
    
    code Byte PBR_record_part2[] =
    {
      FAT_DRIVE_NUMBER, /* Drive number */
      0x00, /* not used */
      FAT_EXT_SIGN, /* extended boo
    .........
    .......
    

    Thank you

  • Did you look at the preview before posting? Which bold line?

  • since you do not show what e.g. 'HARD_DISK' defines, then nobody can say what it, most likely, is. My GUESS is that you have a mspace identifier in one of the many unknowns in your array.

    Why do you not simply use the tried, true and used by may debuuging approach of commenting out parts of your array till you find the offending entry and then go from there, instead if posting here "I have an array with 47 members, I have no idea which member creates the error, I will not give you the declaration of them memberes, L will not..., I will not - tell me what is wrong?"

    Also, if you took a bit of your, evidently precious, time and typed C258 into the search window, you would see things like a problem in 7.02; that, if you have a memory identifier in all the things you inclued; if ......

    Erik

  • Yes,

    all the 5 defines are in fat.h file:

    #define SECTOR_SIZE    ((Uint16)512)     /* supported sector size */
    
    #define NB_RESERVED_12_16 ((Byte)1)         /* number of reserved sectors */
    
    #define NB_FATS           ((Byte)2)
    
    #define NB_ROOT_ENTRY     ((Uint16)512)
    
    #define HARD_DISK         ((Byte)0xF8)      /* hard disk device */
    

    And in the compiler.h :

    typedef unsigned char       Byte;
    typedef unsigned int        Uint16;
    

    So in the file fat.c , there are includes to files compiler.h and fat.h.

  • try commenting out those that are like NB_ROOT_ENTRY, NB_ROOT_ENTRY >> 8, I'd guess that e.g. NB_ROOT_ENTRY would produce an error being an int in a character array, maybe a typecast is all that is needed, who knows, but till you comment out from the beginning till you find the first offeneding entry anybodys guess is just a guess

    try

     code Byte PBR_record_part1[] =
    {
      0xEB, 0x3C, 0x90, /* JMP instruction to boot code */
      'O', 'E', 'M', ' ', 'N', 'A', 'M', 'E', /* OEM name */
     /* XXX  SECTOR_SIZE, SECTOR_SIZE >> 8, /* number of bytes per sector */
      0x00, /* number of sector per cluster */
     NB_RESERVED_12_16, NB_RESERVED_12_16 >> 8, /* number of reserved sector */
      NB_FATS, /* number of FAT */
      NB_ROOT_ENTRY, NB_ROOT_ENTRY >> 8, XXX *./* number of root directory entries */
      0x00, 0x00, /* total sectors if less than 65535 */
      HARD_DISK, /* media byte */
    };
    

    (XXX inserted to emphasize changed places)

    and, if that works, include the commented out entries one by one till you find the (first) offender, then 'fix' the offender (typecasst?) uncomment the next ....

    Erik

  • Thanks Erik,

    I'll do it,
    but first of all, this code is coming from a library and why I have problem I think it's because I have insert some files of this library in my existent program, so I have implementing's problem maybe because this library is compiling without any error?

    But I'll try what you say.

    thank you

  • A comment about the code:

    static  bit     fat1216_create_entry(char *name, bit unicode_name);
    void fat1216_update_fat_sector (Uint16 sector_number)
    
     code Byte PBR_record_part1[] =
    {
      ...
    };
    


    Where is the semicolon after the function prototype for fat1216_update_fat_sector()? Without it, the function declaration and the PBR_record_part1 declaration will flow together, giving the compiler a real nightmare...

  • Thank you very very much :D

    now I have 108 warnings ( but no error )and the Warnings are : L16, L15, L1, L2.

    I think now it is more easy isn'it it?

  • I think now it is more easy isn'it it?
    it would be if you gave the full text of the warnings. Of course I can spend some time and look up what "L16, L15, L1, L2" mean, but I expect you to do so for me. Do you REALLY suppose anyome has the errors and warning memorized by number?

    Erik

  • Thank you Erik,

    Here my target build: (but I cut some place because too long)

    Build target 'Target 1'
    compiling main.c...
    compiling I2C.c...
    compiling ADC.c...
    compiling AUD.c...
    compiling DAC.c...
    compiling MICRO2.c...
    compiling DONG2.c...
    assembling STARTUP.A51...
    compiling variable.c...
    compiling ide_drv.c...
    compiling C_Flash.c...
    compiling CF_oper.c...
    compiling cf_drv_.c...
    compiling ata.c...
    compiling file.c...
    compiling fs_variable.c...
    compiling fat.c...
    compiling song_task.c...
    compiling mem_task.c...
    linking...
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?CF_OPERATIONS3?CF_OPER
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?_FAT1216_CREATE_ENTRY?FAT
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?FAT1216_CLEAR_FAT?FAT
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?FAT1216_SAVE_CLUSTER_INFO?FAT
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?FAT1216_FEOB?FAT
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?_FAT1216_DSEEK?FAT
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?FAT1216_DGETC?FAT
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?_FAT1216_FSEEK?FAT
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?_FAT1216_FSEEK_ABS?FAT
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?FAT1216_GET_NAME?FAT
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?FAT1216_FORMAT?FAT
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?MEM_TASK_INIT?MEM_TASK
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?MEM_TASK?MEM_TASK
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?MEM_STATUS?MEM_TASK
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?MEM_CHECK_CARD?MEM_TASK
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    ....
    ....
    OVERLAY PROCESS
        SEGMENT: ?PR?MEM_LOAD_CARD?MEM_TASK
    *** WARNING L15: MULTIPLE CALL TO SEGMENT
        SEGMENT: ?PR?PRINTF?PRINTF
        CALLER1: ?PR?I2C_ISR?I2C
        CALLER2: ?C_C51STARTUP
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  _FAT1216_GET_ROOT_DIRECTORY
        MODULE:  CF_oper.obj (CF_OPER)
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _FAT1216_GET_ROOT_DIRECTORY
        MODULE:  CF_oper.obj (CF_OPER)
        ADDRESS: D5C1H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _FAT1216_GET_ROOT_DIRECTORY
        MODULE:  CF_oper.obj (CF_OPER)
        ADDRESS: DBBEH
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  FAT1216_SEEK_FIRST
        MODULE:  file.obj (FILE)
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  _FAT1216_GOTO_PARENTDIR
        MODULE:  file.obj (FILE)
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  FAT1216_GOTO_NEXT
        MODULE:  file.obj (FILE)
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  _FAT1216_GOTO_SUBDIR
        MODULE:  file.obj (FILE)
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  FAT1216_GOTO_NEXT
        MODULE:  file.obj (FILE)
        ADDRESS: 0009H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  FAT1216_SEEK_FIRST
        MODULE:  file.obj (FILE)
        ADDRESS: 001AH
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  FAT1216_GOTO_NEXT
        MODULE:  file.obj (FILE)
        ADDRESS: 002EH
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _FAT1216_GOTO_SUBDIR
        MODULE:  file.obj (FILE)
        ADDRESS: E615H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _FAT1216_GOTO_PARENTDIR
        MODULE:  file.obj (FILE)
        ADDRESS: E61FH
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  CF_FORMAT
        MODULE:  fat.obj (FAT)
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  CF_READ_CLOSE
        MODULE:  fat.obj (FAT)
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  _CF_WRITE_OPEN
        MODULE:  fat.obj (FAT)
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  ?_CF_WRITE_OPEN?BYTE
        MODULE:  fat.obj (FAT)
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  _CF_WRITE_BYTE
        MODULE:  fat.obj (FAT)
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  CF_WRITE_CLOSE
        MODULE:  fat.obj (FAT)
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  CF_READ_BYTE
        MODULE:  fat.obj (FAT)
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  CF_READ_BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D443H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  CF_READ_BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D45EH
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  CF_READ_BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D479H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  CF_READ_BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D494H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  CF_READ_CLOSE
        MODULE:  fat.obj (FAT)
        ADDRESS: D4C0H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  ?_CF_WRITE_OPEN?BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D937H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_OPEN
        MODULE:  fat.obj (FAT)
        ADDRESS: D93DH
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D964H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D97FH
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D99AH
    ....
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  CF_CHECK_PRESENCE
        MODULE:  mem_task.obj (MEM_TASK)
        ADDRESS: E6EAH
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  CF_CHECK_PRESENCE
        MODULE:  mem_task.obj (MEM_TASK)
        ADDRESS: E6F5H
    Program Size: data=87.4 xdata=1910 code=59442
    creating hex file from "MPA3_V02"...
    "MPA3_V02" - 0 Error(s), 108 Warning(s).
    
    

    Thank you

  • *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    

    This warning refers to code that is not used in the program. Such code wastes space, of course. However, it also interferes with the overlay process. Each uncalled segment must be treated as the root of its own call tree for purposes of overlay analysis. So, the compiler winds up needing a lot more data/xdata memory for locals and parameters than it would if this code were gone.

    See the REMOVEUNUSED linker option. Or, find a way to remove the extra code from the source and not link it in the first place.

    *** WARNING L15: MULTIPLE CALL TO SEGMENT
        SEGMENT: ?PR?PRINTF?PRINTF
    

    printf() is not reentrant. It is unlikely that you will get the output you want if an interrupt handler and main task (or two interrupts, or two RTOS tasks) call printf at the same time.

    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
    


    The linker can't find a function or variable that is used by another function. Typically this is because you didn't link all the object files/libraries needed for a complete program. Or, if you have "address space overflow" errors, perhaps because of the "uncalled segment" warnings, then some of the program would be missing because it doesn't fit in available memory. Once the linker runs out of room, all later references are seen as unresolved externals.

  • Yes
    for warning L16 maybe do that:

    #if 0

    functionX ()

    #endif

    So I suppose that's good for memory space
    but if a function calls functionX that do warning L1 or L2 I think?

  • Hi,

    I have problem because I don't know how remove
    these 39 warnings
    I had first 108 warnings.

    Build target 'Target 1'
    compiling main.c...
    linking...
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?CF_OPERATIONS3?CF_OPER
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?CF_OPERATIONS4?CF_OPER
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?_FAT1216_FRENAME?FAT
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?FAT1216_FILE_GET_POS?FAT
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?CO?FAT
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?MEM_STATUS?MEM_TASK
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?MEM_CHECK_CARD?MEM_TASK
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?MEM_CARD_SELECT?MEM_TASK
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?MEM_CHIP_SELECT?MEM_TASK
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?MEM_SELECT_NEXT?MEM_TASK
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?MEM_SELECT_FORMAT?MEM_TASK
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
        SEGMENT: ?PR?MEM_LOAD_CARD?MEM_TASK
    *** WARNING L15: MULTIPLE CALL TO SEGMENT
        SEGMENT: ?PR?PRINTF?PRINTF
        CALLER1: ?PR?I2C_ISR?I2C
        CALLER2: ?C_C51STARTUP
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  _CF_WRITE_OPEN
        MODULE:  fat.obj (FAT)
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  ?_CF_WRITE_OPEN?BYTE
        MODULE:  fat.obj (FAT)
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  _CF_WRITE_BYTE
        MODULE:  fat.obj (FAT)
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  CF_WRITE_CLOSE
        MODULE:  fat.obj (FAT)
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  ?_CF_WRITE_OPEN?BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D95FH
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_OPEN
        MODULE:  fat.obj (FAT)
        ADDRESS: D965H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D98CH
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D9A7H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D9C2H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D9D7H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  CF_WRITE_CLOSE
        MODULE:  fat.obj (FAT)
        ADDRESS: D9F1H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  ?_CF_WRITE_OPEN?BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: 9EBEH
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_OPEN
        MODULE:  fat.obj (FAT)
        ADDRESS: 9ECCH
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: 9EF0H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  ?_CF_WRITE_OPEN?BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: 9F91H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_OPEN
        MODULE:  fat.obj (FAT)
        ADDRESS: 9F97H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: 9FC4H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  ?_CF_WRITE_OPEN?BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: 9FE7H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_OPEN
        MODULE:  fat.obj (FAT)
        ADDRESS: 9FEDH
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  CF_WRITE_CLOSE
        MODULE:  fat.obj (FAT)
        ADDRESS: DFEBH
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  CF_WRITE_CLOSE
        MODULE:  fat.obj (FAT)
        ADDRESS: D443H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  ?_CF_WRITE_OPEN?BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D47AH
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_OPEN
        MODULE:  fat.obj (FAT)
        ADDRESS: D480H
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _CF_WRITE_BYTE
        MODULE:  fat.obj (FAT)
        ADDRESS: D4B9H
    *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
        SYMBOL:  _PRINT_MEM
        MODULE:  mem_task.obj (MEM_TASK)
    *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
        SYMBOL:  _PRINT_MEM
        MODULE:  mem_task.obj (MEM_TASK)
        ADDRESS: E085H
    Program Size: data=87.4 xdata=1870 code=59344
    creating hex file from "MPA3_V02"...
    "MPA3_V02" - 0 Error(s), 39 Warning(s).
    

    The problem concerns the files fat.c and mem_task.c ,
    how can I do for eliminate warnings?

    Thank you