rt-thread icon indicating copy to clipboard operation
rt-thread copied to clipboard

imxrt1020支持问题

Open guanjianhe opened this issue 3 years ago • 4 comments

打开bsp/imxrt/imxrt1021-nxp-evk/目录下的工程,编译失败错误,提示是启动文件有问题,报错信息如下所示:

..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(1): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(2): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(3): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(4): error: A1163E: Unknown opcode MIMXRT1021 , expecting opcode or Macro

guanjianhe avatar Sep 21 '22 07:09 guanjianhe

使用env重新生成一下工程 scons --target=mdk5 或者 scons --target=iar

mysterywolf avatar Sep 21 '22 12:09 mysterywolf

使用env重新生成一下工程 scons --target=mdk5 或者 scons --target=iar

不行,重新生成后还是报错误,错误如下所示:

Build started: Project: project
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\Keil\ARM\ARMCC\Bin'
Build target 'rtthread'
compiling cstring.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\libc\compilers\common\cstring.c: 0 warnings, 1 error
compiling cstdio.c...
compiling cctype.c...
compiling syscall_mem.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\libc\compilers\armlibc\syscall_mem.c: 0 warnings, 1 error
compiling syscalls.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\libc\compilers\armlibc\syscalls.c: 0 warnings, 1 error
compiling main.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
applications\main.c(22): warning:  #223-D: function "rt_pin_mode" declared implicitly
      rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);
applications\main.c(22): error:  #20: identifier "PIN_MODE_OUTPUT" is undefined
      rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);
applications\main.c(26): warning:  #223-D: function "rt_pin_write" declared implicitly
          rt_pin_write(LED0_PIN, PIN_HIGH);
applications\main.c(26): error:  #20: identifier "PIN_HIGH" is undefined
          rt_pin_write(LED0_PIN, PIN_HIGH);
applications\main.c(28): error:  #20: identifier "PIN_LOW" is undefined
          rt_pin_write(LED0_PIN, PIN_LOW);
applications\main.c: 2 warnings, 15 errors
compiling cstdlib.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\libc\compilers\common\cstdlib.c: 0 warnings, 1 error
compiling div0.c...
compiling cwchar.c...
compiling showmem.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\libcpu\arm\common\showmem.c: 0 warnings, 1 error
compiling backtrace.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\libcpu\arm\common\backtrace.c: 0 warnings, 1 error
compiling ctime.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\libc\compilers\common\ctime.c: 0 warnings, 1 error
assembling context_rvds.S...
compiling cputime.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\cputime\cputime.c(26): error:  #393: pointer to incomplete class type is not allowed
          return _cputime_ops->cputime_getres();
..\..\..\components\drivers\cputime\cputime.c(40): error:  #393: pointer to incomplete class type is not allowed
          return _cputime_ops->cputime_gettime();
..\..\..\components\drivers\cputime\cputime.c: 0 warnings, 14 errors
compiling i2c-bit-ops.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\i2c\i2c-bit-ops.c(26): warning:  #231-D: declaration is not visible outside of function
  rt_inline void i2c_delay(struct rt_i2c_bit_ops *ops)
..\..\..\components\drivers\i2c\i2c-bit-ops.c(28): error:  #393: pointer to incomplete class type is not allowed
      ops->udelay((ops->delay_us + 1) >> 1);
..\..\..\components\drivers\i2c\i2c-bit-ops.c(28): error:  #393: pointer to incomplete class type is not allowed
      ops->udelay((ops->delay_us + 1) >> 1);
..\..\..\components\drivers\i2c\i2c-bit-ops.c(31): warning:  #231-D: declaration is not visible outside of function
  rt_inline void i2c_delay2(struct rt_i2c_bit_ops *ops)
..\..\..\components\drivers\i2c\i2c-bit-ops.c(33): error:  #393: pointer to incomplete class type is not allowed
      ops->udelay(ops->delay_us);
..\..\..\components\drivers\i2c\i2c-bit-ops.c(33): error:  #393: pointer to incomplete class type is not allowed
      ops->udelay(ops->delay_us);
..\..\..\components\drivers\i2c\i2c-bit-ops.c(43): warning:  #231-D: declaration is not visible outside of function
  static rt_err_t SCL_H(struct rt_i2c_bit_ops *ops)
..\..\..\components\drivers\i2c\i2c-bit-ops.c(47): error:  #393: pointer to incomplete class type is not allowed
      SET_SCL(ops, 1);
..\..\..\components\drivers\i2c\i2c-bit-ops.c(47): error:  #393: pointer to incomplete class type is not allowed
      SET_SCL(ops, 1);
..\..\..\components\drivers\i2c\i2c-bit-ops.c(49): error:  #393: pointer to incomplete class type is not allowed
      if (!ops->get_scl)
..\..\..\components\drivers\i2c\i2c-bit-ops.c(53): error:  #393: pointer to incomplete class type is not allowed
      while (!GET_SCL(ops))
..\..\..\components\drivers\i2c\i2c-bit-ops.c(53): error:  #393: pointer to incomplete class type is not allowed
      while (!GET_SCL(ops))
..\..\..\components\drivers\i2c\i2c-bit-ops.c(55): error:  #393: pointer to incomplete class type is not allowed
          if ((rt_tick_get() - start) > ops->timeout)
..\..\..\components\drivers\i2c\i2c-bit-ops.c(57): error:  #393: pointer to incomplete class type is not allowed
          rt_thread_delay((ops->timeout + 1) >> 1);
..\..\..\components\drivers\i2c\i2c-bit-ops.c(68): error:  #167: argument of type "struct rt_i2c_bit_ops *" is incompatible with parameter of type "struct rt_i2c_bit_ops *"
      i2c_delay(ops);
..\..\..\components\drivers\i2c\i2c-bit-ops.c(73): warning:  #231-D: declaration is not visible outside of function
  static void i2c_start(struct rt_i2c_bit_ops *ops)
..\..\..\components\drivers\i2c\i2c-bit-ops.c(85): error:  #393: pointer to incomplete class type is not allowed
      SDA_L(ops);
..\..\..\components\drivers\i2c\i2c-bit-ops.c(85): error:  #393: pointer to incomplete class type is not allowed
      SDA_L(ops);
..\..\..\components\drivers\i2c\i2c-bit-ops.c(86): error:  #167: argument of type "struct rt_i2c_bit_ops *" is incompatible with parameter of type "struct rt_i2c_bit_ops *"
      i2c_delay(ops);
..\..\..\components\drivers\i2c\i2c-bit-ops.c(87): error:  #393: pointer to incomplete class type is not allowed
      SCL_L(ops);
..\..\..\components\drivers\i2c\i2c-bit-ops.c(87): error:  #393: pointer to incomplete class type is not allowed
      SCL_L(ops);
..\..\..\components\drivers\i2c\i2c-bit-ops.c(90): warning:  #231-D: declaration is not visible outside of function
  static void i2c_restart(struct rt_i2c_bit_ops *ops)
..\..\..\components\drivers\i2c\i2c-bit-ops.c(92): error:  #393: pointer to incomplete class type is not allowed
      SDA_H(ops);
