函数没有完整的原型编译器错误

时间:2016-10-17 09:26:14

标签: c embedded

我正在尝试访问以下功能

     err = SetupForFlash();

该函数是用blackfin.c编写的。

ERROR_CODE SetupForFlash(void)
{   
    unsigned imask_value;

    imask_value = cli();                /* disable interrupts */ 

    /* set clock multiplier and CCLK and SCLK divider */
    *pSIC_IWR |= 0x0001;                /* enable PLL wakeup */
    *pPLL_DIV  = ((CCLK_DIVIDER & 0x3) << 4) | (SCLK_DIVIDER & 0xF); 
    *pPLL_CTL  = (CLOCK_MULTIPLIER << 9) & 0x7E00;    /* set new clock multplier */
    ssync();
    idle();                             /* wait until PLL settle down */

    /* enable async memory banks and defines timing/waitstate */ 
    *pEBIU_AMBCTL0 = 0x7bb07bb0;
    *pEBIU_AMBCTL1 = 0xffc27bb0;
    *pEBIU_AMGCTL  = 0x000f;            /* enable all external memory banks */

    /* */    
    sti(imask_value);                   /* enable interrupts */

    return NO_ERR;
}

原型在blackfin.h中如下

ERROR_CODE SetupForFlash(void);

我在irq_software.c中使用该功能 我包含了带有原型的头文件blackfin.h 但我得到一个警告,该功能没有完整的原型

这是blackfin.h的标题

#ifndef __ERRORS_H__
#define __ERRORS_H__

// enum of possible errors
typedef enum
{
        NO_ERR,
        POLL_TIMEOUT,
        VERIFY_WRITE,
        INVALID_SECTOR,
        INVALID_BLOCK,
        UNKNOWN_COMMAND,
        PROCESS_COMMAND_ERR,
        NOT_READ_ERROR,
        DRV_NOTAT_BREAK,
        BUFFER_IS_NULL,
        NUM_ERROR_CODES,
}ERROR_CODE;


// function prototypes
ERROR_CODE SetupForFlash(void);
ERROR_CODE GetCodes(void);
ERROR_CODE PollToggleBit(unsigned long ulOffset);
ERROR_CODE ResetFlash(void);
ERROR_CODE EraseFlash(void);
ERROR_CODE EraseBlock( int nBlock );
ERROR_CODE UnlockFlash(unsigned long ulOffset);
ERROR_CODE WriteData( unsigned long ulStart, long lCount, long lStride, int *pnData );
ERROR_CODE FillData( unsigned long ulStart, long lCount, long lStride, int *pnData );
ERROR_CODE ReadData( unsigned long ulStart, long lCount, long lStride, int *pnData );
ERROR_CODE ReadFlash( unsigned long ulOffset, int *pnValue );
ERROR_CODE WriteFlash( unsigned long ulOffset, int nValue );
ERROR_CODE GetSectorNumber( unsigned long ulOffset, int *pnSector );
ERROR_CODE GetSectorStartEnd( long *lStartOff, long *lEndOff, int nSector );


#endif // __ERRORS_H__

1 个答案:

答案 0 :(得分:4)

可能__ERRORS_H__由系统包含。使用__MYERRORS_H__进行测试。