реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Keil C51 + библиотеки FT800, ошибки компилятора
Makarov
сообщение Jan 28 2016, 13:07
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 24-06-10
Пользователь №: 58 126



Здравствуйте!
Есть ЖК-индикатор от Riverdi с контроллером FT812. Хотелось бы использовать их готовые библиотеки для работы с индикатором. Но в Си пока не очень. Пытаюсь подключить библиотеки к проекту. Компилятор выдает ошибки, причем на мой взгляд беспочвенные. Компилятор Keil C51. Ошибки в приложенном снимке экрана. Первые две строки на которые он ругается выделены в коде желтым цветом. Кто нибудь может подсказать в чем проблема???
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jan 29 2016, 06:46
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 398
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Makarov @ Jan 28 2016, 17:07) *
Кто нибудь может подсказать в чем проблема???

Транслятор ругается на анонимный union.
Давно не использую МК51, поэтому не могу подсказать: как выйти из такого положения? Возможно (но не факт ! ), следует взять одну из последних версий Keil...
Go to the top of the page
 
+Quote Post
Makarov
сообщение Feb 1 2016, 09:00
Сообщение #3





Группа: Участник
Сообщений: 14
Регистрация: 24-06-10
Пользователь №: 58 126



С последним keil тоже самое. У меня есть предположение, что может не хватать каких то библиотек. Но вот каких???
Go to the top of the page
 
+Quote Post
DPL
сообщение Feb 8 2016, 14:34
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 88
Регистрация: 15-10-04
Из: Новочеркасск
Пользователь №: 886



Дело не в библиотеках, а в анонимных union, как заметили выше. Кстати, Keil для ARM их тоже не любит.
Чтобы исправить ситуацию, в первой строке, выделенной жёлтым, надо между скобкой и точкой с запятой указать произвольный идентификатор, уникальный в пределах описания typedef struct {...} Ft_Gpu_Hal_Config_t. То же самое нужно сделать для второго union (желтым не выделено):

Код
typedef struct {
  union {
    ....
  } AnyName1;
  union {
    ....
  } AnyName2;
  ...
} Ft_Gpu_Hal_Config_t;

В приведённом примере это идентификаторы AnyName1 и AnyName2. Правда в этом случае придётся править и обращения к полям структуры, а это может быть муторно, если таких обращений много.

В Keil для ARM можно разрешить анонимные union директивой #pragma anon_unions - тогда описания и обращения править не придётся.
Можно ли это сделать для Keil51 - не знаю, проверить не на чем.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th September 2017 - 01:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01352 секунд с 7
ELECTRONIX ©2004-2016