..\..\..\components\drivers\i2c\i2c-bit-ops.c: 5 warnings, 30 errors
compiling i2c_core.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\i2c\i2c_core.c(22): warning:  #231-D: declaration is not visible outside of function
  rt_err_t rt_i2c_bus_device_register(struct rt_i2c_bus_device *bus,
..\..\..\components\drivers\i2c\i2c_core.c(27): warning:  #223-D: function "rt_mutex_init" declared implicitly
      rt_mutex_init(&bus->lock, "i2c_bus_lock", RT_IPC_FLAG_PRIO);
..\..\..\components\drivers\i2c\i2c_core.c(27): error:  #393: pointer to incomplete class type is not allowed
      rt_mutex_init(&bus->lock, "i2c_bus_lock", RT_IPC_FLAG_PRIO);
..\..\..\components\drivers\i2c\i2c_core.c(29): error:  #393: pointer to incomplete class type is not allowed
      if (bus->timeout == 0) bus->timeout = RT_TICK_PER_SECOND;
..\..\..\components\drivers\i2c\i2c_core.c(29): error:  #393: pointer to incomplete class type is not allowed
      if (bus->timeout == 0) bus->timeout = RT_TICK_PER_SECOND;
..\..\..\components\drivers\i2c\i2c_core.c(29): error:  #20: identifier "RT_TICK_PER_SECOND" is undefined
      if (bus->timeout == 0) bus->timeout = RT_TICK_PER_SECOND;
..\..\..\components\drivers\i2c\i2c_core.c(31): warning:  #223-D: function "rt_i2c_bus_device_device_init" declared implicitly
      res = rt_i2c_bus_device_device_init(bus, bus_name);
..\..\..\components\drivers\i2c\i2c_core.c(41): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev = rt_device_find(bus_name);
..\..\..\components\drivers\i2c\i2c_core.c(41): warning:  #223-D: function "rt_device_find" declared implicitly
      rt_device_t dev = rt_device_find(bus_name);
..\..\..\components\drivers\i2c\i2c_core.c(42): error:  #20: identifier "RT_Device_Class_I2CBUS" is undefined
      if (dev == RT_NULL || dev->type != RT_Device_Class_I2CBUS)
..\..\..\components\drivers\i2c\i2c_core.c(55): warning:  #231-D: declaration is not visible outside of function
                            struct rt_i2c_msg         msgs[],
..\..\..\components\drivers\i2c\i2c_core.c(60): error:  #393: pointer to incomplete class type is not allowed
      if (bus->ops->master_xfer)
..\..\..\components\drivers\i2c\i2c_core.c(71): warning:  #223-D: function "rt_mutex_take" declared implicitly
          rt_mutex_take(&bus->lock, RT_WAITING_FOREVER);
..\..\..\components\drivers\i2c\i2c_core.c(71): error:  #393: pointer to incomplete class type is not allowed
          rt_mutex_take(&bus->lock, RT_WAITING_FOREVER);
..\..\..\components\drivers\i2c\i2c_core.c(72): error:  #393: pointer to incomplete class type is not allowed
          ret = bus->ops->master_xfer(bus, msgs, num);
..\..\..\components\drivers\i2c\i2c_core.c(73): warning:  #223-D: function "rt_mutex_release" declared implicitly
          rt_mutex_release(&bus->lock);
..\..\..\components\drivers\i2c\i2c_core.c(73): error:  #393: pointer to incomplete class type is not allowed
          rt_mutex_release(&bus->lock);
..\..\..\components\drivers\i2c\i2c_core.c(91): error:  #393: pointer to incomplete class type is not allowed
      if(bus->ops->i2c_bus_control)
..\..\..\components\drivers\i2c\i2c_core.c(93): error:  #393: pointer to incomplete class type is not allowed
          ret = bus->ops->i2c_bus_control(bus, cmd, arg);
..\..\..\components\drivers\i2c\i2c_core.c(112): error:  #70: incomplete type is not allowed
      struct rt_i2c_msg msg;
..\..\..\components\drivers\i2c\i2c_core.c(131): error:  #70: incomplete type is not allowed
      struct rt_i2c_msg msg;
..\..\..\components\drivers\i2c\i2c_core.c(135): error:  #20: identifier "RT_I2C_RD" is undefined
      msg.flags  = flags | RT_I2C_RD;
..\..\..\components\drivers\i2c\i2c_core.c: 7 warnings, 27 errors
compiling cpuport.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\libcpu\arm\cortex-m7\cpuport.c(377): warning:  #177-D: variable "context"  was declared but never referenced
      struct stack_frame *context = &exception_info->stack_frame;
..\..\..\libcpu\arm\cortex-m7\cpuport.c: 1 warning, 1 error
compiling i2c_dev.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\i2c\i2c_dev.c(23): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t i2c_bus_device_read(rt_device_t dev,
..\..\..\components\drivers\i2c\i2c_dev.c(40): warning:  #223-D: function "rt_i2c_master_recv" declared implicitly
      return rt_i2c_master_recv(bus, addr, flags, (rt_uint8_t *)buffer, count);
..\..\..\components\drivers\i2c\i2c_dev.c(43): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t i2c_bus_device_write(rt_device_t dev,
..\..\..\components\drivers\i2c\i2c_dev.c(60): warning:  #223-D: function "rt_i2c_master_send" declared implicitly
      return rt_i2c_master_send(bus, addr, flags, (const rt_uint8_t *)buffer, count);
..\..\..\components\drivers\i2c\i2c_dev.c(63): error:  #20: identifier "rt_device_t" is undefined
  static rt_err_t i2c_bus_device_control(rt_device_t dev,
..\..\..\components\drivers\i2c\i2c_dev.c(77): error:  #20: identifier "RT_I2C_DEV_CTRL_10BIT" is undefined
      case RT_I2C_DEV_CTRL_10BIT:
..\..\..\components\drivers\i2c\i2c_dev.c(78): error:  #393: pointer to incomplete class type is not allowed
          bus->flags |= RT_I2C_ADDR_10BIT;
..\..\..\components\drivers\i2c\i2c_dev.c(78): error:  #20: identifier "RT_I2C_ADDR_10BIT" is undefined
          bus->flags |= RT_I2C_ADDR_10BIT;
..\..\..\components\drivers\i2c\i2c_dev.c(80): error:  #20: identifier "RT_I2C_DEV_CTRL_TIMEOUT" is undefined
      case RT_I2C_DEV_CTRL_TIMEOUT:
..\..\..\components\drivers\i2c\i2c_dev.c(81): error:  #393: pointer to incomplete class type is not allowed
          bus->timeout = *(rt_uint32_t *)args;
..\..\..\components\drivers\i2c\i2c_dev.c(83): error:  #20: identifier "RT_I2C_DEV_CTRL_RW" is undefined
      case RT_I2C_DEV_CTRL_RW:
..\..\..\components\drivers\i2c\i2c_dev.c(85): warning:  #223-D: function "rt_i2c_transfer" declared implicitly
          ret = rt_i2c_transfer(bus, priv_data->msgs, priv_data->number);
..\..\..\components\drivers\i2c\i2c_dev.c(85): error:  #393: pointer to incomplete class type is not allowed
          ret = rt_i2c_transfer(bus, priv_data->msgs, priv_data->number);
..\..\..\components\drivers\i2c\i2c_dev.c(85): error:  #393: pointer to incomplete class type is not allowed
          ret = rt_i2c_transfer(bus, priv_data->msgs, priv_data->number);
..\..\..\components\drivers\i2c\i2c_dev.c(91): error:  #20: identifier "RT_I2C_DEV_CTRL_CLK" is undefined
      case RT_I2C_DEV_CTRL_CLK:
..\..\..\components\drivers\i2c\i2c_dev.c(93): warning:  #223-D: function "rt_i2c_control" declared implicitly
          ret = rt_i2c_control(bus, cmd, bus_clock);
..\..\..\components\drivers\i2c\i2c_dev.c(118): warning:  #231-D: declaration is not visible outside of function
  rt_err_t rt_i2c_bus_device_device_init(struct rt_i2c_bus_device *bus,
..\..\..\components\drivers\i2c\i2c_dev.c(124): error:  #393: pointer to incomplete class type is not allowed
      device = &bus->parent;
..\..\..\components\drivers\i2c\i2c_dev.c(126): error:  #393: pointer to incomplete class type is not allowed
      device->user_data = bus;
..\..\..\components\drivers\i2c\i2c_dev.c(129): error:  #393: pointer to incomplete class type is not allowed
      device->type    = RT_Device_Class_I2CBUS;
..\..\..\components\drivers\i2c\i2c_dev.c(129): error:  #20: identifier "RT_Device_Class_I2CBUS" is undefined
      device->type    = RT_Device_Class_I2CBUS;
..\..\..\components\drivers\i2c\i2c_dev.c(134): error:  #393: pointer to incomplete class type is not allowed
      device->init    = RT_NULL;
..\..\..\components\drivers\i2c\i2c_dev.c(135): error:  #393: pointer to incomplete class type is not allowed
      device->open    = RT_NULL;
..\..\..\components\drivers\i2c\i2c_dev.c: 5 warnings, 30 errors
compiling completion.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\ipc\completion.c: 0 warnings, 12 errors
compiling dataqueue.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\ipc\dataqueue.c(64): warning:  #223-D: function "rt_malloc" declared implicitly
      queue->queue = (struct rt_data_item *)rt_malloc(sizeof(struct rt_data_item) * size);
..\..\..\components\drivers\ipc\dataqueue.c(456): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(queue->queue);
..\..\..\components\drivers\ipc\dataqueue.c: 2 warnings, 12 errors
compiling pipe.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\ipc\pipe.c(413): error:  #20: identifier "rt_device_t" is undefined
  static rt_err_t rt_pipe_open(rt_device_t device, rt_uint16_t oflag)
..\..\..\components\drivers\ipc\pipe.c(424): warning:  #223-D: function "rt_mutex_take" declared implicitly
      rt_mutex_take(&(pipe->lock), RT_WAITING_FOREVER);
..\..\..\components\drivers\ipc\pipe.c(428): warning:  #223-D: function "rt_ringbuffer_create" declared implicitly
          pipe->fifo = rt_ringbuffer_create(pipe->bufsz);
..\..\..\components\drivers\ipc\pipe.c(428): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct rt_ringbuffer *"
          pipe->fifo = rt_ringbuffer_create(pipe->bufsz);
..\..\..\components\drivers\ipc\pipe.c(435): warning:  #223-D: function "rt_mutex_release" declared implicitly
      rt_mutex_release(&(pipe->lock));
..\..\..\components\drivers\ipc\pipe.c(450): error:  #20: identifier "rt_device_t" is undefined
  static rt_err_t rt_pipe_close(rt_device_t device)
..\..\..\components\drivers\ipc\pipe.c(455): warning:  #223-D: function "rt_mutex_take" declared implicitly
      rt_mutex_take(&(pipe->lock), RT_WAITING_FOREVER);
..\..\..\components\drivers\ipc\pipe.c(459): warning:  #223-D: function "rt_ringbuffer_destroy" declared implicitly
          rt_ringbuffer_destroy(pipe->fifo);
..\..\..\components\drivers\ipc\pipe.c(463): warning:  #223-D: function "rt_mutex_release" declared implicitly
      rt_mutex_release(&(pipe->lock));
..\..\..\components\drivers\ipc\pipe.c(482): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t rt_pipe_read(rt_device_t device, rt_off_t pos, void *buffer, rt_size_t count)
..\..\..\components\drivers\ipc\pipe.c(496): warning:  #223-D: function "rt_mutex_take" declared implicitly
      rt_mutex_take(&(pipe->lock), RT_WAITING_FOREVER);
..\..\..\components\drivers\ipc\pipe.c(505): warning:  #223-D: function "rt_mutex_release" declared implicitly
      rt_mutex_release(&pipe->lock);
..\..\..\components\drivers\ipc\pipe.c(524): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t rt_pipe_write(rt_device_t device, rt_off_t pos, const void *buffer, rt_size_t count)
..\..\..\components\drivers\ipc\pipe.c(538): warning:  #223-D: function "rt_mutex_take" declared implicitly
      rt_mutex_take(&pipe->lock, -1);
..\..\..\components\drivers\ipc\pipe.c(547): warning:  #223-D: function "rt_mutex_release" declared implicitly
      rt_mutex_release(&pipe->lock);
..\..\..\components\drivers\ipc\pipe.c(563): error:  #20: identifier "rt_device_t" is undefined
  static rt_err_t rt_pipe_control(rt_device_t dev, int cmd, void *args)
..\..\..\components\drivers\ipc\pipe.c(595): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev;
..\..\..\components\drivers\ipc\pipe.c(597): warning:  #223-D: function "rt_malloc" declared implicitly
      pipe = (rt_pipe_t *)rt_malloc(sizeof(rt_pipe_t));
..\..\..\components\drivers\ipc\pipe.c(602): warning:  #223-D: function "rt_mutex_init" declared implicitly
      rt_mutex_init(&(pipe->lock), name, RT_IPC_FLAG_PRIO);
..\..\..\components\drivers\ipc\pipe.c(610): error:  #20: identifier "RT_Device_Class_Pipe" is undefined
      dev->type = RT_Device_Class_Pipe;
..\..\..\components\drivers\ipc\pipe.c(625): warning:  #223-D: function "rt_device_register" declared implicitly
      if (rt_device_register(&(pipe->parent), name, RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_REMOVABLE) != 0)
..\..\..\components\drivers\ipc\pipe.c(625): error:  #20: identifier "RT_DEVICE_FLAG_RDWR" is undefined
      if (rt_device_register(&(pipe->parent), name, RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_REMOVABLE) != 0)
..\..\..\components\drivers\ipc\pipe.c(625): error:  #20: identifier "RT_DEVICE_FLAG_REMOVABLE" is undefined
      if (rt_device_register(&(pipe->parent), name, RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_REMOVABLE) != 0)
..\..\..\components\drivers\ipc\pipe.c(627): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(pipe);
..\..\..\components\drivers\ipc\pipe.c(651): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t device;
..\..\..\components\drivers\ipc\pipe.c(653): warning:  #223-D: function "rt_device_find" declared implicitly
      device = rt_device_find(name);
..\..\..\components\drivers\ipc\pipe.c(656): error:  #20: identifier "RT_Device_Class_Pipe" is undefined
          if (device->type == RT_Device_Class_Pipe)
..\..\..\components\drivers\ipc\pipe.c(667): warning:  #223-D: function "rt_mutex_detach" declared implicitly
              rt_mutex_detach(&(pipe->lock));
..\..\..\components\drivers\ipc\pipe.c(668): warning:  #223-D: function "rt_device_unregister" declared implicitly
              rt_device_unregister(device);
..\..\..\components\drivers\ipc\pipe.c(673): warning:  #223-D: function "rt_ringbuffer_destroy" declared implicitly
                  rt_ringbuffer_destroy(pipe->fifo);
..\..\..\components\drivers\ipc\pipe.c(676): warning:  #223-D: function "rt_free" declared implicitly
              rt_free(pipe);
..\..\..\components\drivers\ipc\pipe.c: 19 warnings, 24 errors
compiling ringblk_buf.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\ipc\ringblk_buf.c: 0 warnings, 12 errors
compiling cpu_cache.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\libcpu\arm\cortex-m7\cpu_cache.c: 0 warnings, 1 error
compiling ringbuffer.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\ipc\ringbuffer.c(51): error:  #20: identifier "RT_ALIGN_SIZE" is undefined
      rb->buffer_size = RT_ALIGN_DOWN(size, RT_ALIGN_SIZE);
..\..\..\components\drivers\ipc\ringbuffer.c: 0 warnings, 13 errors
compiling waitqueue.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\ipc\waitqueue.c(26): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node)
..\..\..\components\drivers\ipc\waitqueue.c(75): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key)
..\..\..\components\drivers\ipc\waitqueue.c(123): error:  #20: identifier "rt_wqueue_t" is undefined
  int rt_wqueue_wait(rt_wqueue_t *queue, int condition, int msec)
..\..\..\components\drivers\ipc\waitqueue.c: 0 warnings, 15 errors
compiling workqueue.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\ipc\workqueue.c: 0 warnings, 12 errors
compiling cputime_cortexm.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\cputime\cputime_cortexm.c(39): error:  #70: incomplete type is not allowed
  const static struct rt_clock_cputime_ops _cortexm_ops =
..\..\..\components\drivers\cputime\cputime_cortexm.c(64): warning:  #223-D: function "clock_cpu_setops" declared implicitly
          clock_cpu_setops(&_cortexm_ops);
..\..\..\components\drivers\cputime\cputime_cortexm.c: 1 warning, 13 errors
compiling adc.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\misc\adc.c(23): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t _adc_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size)
..\..\..\components\drivers\misc\adc.c(32): error:  #393: pointer to incomplete class type is not allowed
          result = adc->ops->convert(adc, pos + i, value);
..\..\..\components\drivers\misc\adc.c(43): error:  #20: identifier "rt_device_t" is undefined
  static rt_err_t _adc_control(rt_device_t dev, int cmd, void *args)
..\..\..\components\drivers\misc\adc.c(46): error:  #20: identifier "rt_adc_device_t" is undefined
      rt_adc_device_t adc = (struct rt_adc_device *)dev;
..\..\..\components\drivers\misc\adc.c(48): error:  #20: identifier "RT_ADC_CMD_ENABLE" is undefined
      if (cmd == RT_ADC_CMD_ENABLE && adc->ops->enabled)
..\..\..\components\drivers\misc\adc.c(52): error:  #20: identifier "RT_ADC_CMD_DISABLE" is undefined
      else if (cmd == RT_ADC_CMD_DISABLE && adc->ops->enabled)
..\..\..\components\drivers\misc\adc.c(56): error:  #20: identifier "RT_ADC_CMD_GET_RESOLUTION" is undefined
      else if (cmd == RT_ADC_CMD_GET_RESOLUTION && adc->ops->get_resolution && args)
..\..\..\components\drivers\misc\adc.c(66): error:  #20: identifier "RT_ADC_CMD_GET_VREF" is undefined
      else if (cmd == RT_ADC_CMD_GET_VREF && adc->ops->get_vref && args)
..\..\..\components\drivers\misc\adc.c(91): error:  #20: identifier "rt_adc_device_t" is undefined
  rt_err_t rt_hw_adc_register(rt_adc_device_t device, const char *name, const struct rt_adc_ops *ops, const void *user_data)
..\..\..\components\drivers\misc\adc.c(91): warning:  #231-D: declaration is not visible outside of function
  rt_err_t rt_hw_adc_register(rt_adc_device_t device, const char *name, const struct rt_adc_ops *ops, const void *user_data)
..\..\..\components\drivers\misc\adc.c(96): error:  #20: identifier "RT_Device_Class_ADC" is undefined
      device->parent.type = RT_Device_Class_ADC;
..\..\..\components\drivers\misc\adc.c(113): warning:  #223-D: function "rt_device_register" declared implicitly
      result = rt_device_register(&device->parent, name, RT_DEVICE_FLAG_RDWR);
..\..\..\components\drivers\misc\adc.c(113): error:  #20: identifier "RT_DEVICE_FLAG_RDWR" is undefined
      result = rt_device_register(&device->parent, name, RT_DEVICE_FLAG_RDWR);
..\..\..\components\drivers\misc\adc.c(118): error:  #20: identifier "rt_adc_device_t" is undefined
  rt_uint32_t rt_adc_read(rt_adc_device_t dev, rt_uint32_t channel)
..\..\..\components\drivers\misc\adc.c(129): error:  #20: identifier "rt_adc_device_t" is undefined
  rt_err_t rt_adc_enable(rt_adc_device_t dev, rt_uint32_t channel)
..\..\..\components\drivers\misc\adc.c(147): error:  #20: identifier "rt_adc_device_t" is undefined
  rt_err_t rt_adc_disable(rt_adc_device_t dev, rt_uint32_t channel)
..\..\..\components\drivers\misc\adc.c(165): error:  #20: identifier "rt_adc_device_t" is undefined
  rt_int16_t rt_adc_voltage(rt_adc_device_t dev, rt_uint32_t channel)
..\..\..\components\drivers\misc\adc.c(174): error:  #20: identifier "rt_device_t" is undefined
      if (_adc_control((rt_device_t) dev, RT_ADC_CMD_GET_RESOLUTION, &resolution) != RT_EOK)
..\..\..\components\drivers\misc\adc.c(174): error:  #165: too few arguments in function call
      if (_adc_control((rt_device_t) dev, RT_ADC_CMD_GET_RESOLUTION, &resolution) != RT_EOK)
..\..\..\components\drivers\misc\adc.c(174): error:  #18: expected a ")"
      if (_adc_control((rt_device_t) dev, RT_ADC_CMD_GET_RESOLUTION, &resolution) != RT_EOK)
..\..\..\components\drivers\misc\adc.c: 2 warnings, 30 errors
compiling rt_drv_pwm.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\misc\rt_drv_pwm.c(15): error:  #20: identifier "rt_device_t" is undefined
  static rt_err_t _pwm_control(rt_device_t dev, int cmd, void *args)
..\..\..\components\drivers\misc\rt_drv_pwm.c(20): error:  #393: pointer to incomplete class type is not allowed
      if (pwm->ops->control)
..\..\..\components\drivers\misc\rt_drv_pwm.c(22): error:  #393: pointer to incomplete class type is not allowed
          result = pwm->ops->control(pwm, cmd, args);
..\..\..\components\drivers\misc\rt_drv_pwm.c(34): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t _pwm_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size)
..\..\..\components\drivers\misc\rt_drv_pwm.c(39): error:  #70: incomplete type is not allowed
      struct rt_pwm_configuration configuration = {0};
..\..\..\components\drivers\misc\rt_drv_pwm.c(43): error:  #393: pointer to incomplete class type is not allowed
      if (pwm->ops->control)
..\..\..\components\drivers\misc\rt_drv_pwm.c(45): error:  #393: pointer to incomplete class type is not allowed
          result = pwm->ops->control(pwm, PWM_CMD_GET,  &configuration);
..\..\..\components\drivers\misc\rt_drv_pwm.c(45): error:  #20: identifier "PWM_CMD_GET" is undefined
          result = pwm->ops->control(pwm, PWM_CMD_GET,  &configuration);
..\..\..\components\drivers\misc\rt_drv_pwm.c(62): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t _pwm_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size)
..\..\..\components\drivers\misc\rt_drv_pwm.c(67): error:  #70: incomplete type is not allowed
      struct rt_pwm_configuration configuration = {0};
