Программирование ARM: решение проблем, FAQ Keil: определение inline-функции приводит к ошибке L6218E Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Keil: определение inline-функции приводит к ошибке L6218E Печать
Добавил(а) microsin   

Определение inline функции в заголовке без модификатора static приводит к ошибке линкера L6218E.

Пример:

inline void DEBUG_CHECK (uint32_t errorcode)
{
   while(errorcode != NRF_SUCCESS)
   {
      LED_ON();
      nrf_delay_ms(50);
      LED_OFF();
      nrf_delay_ms(50);
   }
}

Сообщение об ошибке:

linking...
.\Objects\fw.axf: Error: L6218E: Undefined symbol DEBUG_CHECK (referred from main.o).
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.
Finished: 2 information, 0 warning and 1 error messages.

Добавление ключевого слова static к определению inline-функции устраняет ошибку:

static inline void DEBUG_CHECK (uint32_t errorcode)
{
   ...

 

 

Добавить комментарий


Защитный код
Обновить

Top of Page