|
|
  |
eCos, использование TCP/IP |
|
|
|
Aug 27 2006, 13:10
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 16-06-06
Пользователь №: 18 105

|
Здравствуйте! Недавно в сети появился порт eCos для Olimex LPC-E2294, за что горомное спасибо Sergei Gavrikov и Evgeny_CD за новость. После некоторых модификаций этот порт заработал и на LPC-E2214. Проблема в следующем: RedBoot по умолчанию настроен на конфигурацию Ethernet через DHCP (которого в сети нет). Нет проблем, задаем статический IP/NetMask, оставляем пустыми поля Gateway и DefaultServer. Все отлично, плата пингуется. Компилим пример socket_server из комплекта ecos и заливаем его через TFTP (опять-таки нет проблем). При запуске пример долго висит на функции init_all_ethernet_devices() (вроде бы так пишется, не помню) и выдает в "unable to [чего-то_там] DHCP/BOOTP". Отлично... получается, что программа не берет настройки RedBoot? Пусть будет так, с eCos я еще не сильно знаком. Тогда задаем все те же статические адреса в конфигурации "net", пересобираем либы, прогу, заливаем ее на плату. На этой функции уже не висит, а выдает "Unable to reach network". После чего: create socket OK (3) bind FAILED (-1) listen FAILED (-1) Не подскажите, многоуважаемые знатоки, в чем может быть дело? PS: Доки по eCos читаю, пока ничего вразумительного не нашел. PPS: Пробовал конфигурацию lwip_eth, так она вобще не линкуется с моей прогой -- Dmitry.
|
|
|
|
|
Aug 27 2006, 17:49
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 16-06-06
Пользователь №: 18 105

|
Цитата(Evgeny_CD @ Aug 27 2006, 18:54)  1. Спросите в листе eCos. Там народ грамотный, отвечает квалифицированно и быстро. 2. Просьба опублимковать, что именно пришлось править для LPC-E2214, ибо LPC-E2294 нынче в дефиците  ОК, как только появится возможность. Цитата(zltigo @ Aug 27 2006, 20:37)  Цитата(Evgeny_CD @ Aug 27 2006, 19:20)  Там разные микрухи FLASH стоят (разные алгоритмы прошивки), и могут быть разные типы ОЗУ (разное кол. wait states и размер памяти).
Нет - в данном конкретном случае абсолютно одинаковые и платы и чипы. Живьем обе имею. Очень странно, там разные чипы флэш-памяти. На 94ой Intel, на 14ой AMD-совместимая. Цитата Но работают они у меня под FreeRTOS :-) Это "плохая"? А Ethernet там тоже работает? Грубо говоря, пришлось юзать eCos, потому что uIP стэк, входящий в эту ось отказывался работать. -- Dmitry.
Сообщение отредактировал DmitryV - Aug 27 2006, 17:55
|
|
|
|
|
Aug 27 2006, 18:21
|

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

|
Цитата(DmitryV @ Aug 27 2006, 20:49)  Очень странно, там разные чипы флэш-памяти. На 94ой Intel, на 14ой AMD-совместимая. Покупались осенью прошлого года. Везде TE28F320 Intel 70ns. Похоже просто сейчас просто сменили на более быструю, дешевую и доступную. Цитата А Ethernet там тоже работает? Ethernet работает, но я полагаю интересует IP стек? IP стек не поднимал. Меня интересовала внешяя RAM, если-бы в одном из проектов в 32/40K RAM не удалось-бы вписаться. И CAN немного освоить на перспективу. IP стек пока не просматривается а при необходимости я буду свой "родной" (сделанный в 90x на базе Waterloo и успешно использующийся с тех пор) портировать.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 28 2006, 09:36
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 16-06-06
Пользователь №: 18 105

|
Собственно список изменений:
1. В ecos.db (target olpce2294) добавляем CYGPKG_DEVS_FLASH_AMD_AM29XXXXX 2. В файле /devs/flash/arm/olpce2294/v1_0/src/arm_oplcee2294_flash.c меняем #include "cyg/io/flash_28fxxx.inl" на #include "cyg/io/flash_am29xxxxx.inl" 3. Из flash_olpce2294.cdl заменяем interface-implements-requires с INTEL на аналогичные для AMD.
Собственно всё.
Кстати, задал вопрос в eCos mailing list, там сказали, что надо взять другой IP адрес для программы (отличный от RedBoot). При этом все заработало, однако непонятно тогда, что же делать, если я хочу и программу и RedBoot конфигурить через BOOTP. Он же будет выдавать одинаковые адреса на одинаковый MAC...
оффтопик: не знаете ли случайно хорошего BOOTP сервера, который умеет динамически выдавать IP адреса, не привязывая их к MAC ? Т.е. задаем диапазон выдаваемых IP и он их начинает по порядку раздавать.
-- Dmitry.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|