2016-10-17 3 views
0

Я пытаюсь получить доступ к следующей функции:Функция не ошибка компилятора полный прототип

 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 I включает заголовок 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__ 
+0

Определяется ли 'ERROR_CODE'? –

+0

да его определено в .h в blackfin .h – Andre

+0

почему отрицательный мой вопрос !! без комментариев – Andre

ответ

3

Возможно __ERRORS_H__ определяется системой включают , Тест с __MYERRORS_H__.

+1

Как правило, следует избегать написания защитных устройств компилятора, которые начинаются с подчеркивания. Обратите внимание на стандарт C 7.1.3: «Все идентификаторы, начинающиеся с подчеркивания, и буква верхнего регистра или другое подчеркивание всегда зарезервированы для любого использования». – Lundin

+0

@ Lundin, можно ли назвать имя препроцессора «идентификатором»? (Ваш комментарий в дальнейшем действителен! Избегайте подчеркивания в именах.) –

+0

Я не думаю, что C имеет большое формальное определение термина «идентификатор». 6.2.1 представляется наиболее близким к формальному определению: «** Идентификатор может обозначать ** объект, функцию, тег или член структуры, объединения или нумерацию , имя typedef, метку name; ** имя макроса или параметр макроса **. " – Lundin

Смежные вопросы