..\..\..\components\drivers\misc\rt_drv_pwm.c(71): error:  #393: pointer to incomplete class type is not allowed
      if (pwm->ops->control)
..\..\..\components\drivers\misc\rt_drv_pwm.c(73): error:  #393: pointer to incomplete class type is not allowed
          result = pwm->ops->control(pwm, PWM_CMD_GET, &configuration);
..\..\..\components\drivers\misc\rt_drv_pwm.c(73): error:  #20: identifier "PWM_CMD_GET" is undefined
          result = pwm->ops->control(pwm, PWM_CMD_GET, &configuration);
..\..\..\components\drivers\misc\rt_drv_pwm.c(81): error:  #393: pointer to incomplete class type is not allowed
          result = pwm->ops->control(pwm, PWM_CMD_SET, &configuration);
..\..\..\components\drivers\misc\rt_drv_pwm.c(81): error:  #20: identifier "PWM_CMD_SET" is undefined
          result = pwm->ops->control(pwm, PWM_CMD_SET, &configuration);
..\..\..\components\drivers\misc\rt_drv_pwm.c(103): warning:  #231-D: declaration is not visible outside of function
  rt_err_t rt_device_pwm_register(struct rt_device_pwm *device, const char *name, const struct rt_pwm_ops *ops, const void *user_data)
..\..\..\components\drivers\misc\rt_drv_pwm.c(103): warning:  #231-D: declaration is not visible outside of function
  rt_err_t rt_device_pwm_register(struct rt_device_pwm *device, const char *name, const struct rt_pwm_ops *ops, const void *user_data)
..\..\..\components\drivers\misc\rt_drv_pwm.c(107): error:  #70: incomplete type is not allowed
      rt_memset(device, 0, sizeof(struct rt_device_pwm));
..\..\..\components\drivers\misc\rt_drv_pwm.c(112): error:  #393: pointer to incomplete class type is not allowed
      device->parent.init = RT_NULL;
..\..\..\components\drivers\misc\rt_drv_pwm.c(113): error:  #393: pointer to incomplete class type is not allowed
      device->parent.open = RT_NULL;
..\..\..\components\drivers\misc\rt_drv_pwm.c: 2 warnings, 30 errors
compiling pin.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\drivers/pin.h(24): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\misc\pin.c(16): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t _pin_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size)
..\..\..\components\drivers\misc\pin.c(32): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t _pin_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size)
..\..\..\components\drivers\misc\pin.c(49): error:  #20: identifier "rt_device_t" is undefined
  static rt_err_t _pin_control(rt_device_t dev, int cmd, void *args)
..\..\..\components\drivers\misc\pin.c(80): error:  #20: identifier "RT_Device_Class_Pin" is undefined
      _hw_pin.parent.type         = RT_Device_Class_Pin;
..\..\..\components\drivers\misc\pin.c(99): warning:  #223-D: function "rt_device_register" declared implicitly
      rt_device_register(&_hw_pin.parent, name, RT_DEVICE_FLAG_RDWR);
..\..\..\components\drivers\misc\pin.c(99): error:  #20: identifier "RT_DEVICE_FLAG_RDWR" is undefined
      rt_device_register(&_hw_pin.parent, name, RT_DEVICE_FLAG_RDWR);
..\..\..\components\drivers\misc\pin.c: 1 warning, 7 errors
compiling rtc.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\drivers/rtc.h(53): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\rtc\rtc.c: 0 warnings, 2 errors
compiling block_dev.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\dfs\include\dfs_fs.h(40): error:  #20: identifier "rt_device_t" is undefined
      int (*mkfs)     (rt_device_t devid);
..\..\..\components\dfs\include\dfs_fs.h(51): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev_id;     /* Attached device */
..\..\..\components\dfs\include\dfs_fs.h(65): error:  #20: identifier "rt_sem_t" is undefined
      rt_sem_t lock;
..\..\..\components\dfs\include\dfs_fs.h(95): error:  #20: identifier "rt_device_t" is undefined
  int dfs_mount_device(rt_device_t dev);
..\..\..\components\dfs\include\dfs_fs.h(96): error:  #20: identifier "rt_device_t" is undefined
  int dfs_unmount_device(rt_device_t dev);
..\..\..\components\drivers\include\drivers/mmcsd_host.h(106): error:  #70: incomplete type is not allowed
      struct rt_mutex  bus_lock;
..\..\..\components\drivers\include\drivers/mmcsd_host.h(107): error:  #70: incomplete type is not allowed
      struct rt_semaphore  sem_ack;
..\..\..\components\drivers\include\drivers/mmcsd_host.h(118): error:  #20: identifier "RT_TICK_PER_SECOND" is undefined
      if (ms < 1000 / RT_TICK_PER_SECOND)
..\..\..\components\drivers\sdio\block_dev.c(31): error:  #70: incomplete type is not allowed
      struct rt_device dev;
..\..\..\components\drivers\sdio\block_dev.c(33): error:  #70: incomplete type is not allowed
      struct rt_device_blk_geometry geometry;
..\..\..\components\drivers\sdio\block_dev.c(204): error:  #20: identifier "rt_device_t" is undefined
  static rt_err_t rt_mmcsd_init(rt_device_t dev)
..\..\..\components\drivers\sdio\block_dev.c(209): error:  #20: identifier "rt_device_t" is undefined
  static rt_err_t rt_mmcsd_open(rt_device_t dev, rt_uint16_t oflag)
..\..\..\components\drivers\sdio\block_dev.c(214): error:  #20: identifier "rt_device_t" is undefined
  static rt_err_t rt_mmcsd_close(rt_device_t dev)
..\..\..\components\drivers\sdio\block_dev.c(219): error:  #20: identifier "rt_device_t" is undefined
  static rt_err_t rt_mmcsd_control(rt_device_t dev, int cmd, void *args)
..\..\..\components\drivers\sdio\block_dev.c(224): error:  #20: identifier "RT_DEVICE_CTRL_BLK_GETGEOME" is undefined
      case RT_DEVICE_CTRL_BLK_GETGEOME:
..\..\..\components\drivers\sdio\block_dev.c(225): error:  #70: incomplete type is not allowed
          rt_memcpy(args, &blk_dev->geometry, sizeof(struct rt_device_blk_geometry));
