IAR не может сделать длинную очередь (80-е) - PullRequest
0 голосов
/ 19 июня 2020

Я использовал приведенный ниже код. На экране кода IAR после 80-го есть вертикальная линия. В приведенном ниже коде есть вертикальная линия перед переменной «sr c».

__STATIC_INLINE void orderedCpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len)
{
  uint32_t i;
  for (i = 0U; i < len; ++i) 
  {
    dst[i] = src[i];
  }
}

Затем, ошибка ниже

Error[Pe018]: expected a ")"  
Error[Pe020]: identifier "len" is undefined  
Error[Pe020]: identifier "src" is undefined 

Но если я изменю расположение установка переменной "len", как показано ниже. Переменная "len" находится слева от вертикальной линии

__STATIC_INLINE void orderedCpy(volatile uint32_t* dst, uint32_t len, const uint32_t* __RESTRICT src)
{
  uint32_t i;
  for (i = 0U; i < len; ++i) 
  {
    dst[i] = src[i];
  }
}

Затем ошибка изменяется, как показано ниже. "len" определено.

Error[Pe018]: expected a ")"  
Error[Pe020]: identifier "src" is undefined 

Почему IAR не может прочитать после 80-го символа в этом состоянии?

1 Ответ

0 голосов
/ 19 июня 2020

Я нашел ответ! IAR v7 не может принимать "_RESTRICT". поэтому я меняю 'cmsis_iccarm.h', как показано ниже

#ifndef   __RESTRICT
  #if __ICCARM_V8
    #define __RESTRICT            __restrict
  #else
    #define __RESTRICT
  #endif
#endif
...