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

 
 
> Компиляция lwIP 1.3.2 под ARM, Ошибки :(
_Макс
сообщение Apr 24 2010, 14:15
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Подскажите пожалуйста, от чего во время компиляции могут быть ошибки типа:

Код
...
api_lib.c  
Error[Pe513]: a value of type "void *" cannot be assigned to an entity of type "ip_hdr *" D:\IAR Embedded Workbench\scmRTOS\scmRTOS v3.10 for STM32\lwIP\core\ipv4\icmp.c 93
...
Error[Pe167]: argument of type "void *" is incompatible with parameter of type "ip_addr *" D:\IAR Embedded Workbench\scmRTOS\scmRTOS v3.10 for STM32\lwIP\core\ipv4\icmp.c 216
...
Warning[Pe236]: controlling expression is constant D:\IAR Embedded Workbench\scmRTOS\scmRTOS v3.10 for STM32\lwIP\core\ipv4\icmp.c 299
...
Warning[Pa050]: non-native end of line sequence detected (this diagnostic is only issued once) D:\IAR Embedded Workbench\scmRTOS\scmRTOS v3.10 for STM32\lwIP\core\ipv4\igmp.c 1
inet.c  
...
Error[Pe120]: return value type ("void *") does not match the function type ("netif *") D:\IAR Embedded Workbench\scmRTOS\scmRTOS v3.10 for STM32\lwIP\core\ipv4\ip.c 100
...
Error[Pe144]: a value of type "void *" cannot be used to initialize an entity of type "ip_reassdata *" D:\IAR Embedded Workbench\scmRTOS\scmRTOS v3.10 for STM32\lwIP\core\ipv4\ip_frag.c 477
...

Все идущие в комплекте файлы подключены, в том числе port от демки STM32. Ошибок по не найденным файлам нет.
Возможно это как-то связано с настройками компилятора?

Сообщение отредактировал _Макс - Apr 24 2010, 14:23
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Apr 24 2010, 15:39
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(_Макс @ Apr 24 2010, 17:38) *
Спасибо, за Ваш комментарий но он мне не помог.

Чем мог. Взять и переписать за Вас исходники я не могу. Хотя-бы по причине что я их не вижу.
Цитата
в надежде получить ответ, который поможет решить проблему.

Ответ Вы получили, однако, как оказалось Вам нужен не ответ, а какое-то готовое решение.
Старайтесь четче формулировать вопросы.
Цитата
там такие же записи в тех местах где у меня ошибки. Но от ST компилится без ошибок. Почему?

Вы про ошибки или про предупреждения тоже? Ошибки - по другому описаны прототипы или используются явные преобразования типов.

Цитата(_Макс @ Apr 24 2010, 17:50) *
а там и понимание void найдется.

Настоятельно рекомендую найти понимание творимого до, а не после того, как сотворили. Очень способствует экономии времени и нервов, не говоря о качестве.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
_Макс
сообщение Apr 24 2010, 15:48
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Цитата(zltigo @ Apr 24 2010, 18:54) *
Ответ Вы получили, однако, как оказалось Вам нужен не ответ, а какое-то готовое решение.
Старайтесь четче формулировать вопросы.

Еще раз повторюсь, что исходники рабочие, они компилируются без ошибок в другом проекте. В моем ошибки. Возможно это связано с настройками проекта, я понимаю что чего-то не знаю, но ведь для этого существуют форумы))

Если исходников у вас нет, вы можете взять их здесь rolleyes.gif

Цитата(zltigo @ Apr 24 2010, 18:54) *
Вы про ошибки или про предупреждения тоже? Ошибки - по другому описаны прототипы или используются явные преобразования типов.

Я про ошибки, проект от ST компилируется и работает. Просмотрел несколько, вроде и прототипы также записаны.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 24 2010, 16:05
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(_Макс @ Apr 24 2010, 18:03) *
Еще раз повторюсь, что исходники рабочие, они...

написаны, повторю, через анальное отверстие.
Цитата
Error[Pe513]: a value of type "void *" cannot be assigned to an entity of type "ip_hdr *" D:\IAR Embedded Workbench\scmRTOS\scmRTOS v3.10 for STM32\lwIP\core\ipv4\icmp.c 93

Совершенно правильно ругается. Там должно быть
Код
  iphdr = (struct ip_hdr *)p->payload;

Будет компилироваться ЛЮБЫМ компилятором. Дальше в том-же духе, полагаю.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
_Макс
сообщение Apr 24 2010, 16:09
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Цитата(zltigo @ Apr 24 2010, 19:20) *
Совершенно правильно ругается. Там должно быть
Код
  iphdr = (struct ip_hdr *)p->payload;

Будет компилироваться ЛЮБЫМ компилятором. Дальше в том-же духе, полагаю.

Абсолютно точно, но в демо проекте от ST такие же записи и все работает. Почему? Действительно, там должно быть явное преобразование типа, но как так сделать, что не вставлять теперь "(ip_hdr *)" во все места (их порядка 200).
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Apr 24 2010, 17:48
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(_Макс @ Apr 24 2010, 20:24) *
Абсолютно точно, но в демо проекте от ST такие же записи и все работает. Почему? Действительно, там должно быть явное преобразование типа, но как так сделать, что не вставлять теперь "(ip_hdr *)" во все места (их порядка 200).


Надо взять исходники lwip из их родного места лежания: http://www.very-clever.com/download/nongnu.../lwip-1.3.2.zip а не пользоваться не известно чем.

И если вы их внимательно посмотрите ( в частности icmp.c , там стоит именно: iphdr = (struct ip_hdr *)p->payload;)
Go to the top of the page
 
+Quote Post
_Макс
сообщение Apr 25 2010, 06:50
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Цитата(sergeeff @ Apr 24 2010, 21:03) *
Надо взять исходники lwip из их родного места лежания: http://www.very-clever.com/download/nongnu.../lwip-1.3.2.zip а не пользоваться не известно чем.

И если вы их внимательно посмотрите ( в частности icmp.c , там стоит именно: iphdr = (struct ip_hdr *)p->payload;)

Да нет же, посмотрите внимательно, откройте два файла с одинаковым именем и сравните, воспользуйтесь утилитой, в конце концов архивы на которые сослались вы и я, имеют абсолютно одинаковый размер. Добавьте символ и размер будет другой. "iphdr = (struct ip_hdr *)p->payload;" и у меня тоже есть, но не везде, мы смотрим разные строки.

Сообщение отредактировал _Макс - Apr 25 2010, 06:51
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:46
Рейтинг@Mail.ru


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