..\..\..\components\drivers\sdio\block_dev.c(233): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t rt_mmcsd_read(rt_device_t dev,
..\..\..\components\drivers\sdio\block_dev.c(252): warning:  #223-D: function "rt_sem_take" declared implicitly
      rt_sem_take(part->lock, RT_WAITING_FOREVER);
..\..\..\components\drivers\sdio\block_dev.c(263): warning:  #223-D: function "rt_sem_release" declared implicitly
      rt_sem_release(part->lock);
..\..\..\components\drivers\sdio\block_dev.c(274): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t rt_mmcsd_write(rt_device_t dev,
..\..\..\components\drivers\sdio\block_dev.c: 2 warnings, 30 errors
compiling mmcsd_core.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\drivers/mmcsd_host.h(106): error:  #70: incomplete type is not allowed
      struct rt_mutex  bus_lock;
..\..\..\components\drivers\include\drivers/mmcsd_host.h(107): error:  #70: incomplete type is not allowed
      struct rt_semaphore  sem_ack;
..\..\..\components\drivers\include\drivers/mmcsd_host.h(118): error:  #20: identifier "RT_TICK_PER_SECOND" is undefined
      if (ms < 1000 / RT_TICK_PER_SECOND)
..\..\..\components\drivers\sdio\mmcsd_core.c(47): warning:  #223-D: function "rt_mutex_take" declared implicitly
      rt_mutex_take(&host->bus_lock, RT_WAITING_FOREVER);
..\..\..\components\drivers\sdio\mmcsd_core.c(52): warning:  #223-D: function "rt_mutex_release" declared implicitly
      rt_mutex_release(&host->bus_lock);
..\..\..\components\drivers\sdio\mmcsd_core.c(57): warning:  #223-D: function "rt_sem_release" declared implicitly
      rt_sem_release(&host->sem_ack);
..\..\..\components\drivers\sdio\mmcsd_core.c(80): warning:  #223-D: function "rt_sem_take" declared implicitly
          rt_sem_take(&host->sem_ack, RT_WAITING_FOREVER);
..\..\..\components\drivers\sdio\mmcsd_core.c(201): warning:  #223-D: function "rt_malloc" declared implicitly
      buf = (rt_uint32_t *)rt_malloc(16);
..\..\..\components\drivers\sdio\mmcsd_core.c(241): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(buf);
..\..\..\components\drivers\sdio\mmcsd_core.c(248): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(buf);
..\..\..\components\drivers\sdio\mmcsd_core.c(277): warning:  #223-D: function "rt_malloc" declared implicitly
      buf = (rt_uint32_t*)rt_malloc(16);
..\..\..\components\drivers\sdio\mmcsd_core.c(318): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(buf);
..\..\..\components\drivers\sdio\mmcsd_core.c(325): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(buf);
..\..\..\components\drivers\sdio\mmcsd_core.c(597): warning:  #223-D: function "rt_mb_recv" declared implicitly
      if (rt_mb_recv(&mmcsd_hotpluge_mb, (rt_ubase_t *)&host, timeout) == RT_EOK)
..\..\..\components\drivers\sdio\mmcsd_core.c(614): warning:  #223-D: function "rt_mb_send" declared implicitly
      rt_mb_send(&mmcsd_detect_mb, (rt_ubase_t)host);
..\..\..\components\drivers\sdio\mmcsd_core.c(625): warning:  #223-D: function "rt_mb_recv" declared implicitly
          if (rt_mb_recv(&mmcsd_detect_mb, (rt_ubase_t *)&host, RT_WAITING_FOREVER) == RT_EOK)
..\..\..\components\drivers\sdio\mmcsd_core.c(653): warning:  #223-D: function "rt_mb_send" declared implicitly
                      rt_mb_send(&mmcsd_hotpluge_mb, (rt_ubase_t)host);
..\..\..\components\drivers\sdio\mmcsd_core.c(666): warning:  #223-D: function "rt_mb_send" declared implicitly
                      rt_mb_send(&mmcsd_hotpluge_mb, (rt_ubase_t)host);
..\..\..\components\drivers\sdio\mmcsd_core.c(682): warning:  #223-D: function "rt_free" declared implicitly
                      rt_free(host->card);
..\..\..\components\drivers\sdio\mmcsd_core.c(687): warning:  #223-D: function "rt_mb_send" declared implicitly
                  rt_mb_send(&mmcsd_hotpluge_mb, (rt_ubase_t)host);
..\..\..\components\drivers\sdio\mmcsd_core.c(697): warning:  #223-D: function "rt_malloc" declared implicitly
      host = rt_malloc(sizeof(struct rt_mmcsd_host));
..\..\..\components\drivers\sdio\mmcsd_core.c(697): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct rt_mmcsd_host *"
      host = rt_malloc(sizeof(struct rt_mmcsd_host));
..\..\..\components\drivers\sdio\mmcsd_core.c(714): warning:  #223-D: function "rt_mutex_init" declared implicitly
      rt_mutex_init(&host->bus_lock, "sd_bus_lock", RT_IPC_FLAG_PRIO);
..\..\..\components\drivers\sdio\mmcsd_core.c(715): warning:  #223-D: function "rt_sem_init" declared implicitly
      rt_sem_init(&host->sem_ack, "sd_ack", 0, RT_IPC_FLAG_FIFO);
..\..\..\components\drivers\sdio\mmcsd_core.c(722): warning:  #223-D: function "rt_mutex_detach" declared implicitly
      rt_mutex_detach(&host->bus_lock);
..\..\..\components\drivers\sdio\mmcsd_core.c(723): warning:  #223-D: function "rt_sem_detach" declared implicitly
      rt_sem_detach(&host->sem_ack);
..\..\..\components\drivers\sdio\mmcsd_core.c(724): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(host);
..\..\..\components\drivers\sdio\mmcsd_core.c(733): warning:  #223-D: function "rt_mb_init" declared implicitly
      ret = rt_mb_init(&mmcsd_detect_mb, "mmcsdmb",
..\..\..\components\drivers\sdio\mmcsd_core.c(39): error:  #235: variable "mmcsd_detect_mb" was declared with a never-completed type
  static struct rt_mailbox  mmcsd_detect_mb;
..\..\..\components\drivers\sdio\mmcsd_core.c(41): error:  #235: variable "mmcsd_hotpluge_mb" was declared with a never-completed type
  static struct rt_mailbox mmcsd_hotpluge_mb;
..\..\..\components\drivers\sdio\mmcsd_core.c: 24 warnings, 7 errors
compiling mmc.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\drivers/mmcsd_host.h(106): error:  #70: incomplete type is not allowed
      struct rt_mutex  bus_lock;
..\..\..\components\drivers\include\drivers/mmcsd_host.h(107): error:  #70: incomplete type is not allowed
      struct rt_semaphore  sem_ack;
..\..\..\components\drivers\include\drivers/mmcsd_host.h(118): error:  #20: identifier "RT_TICK_PER_SECOND" is undefined
      if (ms < 1000 / RT_TICK_PER_SECOND)
..\..\..\components\drivers\sdio\mmc.c(132): warning:  #223-D: function "rt_malloc" declared implicitly
    ext_csd = rt_malloc(512);
..\..\..\components\drivers\sdio\mmc.c(132): error:  #513: a value of type "int" cannot be assigned to an entity of type "void *"
    ext_csd = rt_malloc(512);
..\..\..\components\drivers\sdio\mmc.c(281): warning:  #223-D: function "rt_free" declared implicitly
    rt_free(bw_ext_csd);
..\..\..\components\drivers\sdio\mmc.c(482): warning:  #223-D: function "rt_malloc" declared implicitly
      card = rt_malloc(sizeof(struct rt_mmcsd_card));
..\..\..\components\drivers\sdio\mmc.c(482): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct rt_mmcsd_card *"
      card = rt_malloc(sizeof(struct rt_mmcsd_card));
..\..\..\components\drivers\sdio\mmc.c(555): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(ext_csd);
..\..\..\components\drivers\sdio\mmc.c(612): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(host->card);
..\..\..\components\drivers\sdio\mmc.c: 5 warnings, 6 errors
compiling sd.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\drivers/mmcsd_host.h(106): error:  #70: incomplete type is not allowed
      struct rt_mutex  bus_lock;
..\..\..\components\drivers\include\drivers/mmcsd_host.h(107): error:  #70: incomplete type is not allowed
      struct rt_semaphore  sem_ack;
..\..\..\components\drivers\include\drivers/mmcsd_host.h(118): error:  #20: identifier "RT_TICK_PER_SECOND" is undefined
      if (ms < 1000 / RT_TICK_PER_SECOND)
..\..\..\components\drivers\sdio\sd.c(159): warning:  #223-D: function "rt_malloc" declared implicitly
      buf = (rt_uint8_t*)rt_malloc(64);
..\..\..\components\drivers\sdio\sd.c(238): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(buf);
..\..\..\components\drivers\sdio\sd.c(546): warning:  #223-D: function "rt_malloc" declared implicitly
      card = rt_malloc(sizeof(struct rt_mmcsd_card));
..\..\..\components\drivers\sdio\sd.c(546): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct rt_mmcsd_card *"
      card = rt_malloc(sizeof(struct rt_mmcsd_card));
..\..\..\components\drivers\sdio\sd.c(637): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(card);
..\..\..\components\drivers\sdio\sd.c(700): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(host->card);
..\..\..\components\drivers\sdio\sd.c: 5 warnings, 5 errors
compiling sdio.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\drivers/mmcsd_host.h(106): error:  #70: incomplete type is not allowed
      struct rt_mutex  bus_lock;
..\..\..\components\drivers\include\drivers/mmcsd_host.h(107): error:  #70: incomplete type is not allowed
      struct rt_semaphore  sem_ack;
..\..\..\components\drivers\include\drivers/mmcsd_host.h(118): error:  #20: identifier "RT_TICK_PER_SECOND" is undefined
      if (ms < 1000 / RT_TICK_PER_SECOND)
..\..\..\components\drivers\sdio\sdio.c(558): warning:  #223-D: function "rt_malloc" declared implicitly
          curr = rt_malloc(sizeof(struct rt_sdio_function_tuple) + tpl_link);
..\..\..\components\drivers\sdio\sdio.c(558): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct rt_sdio_function_tuple *"
          curr = rt_malloc(sizeof(struct rt_sdio_function_tuple) + tpl_link);
..\..\..\components\drivers\sdio\sdio.c(571): warning:  #223-D: function "rt_free" declared implicitly
              rt_free(curr);
..\..\..\components\drivers\sdio\sdio.c(600): warning:  #223-D: function "rt_free" declared implicitly
              rt_free(curr);
..\..\..\components\drivers\sdio\sdio.c(658): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(tmp);
..\..\..\components\drivers\sdio\sdio.c(699): warning:  #223-D: function "rt_malloc" declared implicitly
      func = rt_malloc(sizeof(struct rt_sdio_function));
..\..\..\components\drivers\sdio\sdio.c(699): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct rt_sdio_function *"
      func = rt_malloc(sizeof(struct rt_sdio_function));
..\..\..\components\drivers\sdio\sdio.c(735): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(func);
..\..\..\components\drivers\sdio\sdio.c(803): warning:  #223-D: function "rt_malloc" declared implicitly
      sc = rt_malloc(sizeof(struct sdio_card));
..\..\..\components\drivers\sdio\sdio.c(803): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct sdio_card *"
      sc = rt_malloc(sizeof(struct sdio_card));
..\..\..\components\drivers\sdio\sdio.c(851): warning:  #223-D: function "rt_malloc" declared implicitly
      card = rt_malloc(sizeof(struct rt_mmcsd_card));
..\..\..\components\drivers\sdio\sdio.c(851): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct rt_mmcsd_card *"
      card = rt_malloc(sizeof(struct rt_mmcsd_card));
..\..\..\components\drivers\sdio\sdio.c(865): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct rt_sdio_function *"
      card->sdio_function[0] = rt_malloc(sizeof(struct rt_sdio_function));
..\..\..\components\drivers\sdio\sdio.c(942): warning:  #223-D: function "rt_free" declared implicitly
                  rt_free(host->card->sdio_function[i]);
..\..\..\components\drivers\sdio\sdio.c(951): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(host->card->sdio_function[0]);
..\..\..\components\drivers\sdio\sdio.c(957): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(host->card);
..\..\..\components\drivers\sdio\sdio.c(999): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(host->card);
..\..\..\components\drivers\sdio\sdio.c(1020): warning:  #223-D: function "rt_sem_take" declared implicitly
          if (rt_sem_take(host->sdio_irq_sem, RT_WAITING_FOREVER) == RT_EOK)
..\..\..\components\drivers\sdio\sdio.c(1071): warning:  #223-D: function "rt_sem_create" declared implicitly
          host->sdio_irq_sem = rt_sem_create("sdio_irq", 0, RT_IPC_FLAG_FIFO);
..\..\..\components\drivers\sdio\sdio.c(1071): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct rt_semaphore *"
          host->sdio_irq_sem = rt_sem_create("sdio_irq", 0, RT_IPC_FLAG_FIFO);
..\..\..\components\drivers\sdio\sdio.c(1074): warning:  #223-D: function "rt_thread_create" declared implicitly
          host->sdio_irq_thread = rt_thread_create("sdio_irq", sdio_irq_thread, host,
..\..\..\components\drivers\sdio\sdio.c(1074): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct rt_thread *"
          host->sdio_irq_thread = rt_thread_create("sdio_irq", sdio_irq_thread, host,
..\..\..\components\drivers\sdio\sdio.c(1096): warning:  #223-D: function "rt_sem_delete" declared implicitly
          rt_sem_delete(host->sdio_irq_sem);
..\..\..\components\drivers\sdio\sdio.c(1098): warning:  #223-D: function "rt_thread_delete" declared implicitly
          rt_thread_delete(host->sdio_irq_thread);
..\..\..\components\drivers\sdio\sdio.c(1188): warning:  #223-D: function "rt_sem_release" declared implicitly
          rt_sem_release(host->sdio_irq_sem);
..\..\..\components\drivers\sdio\sdio.c(1215): error:  #20: identifier "RT_TICK_PER_SECOND" is undefined
      timeout = rt_tick_get() + func->enable_timeout_val * RT_TICK_PER_SECOND / 1000;
..\..\..\components\drivers\sdio\sdio.c(1354): warning:  #223-D: function "rt_malloc" declared implicitly
      sd = rt_malloc(sizeof(struct sdio_driver));
..\..\..\components\drivers\sdio\sdio.c(1354): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct sdio_driver *"
      sd = rt_malloc(sizeof(struct sdio_driver));
..\..\..\components\drivers\sdio\sdio.c(1405): warning:  #223-D: function "rt_free" declared implicitly
              rt_free(sd);
..\..\..\components\drivers\sdio\sdio.c: 20 warnings, 13 errors
compiling qspi_core.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\drivers/spi.h(87): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\drivers/spi.h(91): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\drivers/spi.h(109): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\spi\qspi_core.c(56): warning:  #223-D: function "rt_mutex_take" declared implicitly
      result = rt_mutex_take(&(device->parent.bus->lock), RT_WAITING_FOREVER);
..\..\..\components\drivers\spi\qspi_core.c(95): warning:  #223-D: function "rt_mutex_release" declared implicitly
      rt_mutex_release(&(device->parent.bus->lock));
..\..\..\components\drivers\spi\qspi_core.c: 2 warnings, 4 errors
compiling serial.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\serial\serial.c(220): warning:  #231-D: declaration is not visible outside of function
  rt_inline int _serial_poll_rx(struct rt_serial_device *serial, rt_uint8_t *data, int length)
..\..\..\components\drivers\serial\serial.c(230): error:  #393: pointer to incomplete class type is not allowed
          ch = serial->ops->getc(serial);
..\..\..\components\drivers\serial\serial.c(236): error:  #393: pointer to incomplete class type is not allowed
          if(serial->parent.open_flag & RT_DEVICE_FLAG_STREAM)
..\..\..\components\drivers\serial\serial.c(236): error:  #20: identifier "RT_DEVICE_FLAG_STREAM" is undefined
          if(serial->parent.open_flag & RT_DEVICE_FLAG_STREAM)
..\..\..\components\drivers\serial\serial.c(245): warning:  #231-D: declaration is not visible outside of function
  rt_inline int _serial_poll_tx(struct rt_serial_device *serial, const rt_uint8_t *data, int length)
..\..\..\components\drivers\serial\serial.c(257): error:  #393: pointer to incomplete class type is not allowed
          if (*data == '\n' && (serial->parent.open_flag & RT_DEVICE_FLAG_STREAM))
..\..\..\components\drivers\serial\serial.c(257): error:  #20: identifier "RT_DEVICE_FLAG_STREAM" is undefined
          if (*data == '\n' && (serial->parent.open_flag & RT_DEVICE_FLAG_STREAM))
..\..\..\components\drivers\serial\serial.c(259): error:  #393: pointer to incomplete class type is not allowed
              serial->ops->putc(serial, '\r');
..\..\..\components\drivers\serial\serial.c(262): error:  #393: pointer to incomplete class type is not allowed
          serial->ops->putc(serial, *data);
..\..\..\components\drivers\serial\serial.c(274): warning:  #231-D: declaration is not visible outside of function
  rt_inline int _serial_int_rx(struct rt_serial_device *serial, rt_uint8_t *data, int length)
..\..\..\components\drivers\serial\serial.c(282): error:  #393: pointer to incomplete class type is not allowed
      rx_fifo = (struct rt_serial_rx_fifo*) serial->serial_rx;
..\..\..\components\drivers\serial\serial.c(295): error:  #393: pointer to incomplete class type is not allowed
          if ((rx_fifo->get_index == rx_fifo->put_index) && (rx_fifo->is_full == RT_FALSE))
..\..\..\components\drivers\serial\serial.c(295): error:  #393: pointer to incomplete class type is not allowed
          if ((rx_fifo->get_index == rx_fifo->put_index) && (rx_fifo->is_full == RT_FALSE))
..\..\..\components\drivers\serial\serial.c(295): error:  #393: pointer to incomplete class type is not allowed
          if ((rx_fifo->get_index == rx_fifo->put_index) && (rx_fifo->is_full == RT_FALSE))
..\..\..\components\drivers\serial\serial.c(303): error:  #393: pointer to incomplete class type is not allowed
          ch = rx_fifo->buffer[rx_fifo->get_index];
..\..\..\components\drivers\serial\serial.c(303): error:  #393: pointer to incomplete class type is not allowed
          ch = rx_fifo->buffer[rx_fifo->get_index];
..\..\..\components\drivers\serial\serial.c(304): error:  #393: pointer to incomplete class type is not allowed
          rx_fifo->get_index += 1;
..\..\..\components\drivers\serial\serial.c(305): error:  #393: pointer to incomplete class type is not allowed
          if (rx_fifo->get_index >= serial->config.bufsz) rx_fifo->get_index = 0;
..\..\..\components\drivers\serial\serial.c(305): error:  #393: pointer to incomplete class type is not allowed
          if (rx_fifo->get_index >= serial->config.bufsz) rx_fifo->get_index = 0;
..\..\..\components\drivers\serial\serial.c(305): error:  #393: pointer to incomplete class type is not allowed
          if (rx_fifo->get_index >= serial->config.bufsz) rx_fifo->get_index = 0;
..\..\..\components\drivers\serial\serial.c(307): error:  #393: pointer to incomplete class type is not allowed
          if (rx_fifo->is_full == RT_TRUE)
..\..\..\components\drivers\serial\serial.c: 3 warnings, 30 errors
compiling spi_core.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\drivers/spi.h(87): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\drivers/spi.h(91): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\drivers/spi.h(109): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\spi\spi_core.c(32): warning:  #223-D: function "rt_mutex_init" declared implicitly
      rt_mutex_init(&(bus->lock), name, RT_IPC_FLAG_PRIO);
..\..\..\components\drivers\spi\spi_core.c(49): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t bus;
..\..\..\components\drivers\spi\spi_core.c(52): warning:  #223-D: function "rt_device_find" declared implicitly
      bus = rt_device_find(bus_name);
..\..\..\components\drivers\spi\spi_core.c(53): error:  #20: identifier "RT_Device_Class_SPIBUS" is undefined
      if (bus != RT_NULL && bus->type == RT_Device_Class_SPIBUS)
..\..\..\components\drivers\spi\spi_core.c(86): warning:  #223-D: function "rt_mutex_take" declared implicitly
          result = rt_mutex_take(&(device->bus->lock), RT_WAITING_FOREVER);
..\..\..\components\drivers\spi\spi_core.c(95): warning:  #223-D: function "rt_mutex_release" declared implicitly
              rt_mutex_release(&(device->bus->lock));
..\..\..\components\drivers\spi\spi_core.c(114): warning:  #223-D: function "rt_mutex_take" declared implicitly
      result = rt_mutex_take(&(device->bus->lock), RT_WAITING_FOREVER);
..\..\..\components\drivers\spi\spi_core.c(172): warning:  #223-D: function "rt_mutex_release" declared implicitly
      rt_mutex_release(&(device->bus->lock));
..\..\..\components\drivers\spi\spi_core.c(189): warning:  #223-D: function "rt_mutex_take" declared implicitly
      result = rt_mutex_take(&(device->bus->lock), RT_WAITING_FOREVER);
..\..\..\components\drivers\spi\spi_core.c(247): warning:  #223-D: function "rt_mutex_release" declared implicitly
      rt_mutex_release(&(device->bus->lock));
..\..\..\components\drivers\spi\spi_core.c(263): warning:  #223-D: function "rt_mutex_take" declared implicitly
      result = rt_mutex_take(&(device->bus->lock), RT_WAITING_FOREVER);
..\..\..\components\drivers\spi\spi_core.c(307): warning:  #223-D: function "rt_mutex_release" declared implicitly
      rt_mutex_release(&(device->bus->lock));
..\..\..\components\drivers\spi\spi_core.c(325): warning:  #223-D: function "rt_mutex_take" declared implicitly
      result = rt_mutex_take(&(device->bus->lock), RT_WAITING_FOREVER);
..\..\..\components\drivers\spi\spi_core.c(370): warning:  #223-D: function "rt_mutex_release" declared implicitly
      rt_mutex_release(&(device->bus->lock));
..\..\..\components\drivers\spi\spi_core.c(382): warning:  #223-D: function "rt_mutex_take" declared implicitly
      result = rt_mutex_take(&(device->bus->lock), RT_WAITING_FOREVER);
..\..\..\components\drivers\spi\spi_core.c(408): warning:  #223-D: function "rt_mutex_release" declared implicitly
              rt_mutex_release(&(device->bus->lock));
..\..\..\components\drivers\spi\spi_core.c(424): warning:  #223-D: function "rt_mutex_release" declared implicitly
      rt_mutex_release(&(device->bus->lock));
..\..\..\components\drivers\spi\spi_core.c: 15 warnings, 6 errors
compiling spi_dev.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\drivers/spi.h(87): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\drivers/spi.h(91): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\drivers/spi.h(109): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\spi\spi_dev.c(14): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t _spi_bus_device_read(rt_device_t dev,
..\..\..\components\drivers\spi\spi_dev.c(28): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t _spi_bus_device_write(rt_device_t dev,
..\..\..\components\drivers\spi\spi_dev.c(62): error:  #393: pointer to incomplete class type is not allowed
      device->type    = RT_Device_Class_SPIBUS;
..\..\..\components\drivers\spi\spi_dev.c(62): error:  #20: identifier "RT_Device_Class_SPIBUS" is undefined
      device->type    = RT_Device_Class_SPIBUS;
..\..\..\components\drivers\spi\spi_dev.c(67): error:  #393: pointer to incomplete class type is not allowed
      device->init    = RT_NULL;
..\..\..\components\drivers\spi\spi_dev.c(68): error:  #393: pointer to incomplete class type is not allowed
      device->open    = RT_NULL;
..\..\..\components\drivers\spi\spi_dev.c(69): error:  #393: pointer to incomplete class type is not allowed
      device->close   = RT_NULL;
..\..\..\components\drivers\spi\spi_dev.c(70): error:  #393: pointer to incomplete class type is not allowed
      device->read    = _spi_bus_device_read;
..\..\..\components\drivers\spi\spi_dev.c(71): error:  #393: pointer to incomplete class type is not allowed
      device->write   = _spi_bus_device_write;
..\..\..\components\drivers\spi\spi_dev.c(72): error:  #393: pointer to incomplete class type is not allowed
      device->control = RT_NULL;
..\..\..\components\drivers\spi\spi_dev.c(76): warning:  #223-D: function "rt_device_register" declared implicitly
      return rt_device_register(device, name, RT_DEVICE_FLAG_RDWR);
..\..\..\components\drivers\spi\spi_dev.c(76): error:  #20: identifier "RT_DEVICE_FLAG_RDWR" is undefined
      return rt_device_register(device, name, RT_DEVICE_FLAG_RDWR);
..\..\..\components\drivers\spi\spi_dev.c(80): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t _spidev_device_read(rt_device_t dev,
..\..\..\components\drivers\spi\spi_dev.c(94): error:  #20: identifier "rt_device_t" is undefined
  static rt_size_t _spidev_device_write(rt_device_t dev,
..\..\..\components\drivers\spi\spi_dev.c(108): error:  #20: identifier "rt_device_t" is undefined
  static rt_err_t _spidev_device_control(rt_device_t dev,
..\..\..\components\drivers\spi\spi_dev.c(143): error:  #393: pointer to incomplete class type is not allowed
      device->type    = RT_Device_Class_SPIDevice;
..\..\..\components\drivers\spi\spi_dev.c(143): error:  #20: identifier "RT_Device_Class_SPIDevice" is undefined
      device->type    = RT_Device_Class_SPIDevice;
..\..\..\components\drivers\spi\spi_dev.c(147): error:  #393: pointer to incomplete class type is not allowed
      device->init    = RT_NULL;
..\..\..\components\drivers\spi\spi_dev.c(148): error:  #393: pointer to incomplete class type is not allowed
      device->open    = RT_NULL;
..\..\..\components\drivers\spi\spi_dev.c(149): error:  #393: pointer to incomplete class type is not allowed
      device->close   = RT_NULL;
..\..\..\components\drivers\spi\spi_dev.c(150): error:  #393: pointer to incomplete class type is not allowed
      device->read    = _spidev_device_read;
..\..\..\components\drivers\spi\spi_dev.c(151): error:  #393: pointer to incomplete class type is not allowed
      device->write   = _spidev_device_write;
..\..\..\components\drivers\spi\spi_dev.c(152): error:  #393: pointer to incomplete class type is not allowed
      device->control = _spidev_device_control;
..\..\..\components\drivers\spi\spi_dev.c(156): warning:  #223-D: function "rt_device_register" declared implicitly
      return rt_device_register(device, name, RT_DEVICE_FLAG_RDWR);
..\..\..\components\drivers\spi\spi_dev.c(156): error:  #20: identifier "RT_DEVICE_FLAG_RDWR" is undefined
      return rt_device_register(device, name, RT_DEVICE_FLAG_RDWR);
..\..\..\components\drivers\spi\spi_dev.c: 2 warnings, 27 errors
compiling devfs.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\dfs\include\dfs_fs.h(40): error:  #20: identifier "rt_device_t" is undefined
      int (*mkfs)     (rt_device_t devid);
..\..\..\components\dfs\include\dfs_fs.h(51): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev_id;     /* Attached device */
..\..\..\components\dfs\include\dfs_fs.h(65): error:  #20: identifier "rt_sem_t" is undefined
      rt_sem_t lock;
..\..\..\components\dfs\include\dfs_fs.h(95): error:  #20: identifier "rt_device_t" is undefined
  int dfs_mount_device(rt_device_t dev);
..\..\..\components\dfs\include\dfs_fs.h(96): error:  #20: identifier "rt_device_t" is undefined
  int dfs_unmount_device(rt_device_t dev);
..\..\..\components\dfs\filesystems\devfs\devfs.c(22): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t *devices;
..\..\..\components\dfs\filesystems\devfs\devfs.c(35): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev_id;
..\..\..\components\dfs\filesystems\devfs\devfs.c(40): error:  #20: identifier "rt_device_t" is undefined
      dev_id = (rt_device_t)file->data;
..\..\..\components\dfs\filesystems\devfs\devfs.c(40): error:  #65: expected a ";"
      dev_id = (rt_device_t)file->data;
..\..\..\components\dfs\filesystems\devfs\devfs.c(44): warning:  #223-D: function "rt_device_control" declared implicitly
      result = rt_device_control(dev_id, cmd, args);
..\..\..\components\dfs\filesystems\devfs\devfs.c(54): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev_id;
..\..\..\components\dfs\filesystems\devfs\devfs.c(59): error:  #20: identifier "rt_device_t" is undefined
      dev_id = (rt_device_t)file->data;
..\..\..\components\dfs\filesystems\devfs\devfs.c(59): error:  #65: expected a ";"
      dev_id = (rt_device_t)file->data;
..\..\..\components\dfs\filesystems\devfs\devfs.c(63): warning:  #223-D: function "rt_device_read" declared implicitly
      result = rt_device_read(dev_id, file->pos, buf, count);
..\..\..\components\dfs\filesystems\devfs\devfs.c(72): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev_id;
..\..\..\components\dfs\filesystems\devfs\devfs.c(77): error:  #20: identifier "rt_device_t" is undefined
      dev_id = (rt_device_t)file->data;
..\..\..\components\dfs\filesystems\devfs\devfs.c(77): error:  #65: expected a ";"
      dev_id = (rt_device_t)file->data;
..\..\..\components\dfs\filesystems\devfs\devfs.c(81): warning:  #223-D: function "rt_device_write" declared implicitly
      result = rt_device_write(dev_id, file->pos, buf, count);
..\..\..\components\dfs\filesystems\devfs\devfs.c(90): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev_id;
..\..\..\components\dfs\filesystems\devfs\devfs.c(102): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(root_dirent);
..\..\..\components\dfs\filesystems\devfs\devfs.c(107): error:  #20: identifier "rt_device_t" is undefined
      dev_id = (rt_device_t)file->data;
..\..\..\components\dfs\filesystems\devfs\devfs.c(107): error:  #65: expected a ";"
      dev_id = (rt_device_t)file->data;
..\..\..\components\dfs\filesystems\devfs\devfs.c: 4 warnings, 30 errors
compiling dfs_elm.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\dfs\include\dfs_fs.h(40): error:  #20: identifier "rt_device_t" is undefined
      int (*mkfs)     (rt_device_t devid);
..\..\..\components\dfs\include\dfs_fs.h(51): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev_id;     /* Attached device */
..\..\..\components\dfs\include\dfs_fs.h(65): error:  #20: identifier "rt_sem_t" is undefined
      rt_sem_t lock;
..\..\..\components\dfs\include\dfs_fs.h(95): error:  #20: identifier "rt_device_t" is undefined
  int dfs_mount_device(rt_device_t dev);
..\..\..\components\dfs\include\dfs_fs.h(96): error:  #20: identifier "rt_device_t" is undefined
  int dfs_unmount_device(rt_device_t dev);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(32): error:  #20: identifier "rt_device_t" is undefined
  static rt_device_t disk[FF_VOLUMES] = {0};
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(85): error:  #20: identifier "rt_device_t" is undefined
  static int get_disk(rt_device_t id)
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(103): error:  #70: incomplete type is not allowed
      struct rt_device_blk_geometry geometry;
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(115): warning:  #223-D: function "rt_device_control" declared implicitly
      if (rt_device_control(fs->dev_id, RT_DEVICE_CTRL_BLK_GETGEOME, &geometry) == RT_EOK)
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(115): error:  #20: identifier "RT_DEVICE_CTRL_BLK_GETGEOME" is undefined
      if (rt_device_control(fs->dev_id, RT_DEVICE_CTRL_BLK_GETGEOME, &geometry) == RT_EOK)
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(124): warning:  #223-D: function "rt_malloc" declared implicitly
      fat = (FATFS *)rt_malloc(sizeof(FATFS));
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(144): warning:  #223-D: function "rt_free" declared implicitly
              rt_free(fat);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(155): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(dir);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(162): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(fat);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(189): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(fat);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(194): error:  #20: identifier "rt_device_t" is undefined
  int dfs_elm_mkfs(rt_device_t dev_id)
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(206): warning:  #223-D: function "rt_malloc" declared implicitly
      work = rt_malloc(FF_MAX_SS);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(206): error:  #513: a value of type "int" cannot be assigned to an entity of type "BYTE *"
      work = rt_malloc(FF_MAX_SS);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(213): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(work); /* release memory */
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(231): warning:  #223-D: function "rt_free" declared implicitly
              rt_free(work); /* release memory */
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(239): warning:  #223-D: function "rt_free" declared implicitly
                  rt_free(work); /* release memory */
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(247): warning:  #223-D: function "rt_device_open" declared implicitly
              rt_device_open(dev_id, RT_DEVICE_OFLAG_RDWR);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(247): error:  #20: identifier "RT_DEVICE_OFLAG_RDWR" is undefined
              rt_device_open(dev_id, RT_DEVICE_OFLAG_RDWR);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(271): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(work); work = RT_NULL;
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(280): warning:  #223-D: function "rt_device_close" declared implicitly
          rt_device_close(dev_id);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(369): warning:  #223-D: function "rt_malloc" declared implicitly
          dir = (DIR *)rt_malloc(sizeof(DIR));
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(384): warning:  #223-D: function "rt_free" declared implicitly
              rt_free(dir);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(410): warning:  #223-D: function "rt_malloc" declared implicitly
          fd = (FIL *)rt_malloc(sizeof(FIL));
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(439): warning:  #223-D: function "rt_free" declared implicitly
              rt_free(fd);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(460): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(dir);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(472): warning:  #223-D: function "rt_free" declared implicitly
              rt_free(fd);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(869): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t device = disk[drv];
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(871): warning:  #223-D: function "rt_device_read" declared implicitly
      result = rt_device_read(device, sector, buff, count);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(884): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t device = disk[drv];
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(886): warning:  #223-D: function "rt_device_write" declared implicitly
      result = rt_device_write(device, sector, buff, count);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(898): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t device = disk[drv];
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(905): error:  #70: incomplete type is not allowed
          struct rt_device_blk_geometry geometry;
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(908): warning:  #223-D: function "rt_device_control" declared implicitly
          rt_device_control(device, RT_DEVICE_CTRL_BLK_GETGEOME, &geometry);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(908): error:  #20: identifier "RT_DEVICE_CTRL_BLK_GETGEOME" is undefined
          rt_device_control(device, RT_DEVICE_CTRL_BLK_GETGEOME, &geometry);
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c(916): error:  #70: incomplete type is not allowed
          struct rt_device_blk_geometry geometry;
..\..\..\components\dfs\filesystems\elmfat\dfs_elm.c: 22 warnings, 30 errors
compiling ff.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\dfs\filesystems\elmfat\ff.c: 0 warnings, 1 error
compiling ffunicode.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\dfs\filesystems\elmfat\ffunicode.c: 0 warnings, 1 error
compiling dfs.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\dfs\include\dfs_fs.h(40): error:  #20: identifier "rt_device_t" is undefined
      int (*mkfs)     (rt_device_t devid);
..\..\..\components\dfs\include\dfs_fs.h(51): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev_id;     /* Attached device */
..\..\..\components\dfs\include\dfs_fs.h(65): error:  #20: identifier "rt_sem_t" is undefined
      rt_sem_t lock;
..\..\..\components\dfs\include\dfs_fs.h(95): error:  #20: identifier "rt_device_t" is undefined
  int dfs_mount_device(rt_device_t dev);
..\..\..\components\dfs\include\dfs_fs.h(96): error:  #20: identifier "rt_device_t" is undefined
  int dfs_unmount_device(rt_device_t dev);
..\..\..\components\dfs\src\dfs.c(65): warning:  #223-D: function "rt_mutex_init" declared implicitly
      rt_mutex_init(&fslock, "fslock", RT_IPC_FLAG_PRIO);
..\..\..\components\dfs\src\dfs.c(101): warning:  #223-D: function "rt_mutex_take" declared implicitly
          result = rt_mutex_take(&fslock, RT_WAITING_FOREVER);
..\..\..\components\dfs\src\dfs.c(117): warning:  #223-D: function "rt_mutex_release" declared implicitly
      rt_mutex_release(&fslock);
..\..\..\components\dfs\src\dfs.c(307): warning:  #223-D: function "rt_free" declared implicitly
              rt_free(fullpath);
..\..\..\components\dfs\src\dfs.c(328): warning:  #223-D: function "rt_free" declared implicitly
                  rt_free(fullpath);
..\..\..\components\dfs\src\dfs.c(336): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(fullpath);
..\..\..\components\dfs\src\dfs.c(398): warning:  #223-D: function "rt_malloc" declared implicitly
          fullpath = (char *)rt_malloc(strlen(directory) + strlen(filename) + 2);
..\..\..\components\dfs\src\dfs.c(476): warning:  #223-D: function "rt_free" declared implicitly
              rt_free(fullpath);
..\..\..\components\dfs\src\dfs.c(30): error:  #235: variable "fslock" was declared with a never-completed type
  static struct rt_mutex fslock;
..\..\..\components\dfs\src\dfs.c: 8 warnings, 18 errors
compiling dfs_file.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\dfs\include\dfs_fs.h(40): error:  #20: identifier "rt_device_t" is undefined
      int (*mkfs)     (rt_device_t devid);
..\..\..\components\dfs\include\dfs_fs.h(51): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev_id;     /* Attached device */
..\..\..\components\dfs\include\dfs_fs.h(65): error:  #20: identifier "rt_sem_t" is undefined
      rt_sem_t lock;
..\..\..\components\dfs\include\dfs_fs.h(95): error:  #20: identifier "rt_device_t" is undefined
  int dfs_mount_device(rt_device_t dev);
..\..\..\components\dfs\include\dfs_fs.h(96): error:  #20: identifier "rt_device_t" is undefined
  int dfs_unmount_device(rt_device_t dev);
..\..\..\components\dfs\src\dfs_file.c(56): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(fullpath); /* release path */
..\..\..\components\dfs\src\dfs_file.c(78): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(fullpath);
..\..\..\components\dfs\src\dfs_file.c(90): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(fd->path);
..\..\..\components\dfs\src\dfs_file.c(99): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(fd->path);
..\..\..\components\dfs\src\dfs_file.c(139): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(fd->path);
..\..\..\components\dfs\src\dfs_file.c(281): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(fullpath);
..\..\..\components\dfs\src\dfs_file.c(373): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(fullpath);
..\..\..\components\dfs\src\dfs_file.c(392): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(fullpath);
..\..\..\components\dfs\src\dfs_file.c(400): warning:  #223-D: function "rt_free" declared implicitly
              rt_free(fullpath);
..\..\..\components\dfs\src\dfs_file.c(413): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(fullpath);
..\..\..\components\dfs\src\dfs_file.c(476): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(oldfullpath);
..\..\..\components\dfs\src\dfs_file.c: 11 warnings, 17 errors
compiling dfs_fs.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\dfs\include\dfs_fs.h(40): error:  #20: identifier "rt_device_t" is undefined
      int (*mkfs)     (rt_device_t devid);
..\..\..\components\dfs\include\dfs_fs.h(51): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev_id;     /* Attached device */
..\..\..\components\dfs\include\dfs_fs.h(65): error:  #20: identifier "rt_sem_t" is undefined
      rt_sem_t lock;
..\..\..\components\dfs\include\dfs_fs.h(95): error:  #20: identifier "rt_device_t" is undefined
  int dfs_mount_device(rt_device_t dev);
..\..\..\components\dfs\include\dfs_fs.h(96): error:  #20: identifier "rt_device_t" is undefined
  int dfs_unmount_device(rt_device_t dev);
..\..\..\components\dfs\src\dfs_fs.c(224): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev_id;
..\..\..\components\dfs\src\dfs_fs.c(232): warning:  #223-D: function "rt_device_find" declared implicitly
      else if ((dev_id = rt_device_find(device_name)) == NULL)
..\..\..\components\dfs\src\dfs_fs.c(278): warning:  #223-D: function "rt_free" declared implicitly
              rt_free(fullpath);
..\..\..\components\dfs\src\dfs_fs.c(321): warning:  #223-D: function "rt_device_open" declared implicitly
          if (rt_device_open(fs->dev_id,
..\..\..\components\dfs\src\dfs_fs.c(322): error:  #20: identifier "RT_DEVICE_OFLAG_RDWR" is undefined
                             RT_DEVICE_OFLAG_RDWR) != RT_EOK)
..\..\..\components\dfs\src\dfs_fs.c(337): warning:  #223-D: function "rt_device_close" declared implicitly
              rt_device_close(fs->dev_id);
..\..\..\components\dfs\src\dfs_fs.c(351): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(fullpath);
..\..\..\components\dfs\src\dfs_fs.c(400): warning:  #223-D: function "rt_device_close" declared implicitly
          rt_device_close(fs->dev_id);
..\..\..\components\dfs\src\dfs_fs.c(403): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(fs->path);
..\..\..\components\dfs\src\dfs_fs.c(409): warning:  #223-D: function "rt_free" declared implicitly
      rt_free(fullpath);
..\..\..\components\dfs\src\dfs_fs.c(431): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev_id = NULL;
..\..\..\components\dfs\src\dfs_fs.c(435): warning:  #223-D: function "rt_device_find" declared implicitly
          dev_id = rt_device_find(device_name);
..\..\..\components\dfs\src\dfs_fs.c: 9 warnings, 20 errors
compiling dfs_posix.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\dfs\include\dfs_fs.h(40): error:  #20: identifier "rt_device_t" is undefined
      int (*mkfs)     (rt_device_t devid);
..\..\..\components\dfs\include\dfs_fs.h(51): error:  #20: identifier "rt_device_t" is undefined
      rt_device_t dev_id;     /* Attached device */
..\..\..\components\dfs\include\dfs_fs.h(65): error:  #20: identifier "rt_sem_t" is undefined
      rt_sem_t lock;
..\..\..\components\dfs\include\dfs_fs.h(95): error:  #20: identifier "rt_device_t" is undefined
  int dfs_mount_device(rt_device_t dev);
..\..\..\components\dfs\include\dfs_fs.h(96): error:  #20: identifier "rt_device_t" is undefined
  int dfs_unmount_device(rt_device_t dev);
..\..\..\components\dfs\src\dfs_posix.c(32): warning:  #223-D: function "fd_new" declared implicitly
      fd = fd_new();
..\..\..\components\dfs\src\dfs_posix.c(39): warning:  #223-D: function "fd_get" declared implicitly
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(39): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct dfs_fd *"
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(45): warning:  #223-D: function "fd_put" declared implicitly
          fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(54): warning:  #223-D: function "fd_put" declared implicitly
      fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(88): warning:  #223-D: function "fd_get" declared implicitly
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(88): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct dfs_fd *"
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(97): warning:  #223-D: function "fd_put" declared implicitly
      fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(133): warning:  #223-D: function "fd_get" declared implicitly
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(133): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct dfs_fd *"
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(144): warning:  #223-D: function "fd_put" declared implicitly
          fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(151): warning:  #223-D: function "fd_put" declared implicitly
      fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(177): warning:  #223-D: function "fd_get" declared implicitly
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(177): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct dfs_fd *"
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(188): warning:  #223-D: function "fd_put" declared implicitly
          fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(195): warning:  #223-D: function "fd_put" declared implicitly
      fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(216): warning:  #223-D: function "fd_get" declared implicitly
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(216): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct dfs_fd *"
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(238): warning:  #223-D: function "fd_put" declared implicitly
          fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(246): warning:  #223-D: function "fd_put" declared implicitly
          fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(254): warning:  #223-D: function "fd_put" declared implicitly
          fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(261): warning:  #223-D: function "fd_put" declared implicitly
      fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(357): warning:  #223-D: function "fd_get" declared implicitly
      d = fd_get(fildes);
..\..\..\components\dfs\src\dfs_posix.c(357): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct dfs_fd *"
      d = fd_get(fildes);
..\..\..\components\dfs\src\dfs_posix.c(379): warning:  #223-D: function "fd_put" declared implicitly
      fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(401): warning:  #223-D: function "fd_get" declared implicitly
      d = fd_get(fildes);
..\..\..\components\dfs\src\dfs_posix.c(401): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct dfs_fd *"
      d = fd_get(fildes);
..\..\..\components\dfs\src\dfs_posix.c(410): warning:  #223-D: function "fd_put" declared implicitly
      fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(433): warning:  #223-D: function "fd_get" declared implicitly
      d = fd_get(fildes);
..\..\..\components\dfs\src\dfs_posix.c(433): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct dfs_fd *"
      d = fd_get(fildes);
..\..\..\components\dfs\src\dfs_posix.c(444): warning:  #223-D: function "fd_put" declared implicitly
          fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(499): warning:  #223-D: function "fd_get" declared implicitly
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(499): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct dfs_fd *"
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(509): warning:  #223-D: function "fd_put" declared implicitly
          fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(517): warning:  #223-D: function "fd_put" declared implicitly
          fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(524): warning:  #223-D: function "fd_put" declared implicitly
      fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(569): warning:  #223-D: function "fd_new" declared implicitly
      fd = fd_new();
..\..\..\components\dfs\src\dfs_posix.c(577): warning:  #223-D: function "fd_get" declared implicitly
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(577): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct dfs_fd *"
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(583): warning:  #223-D: function "fd_put" declared implicitly
          fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(591): warning:  #223-D: function "fd_put" declared implicitly
      fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(637): warning:  #223-D: function "fd_new" declared implicitly
      fd = fd_new();
..\..\..\components\dfs\src\dfs_posix.c(644): warning:  #223-D: function "fd_get" declared implicitly
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(644): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct dfs_fd *"
      d = fd_get(fd);
..\..\..\components\dfs\src\dfs_posix.c(650): warning:  #223-D: function "rt_malloc" declared implicitly
          t = (DIR *) rt_malloc(sizeof(DIR));
..\..\..\components\dfs\src\dfs_posix.c(654): warning:  #223-D: function "fd_put" declared implicitly
              fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(662): warning:  #223-D: function "fd_put" declared implicitly
          fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(668): warning:  #223-D: function "fd_put" declared implicitly
      fd_put(d);
..\..\..\components\dfs\src\dfs_posix.c(690): warning:  #223-D: function "fd_get" declared implicitly
      fd = fd_get(d->fd);
..\..\..\components\dfs\src\dfs_posix.c(690): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct dfs_fd *"
      fd = fd_get(d->fd);
..\..\..\components\dfs\src\dfs_posix.c(712): warning:  #223-D: function "fd_put" declared implicitly
              fd_put(fd);
..\..\..\components\dfs\src\dfs_posix.c(722): warning:  #223-D: function "fd_put" declared implicitly
      fd_put(fd);
..\..\..\components\dfs\src\dfs_posix.c(741): warning:  #223-D: function "fd_get" declared implicitly
      fd = fd_get(d->fd);
..\..\..\components\dfs\src\dfs_posix.c(741): error:  #513: a value of type "int" cannot be assigned to an entity of type "struct dfs_fd *"
      fd = fd_get(d->fd);
..\..\..\components\dfs\src\dfs_posix.c: 41 warnings, 30 errors
compiling pin_mux.c...
compiling drv_uart.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\libraries\MIMXRT1020\MIMXRT1021\drivers\fsl_lpuart.h(277): error:  #3092: anonymous unions are only supported in --gnu mode, or when enabled with #pragma anon_unions
      };
..\libraries\drivers\drv_uart.c(87): error:  #70: incomplete type is not allowed
      struct rt_serial_device serial;
..\libraries\drivers\drv_uart.c(404): warning:  #223-D: function "rt_hw_serial_isr" declared implicitly
          rt_hw_serial_isr(&uart->serial, RT_SERIAL_EVENT_RX_IND);
..\libraries\drivers\drv_uart.c(404): error:  #20: identifier "RT_SERIAL_EVENT_RX_IND" is undefined
          rt_hw_serial_isr(&uart->serial, RT_SERIAL_EVENT_RX_IND);
..\libraries\drivers\drv_uart.c(562): warning:  #177-D: variable "base"  was declared but never referenced
      uint32_t base = (uint32_t) uart_base;
..\libraries\drivers\drv_uart.c(592): warning:  #231-D: declaration is not visible outside of function
  static rt_err_t imxrt_configure(struct rt_serial_device *serial, struct serial_configure *cfg)
..\libraries\drivers\drv_uart.c(603): error:  #393: pointer to incomplete class type is not allowed
      config.baudRate_Bps = cfg->baud_rate;
..\libraries\drivers\drv_uart.c(605): error:  #393: pointer to incomplete class type is not allowed
      switch (cfg->data_bits)
..\libraries\drivers\drv_uart.c(607): error:  #20: identifier "DATA_BITS_7" is undefined
      case DATA_BITS_7:
..\libraries\drivers\drv_uart.c(616): error:  #393: pointer to incomplete class type is not allowed
      switch (cfg->stop_bits)
..\libraries\drivers\drv_uart.c(618): error:  #20: identifier "STOP_BITS_2" is undefined
      case STOP_BITS_2:
..\libraries\drivers\drv_uart.c(626): error:  #393: pointer to incomplete class type is not allowed
      switch (cfg->parity)
..\libraries\drivers\drv_uart.c(628): error:  #20: identifier "PARITY_ODD" is undefined
      case PARITY_ODD:
..\libraries\drivers\drv_uart.c(631): error:  #20: identifier "PARITY_EVEN" is undefined
      case PARITY_EVEN:
..\libraries\drivers\drv_uart.c(660): error:  #20: identifier "RT_DEVICE_CTRL_CLR_INT" is undefined
      case RT_DEVICE_CTRL_CLR_INT:
..\libraries\drivers\drv_uart.c(664): error:  #20: identifier "RT_DEVICE_CTRL_SET_INT" is undefined
      case RT_DEVICE_CTRL_SET_INT:
..\libraries\drivers\drv_uart.c(745): error:  #70: incomplete type is not allowed
  static const struct rt_uart_ops imxrt_uart_ops =
..\libraries\drivers\drv_uart.c(763): error:  #70: incomplete type is not allowed
      struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
..\libraries\drivers\drv_uart.c(763): error:  #20: identifier "RT_SERIAL_CONFIG_DEFAULT" is undefined
      struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
..\libraries\drivers\drv_uart.c(765): error:  #20: identifier "RT_DEVICE_FLAG_RDWR" is undefined
      flag = RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX;
..\libraries\drivers\drv_uart.c(765): error:  #20: identifier "RT_DEVICE_FLAG_INT_RX" is undefined
      flag = RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX;
..\libraries\drivers\drv_uart.c: 3 warnings, 30 errors
compiling board.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
board\board.c(181): error:  #20: identifier "RT_TICK_PER_SECOND" is undefined
      SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND);
board\board.c: 0 warnings, 2 errors
compiling clock_config.c...
compiling drv_gpio.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\libraries\drivers\drv_gpio.c(143): error:  #70: incomplete type is not allowed
  static struct rt_pin_irq_hdr hdr_tab[] =
..\libraries\drivers\drv_gpio.c(522): error:  #20: identifier "rt_device_t" is undefined
  static void imxrt_pin_mode(rt_device_t dev, rt_base_t pin, rt_base_t mode)
..\libraries\drivers\drv_gpio.c(542): error:  #20: identifier "PIN_MODE_OUTPUT" is undefined
      case PIN_MODE_OUTPUT:
..\libraries\drivers\drv_gpio.c(549): error:  #20: identifier "PIN_MODE_INPUT" is undefined
      case PIN_MODE_INPUT:
..\libraries\drivers\drv_gpio.c(556): error:  #20: identifier "PIN_MODE_INPUT_PULLDOWN" is undefined
      case PIN_MODE_INPUT_PULLDOWN:
..\libraries\drivers\drv_gpio.c(563): error:  #20: identifier "PIN_MODE_INPUT_PULLUP" is undefined
      case PIN_MODE_INPUT_PULLUP:
..\libraries\drivers\drv_gpio.c(570): error:  #20: identifier "PIN_MODE_OUTPUT_OD" is undefined
      case PIN_MODE_OUTPUT_OD:
..\libraries\drivers\drv_gpio.c(612): error:  #20: identifier "rt_device_t" is undefined
  static int imxrt_pin_read(rt_device_t dev, rt_base_t pin)
..\libraries\drivers\drv_gpio.c(617): error:  #20: identifier "PIN_LOW" is undefined
      value = PIN_LOW;
..\libraries\drivers\drv_gpio.c(630): error:  #20: identifier "rt_device_t" is undefined
  static void imxrt_pin_write(rt_device_t dev, rt_base_t pin, rt_base_t value)
..\libraries\drivers\drv_gpio.c(729): error:  #20: identifier "PIN_IRQ_ENABLE" is undefined
      if (enabled == PIN_IRQ_ENABLE)
..\libraries\drivers\drv_gpio.c(733): error:  #20: identifier "PIN_IRQ_MODE_RISING" is undefined
          case PIN_IRQ_MODE_RISING:
..\libraries\drivers\drv_gpio.c(736): error:  #20: identifier "PIN_IRQ_MODE_FALLING" is undefined
          case PIN_IRQ_MODE_FALLING:
..\libraries\drivers\drv_gpio.c(739): error:  #20: identifier "PIN_IRQ_MODE_RISING_FALLING" is undefined
          case PIN_IRQ_MODE_RISING_FALLING:
..\libraries\drivers\drv_gpio.c(742): error:  #20: identifier "PIN_IRQ_MODE_HIGH_LEVEL" is undefined
          case PIN_IRQ_MODE_HIGH_LEVEL:
..\libraries\drivers\drv_gpio.c(745): error:  #20: identifier "PIN_IRQ_MODE_LOW_LEVEL" is undefined
          case PIN_IRQ_MODE_LOW_LEVEL:
..\libraries\drivers\drv_gpio.c(758): error:  #20: identifier "PIN_IRQ_DISABLE" is undefined
      else if (enabled == PIN_IRQ_DISABLE)
..\libraries\drivers\drv_gpio.c(808): error:  #70: incomplete type is not allowed
  const static struct rt_pin_ops imxrt_pin_ops =
..\libraries\drivers\drv_gpio.c: 0 warnings, 30 errors
compiling shell.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\finsh\shell.c: 0 warnings, 1 error
compiling msh.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\finsh\msh.c: 0 warnings, 1 error
compiling msh_parse.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\finsh\msh_parse.c: 0 warnings, 1 error
compiling cmd.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\finsh\cmd.c: 0 warnings, 1 error
compiling clock.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\src\clock.c(149): error:  #20: identifier "RT_TICK_PER_SECOND" is undefined
          tick = RT_TICK_PER_SECOND * (ms / 1000);
..\..\..\src\clock.c(169): error:  #179: right operand of "%" is zero
  #if 1000 % RT_TICK_PER_SECOND == 0u
..\..\..\src\clock.c(172): warning:  #1215-D: #warning directive: "rt-thread cannot provide a correct 1ms-based tick any longer,    please redefine this function in another file by using a high-precision hard-timer."
      #warning "rt-thread cannot provide a correct 1ms-based tick any longer,\
..\..\..\src\clock.c: 1 warning, 3 errors
compiling msh_file.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\finsh\msh_file.c: 0 warnings, 1 error
compiling components.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\src\components.c: 0 warnings, 1 error
compiling device.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\src\device.c: 0 warnings, 1 error
compiling idle.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\src\idle.c(51): error:  #20: identifier "RT_ALIGN_SIZE" is undefined
  ALIGN(RT_ALIGN_SIZE)
..\..\..\src\idle.c(320): error:  #20: identifier "RT_THREAD_PRIORITY_MAX" is undefined
                  RT_THREAD_PRIORITY_MAX - 1,
..\..\..\src\idle.c: 0 warnings, 3 errors
compiling ipc.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\src\ipc.c(84): warning:  #177-D: function "_ipc_object_init"  was declared but never referenced
  rt_inline rt_err_t _ipc_object_init(struct rt_ipc_object *ipc)
..\..\..\src\ipc.c(122): warning:  #177-D: function "_ipc_list_suspend"  was declared but never referenced
  rt_inline rt_err_t _ipc_list_suspend(rt_list_t        *list,
..\..\..\src\ipc.c(191): warning:  #177-D: function "_ipc_list_resume"  was declared but never referenced
  rt_inline rt_err_t _ipc_list_resume(rt_list_t *list)
..\..\..\src\ipc.c(220): warning:  #177-D: function "_ipc_list_resume_all"  was declared but never referenced
  rt_inline rt_err_t _ipc_list_resume_all(rt_list_t *list)
..\..\..\src\ipc.c: 4 warnings, 1 error
compiling irq.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\src\irq.c: 0 warnings, 1 error
compiling mem.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\src\mem.c: 0 warnings, 1 error
compiling kservice.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\src\kservice.c: 0 warnings, 1 error
compiling mempool.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\src\mempool.c: 0 warnings, 1 error
compiling object.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\src\object.c: 0 warnings, 1 error
compiling scheduler.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\src\scheduler.c(36): error:  #20: identifier "RT_THREAD_PRIORITY_MAX" is undefined
  rt_list_t rt_thread_priority_table[RT_THREAD_PRIORITY_MAX];
..\..\..\src\scheduler.c: 0 warnings, 2 errors
compiling thread.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\src\thread.c: 0 warnings, 1 error
assembling startup_MIMXRT1021.s...
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(1): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(2): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(3): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(4): error: A1163E: Unknown opcode MIMXRT1021 , expecting opcode or Macro
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(5): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(6): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(7): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(8): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(9): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(10): error: A1163E: Unknown opcode Copyright , expecting opcode or Macro
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(11): error: A1163E: Unknown opcode Copyright , expecting opcode or Macro
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(12): error: A1163E: Unknown opcode All , expecting opcode or Macro
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(13): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(14): error: A1163E: Unknown opcode SPDX-License-Identifier: , expecting opcode or Macro
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(15): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(16): error: A1163E: Unknown opcode Version: , expecting opcode or Macro
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(17): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(18): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(19): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(20): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(22): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(23): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(24): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(25): error: A1167E: Invalid line start 
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(26): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(27): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(28): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(29): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(30): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(31): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(32): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(33): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(34): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(35): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(36): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(37): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(38): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(39): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(40): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(41): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(43): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(44): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(45): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(46): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(47): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(48): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(49): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(50): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(51): error: A1137E: Unexpected characters at end of line
..\libraries\MIMXRT1020\MIMXRT1021\arm\startup_MIMXRT1021.s(52): error: A1137E: Unexpected characters at end of line
compiling timer.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\src\timer.c: 0 warnings, 1 error
compiling system_MIMXRT1021.c...
compiling fsl_lpuart.c...
..\libraries\MIMXRT1020\MIMXRT1021\drivers\fsl_lpuart.h(277): error:  #3092: anonymous unions are only supported in --gnu mode, or when enabled with #pragma anon_unions
      };
..\libraries\MIMXRT1020\MIMXRT1021\drivers\fsl_lpuart.c: 0 warnings, 1 error
compiling fsl_gpio.c...
compiling mstorage.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\drivers/usb_device.h(134): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\drivers/usb_device.h(438): warning:  #223-D: function "rt_malloc" declared implicitly
          data = (rt_uint8_t *)rt_malloc(header.dwLength);
..\..\..\components\drivers\usb\usbdevice\class\mstorage.c: 1 warning, 2 errors
compiling fsl_cache.c...
compiling fsl_clock.c...
compiling fsl_common.c...
compiling fsl_usdhc.c...
compiling cdc_vcom.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\include\drivers/usb_device.h(134): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\drivers/usb_device.h(438): warning:  #223-D: function "rt_malloc" declared implicitly
          data = (rt_uint8_t *)rt_malloc(header.dwLength);
..\..\..\components\drivers\usb\usbdevice\class\cdc_vcom.c: 1 warning, 13 errors
compiling usbdevice.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\ipc/workqueue.h(41): error:  #70: incomplete type is not allowed
      struct rt_semaphore sem;
..\..\..\components\drivers\include\ipc/waitqueue.h(35): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_wqueue_init(rt_wqueue_t *queue)
..\..\..\components\drivers\include\ipc/waitqueue.h(43): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_add(rt_wqueue_t *queue, struct rt_wqueue_node *node);
..\..\..\components\drivers\include\ipc/waitqueue.h(45): error:  #20: identifier "rt_wqueue_t" is undefined
  int  rt_wqueue_wait(rt_wqueue_t *queue, int condition, int timeout);
..\..\..\components\drivers\include\ipc/waitqueue.h(46): error:  #20: identifier "rt_wqueue_t" is undefined
  void rt_wqueue_wakeup(rt_wqueue_t *queue, void *key);
..\..\..\components\drivers\include\ipc/pipe.h(21): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\ipc/pipe.h(31): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t reader_queue;
..\..\..\components\drivers\include\ipc/pipe.h(32): error:  #20: identifier "rt_wqueue_t" is undefined
      rt_wqueue_t writer_queue;
..\..\..\components\drivers\include\ipc/pipe.h(34): error:  #70: incomplete type is not allowed
      struct rt_mutex lock;
..\..\..\components\drivers\include\ipc/poll.h(19): error:  #20: identifier "rt_wqueue_t" is undefined
  typedef void (*poll_queue_proc)(rt_wqueue_t *, struct rt_pollreq *);
..\..\..\components\drivers\include\ipc/poll.h(27): error:  #20: identifier "rt_wqueue_t" is undefined
  rt_inline void rt_poll_add(rt_wqueue_t *wq, rt_pollreq_t *req)
..\..\..\components\drivers\usb\usbdevice\core\usbdevice.c: 0 warnings, 12 errors
compiling usbdevice_core.c...
..\..\..\include\rtdef.h(400): error:  #20: identifier "RT_NAME_MAX" is undefined
      char       name[RT_NAME_MAX];                       /**< name of kernel object */
..\..\..\components\drivers\include\drivers/usb_device.h(134): error:  #70: incomplete type is not allowed
      struct rt_device parent;
..\..\..\components\drivers\include\drivers/usb_device.h(438): warning:  #223-D: function "rt_malloc" declared implicitly
          data = (rt_uint8_t *)rt_malloc(header.dwLength);
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c(710): warning:  #223-D: function "rt_malloc" declared implicitly
                      usb_comp_id_desc = (rt_uint8_t *)rt_malloc(usb_comp_id_desc_size);
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c(1016): warning:  #223-D: function "rt_malloc" declared implicitly
      udevice = (udevice_t)rt_malloc(sizeof(struct udevice));
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c(1152): warning:  #223-D: function "rt_malloc" declared implicitly
      cfg = (uconfig_t)rt_malloc(sizeof(struct uconfig));
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c(1191): warning:  #223-D: function "rt_malloc" declared implicitly
      intf = (uintf_t)rt_malloc(sizeof(struct uinterface));
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c(1226): warning:  #223-D: function "rt_malloc" declared implicitly
      setting = (ualtsetting_t)rt_malloc(sizeof(struct ualtsetting));
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c(1233): error:  #513: a value of type "int" cannot be assigned to an entity of type "void *"
      setting->desc = rt_malloc(desc_size);
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c(1237): warning:  #223-D: function "rt_free" declared implicitly
          rt_free(setting);
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c(1291): warning:  #223-D: function "rt_malloc" declared implicitly
      func = (ufunction_t)rt_malloc(sizeof(struct ufunction));
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c(1326): warning:  #223-D: function "rt_malloc" declared implicitly
      ep = (uep_t)rt_malloc(sizeof(struct uendpoint));
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c(2162): warning:  #223-D: function "rt_mq_recv" declared implicitly
          if(rt_mq_recv(&usb_mq, &msg, sizeof(struct udev_msg),
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c(2224): warning:  #223-D: function "rt_mq_send" declared implicitly
      return rt_mq_send(&usb_mq, (void*)msg, sizeof(struct udev_msg));
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c(2228): error:  #20: identifier "RT_ALIGN_SIZE" is undefined
  ALIGN(RT_ALIGN_SIZE)
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c(2249): warning:  #223-D: function "rt_mq_init" declared implicitly
      rt_mq_init(&usb_mq,
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c(2144): error:  #235: variable "usb_mq" was declared with a never-completed type
  static struct rt_messagequeue usb_mq;
..\..\..\components\drivers\usb\usbdevice\core\usbdevice_core.c: 12 warnings, 5 errors
compiling fsl_flexspi_nor_boot.c...
compiling fsl_flexspi_nor_flash.c...
".\build\keil\Obj\rtthread.axf" - 750 Error(s), 242 Warning(s).
Target not created.
Build Time Elapsed:  00:00:26

guanjianhe avatar Sep 23 '22 00:09 guanjianhe

你应该是在bsp目录下直接 scons --target=mdk5的吧, 1.建议先复制bsp目录(bsp/imxrt/imxrt1021-nxp-evk 复制成 bsp/imxrt/imxrt1021-nxp-evk-test),然后更新在线软件包 pkgs --update, 2.再使用scons 直接调用gcc编译下,如果没有问题, 3.再scons --dist生成出dist目录下的工程(这个工程会把rtthread的源码和组件都复制到bsp包中,可以复制这个目录到任何文件夹中使用) 在这个工程里面再执行scons --target=mdk5 ,然后再使用mdk5编译。 因为你前面在bsp目录下直接转成mdk5工程好像mdk5里面rtthread的源码和组件都是用的相对路径 像这样 ......\components\drivers\include 而你dist之后变成 rt-thread\components\drivers\include 可能是mdk5找路径没找对

cazure avatar Oct 02 '22 03:10 cazure

你应该是在bsp目录下直接 scons --target=mdk5的吧, 1.建议先复制bsp目录(bsp/imxrt/imxrt1021-nxp-evk 复制成 bsp/imxrt/imxrt1021-nxp-evk-test),然后更新在线软件包 pkgs --update, 2.再使用scons 直接调用gcc编译下,如果没有问题, 3.再scons --dist生成出dist目录下的工程(这个工程会把rtthread的源码和组件都复制到bsp包中,可以复制这个目录到任何文件夹中使用) 在这个工程里面再执行scons --target=mdk5 ,然后再使用mdk5编译。 因为你前面在bsp目录下直接转成mdk5工程好像mdk5里面rtthread的源码和组件都是用的相对路径 像这样 ......\components\drivers\include 而你dist之后变成 rt-thread\components\drivers\include 可能是mdk5找路径没找对

谢谢大佬,问题依旧存在

guanjianhe avatar Oct 17 '22 05:10 guanjianhe