Каково решение, когда компилятор не может найти определенные пользователем типы данных из включенного файла.h?

Сообщество Hello Stack Overflow,

У меня очень странная ошибка компилятора, когда я пытаюсь скомпилировать пример кода для приложения на клавиатуре USB, полученный из Freescale MQX. В usb_descriptor.c он имеет:

`usb_language_t g_usb_language[USB_MAX_SUPPORTED_INTERFACES] =
{
    {
        (uint16_t) 0x0409,
        g_string_descriptors,
        g_string_desc_size
    }
};
/*************************************/
usb_all_languages_t g_languages =
{
    g_usb_str_0,
    sizeof(g_usb_str_0),
    USB_MAX_LANGUAGES_SUPPORTED,
    g_usb_language
};`

/ ****************************** /

uint8_t USB_Desc_Set_Speed
(
    uint32_t handle,
    uint16_t speed
    )
{
    descriptor_union_t ptr1, ptr2;
UNUSED_ARGUMENT(handle);'

usb_language_t, usb_all_languages_t & descriptor_union_t определены в файле usb_desc.h следующим образом:

 typedef struct _usb_language 
{
    uint16_t language_id;
    uint8_t ** lang_desc;
    uint8_t * lang_desc_size;    
} usb_language_t;

typedef struct _usb_all_languages
{
    uint8_t *languages_supported_string;
    uint8_t  languages_supported_size;
    uint8_t  languages_number;
    /*Allocate Memory In App Layer*/
    usb_language_t *usb_language;
} usb_all_languages_t;
typedef union descriptor_union
{
   uint32_t                      word;
   uint8_t *                     bufr;
   void*                         pntr;
   device_descriptor_t         dvic;
   usb_configuration_descriptor_t*  cfig;
   interface_descriptor_t*      intf;
   endpoint_descriptor_t*       ndpt;
   qualifier_descriptor_t*      qual;
   otg_descriptor_t*            otg;
   common_descriptor_t*         common;
} descriptor_union_t;

Однако даже после того, как я #include "usb_desc.h"в начале usb_descriptor.c я получаю сообщения об ошибках, которые

Ошибка [Pe020]: идентификатор "usb_language_t" не определен

Ошибка [Pe020]: идентификатор "usb_all_languages_t" не определен

Ошибка [Pe020]: идентификатор "descriptor_union_t" не определен

Может кто-нибудь помочь мне с этим? Я использую IAR для разработки с MQX 4.0.2 RTOS. Кроме того, я пытаюсь интегрировать приложение устройства клавиатуры USB в уже существующую прошивку.

Заранее спасибо!

0 ответов

Другие вопросы по тегам