Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: eCos, использование TCP/IP
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
DmitryV
Здравствуйте!

Недавно в сети появился порт 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, так она вобще не линкуется с моей прогой sad.gif

--
Dmitry.
Evgeny_CD
1. Спросите в листе eCos. Там народ грамотный, отвечает квалифицированно и быстро.

2. Просьба опублимковать, что именно пришлось править для LPC-E2214, ибо LPC-E2294 нынче в дефиците biggrin.gif
zltigo
Цитата(Evgeny_CD @ Aug 27 2006, 17:54) *
что именно пришлось править для LPC-E2214, ибо LPC-E2294 нынче в дефиците

Да они ничем не отличаются, кроме чипа без CAN и соответственно незапаянными на плате приемопередачиками и разъемами. Если не использовать CAN, то 1:1.
Evgeny_CD
Цитата(zltigo @ Aug 27 2006, 19:47) *
Цитата(Evgeny_CD @ Aug 27 2006, 17:54) *
что именно пришлось править для LPC-E2214, ибо LPC-E2294 нынче в дефиците
Да они ничем не отличаются, кроме чипа без CAN и соответственно незапаянными на плате приемопередачиками и разъемами. Если не использовать CAN, то 1:1.
Плата - это не только чип smile.gif

Там разные микрухи FLASH стоят (разные алгоритмы прошивки), и могут быть разные типы ОЗУ (разное кол. wait states и размер памяти).
zltigo
Цитата(Evgeny_CD @ Aug 27 2006, 19:20) *
Там разные микрухи FLASH стоят (разные алгоритмы прошивки), и могут быть разные типы ОЗУ (разное кол. wait states и размер памяти).

Нет - в данном конкретном случае абсолютно одинаковые и платы и чипы. Живьем обе имею.
Evgeny_CD
Цитата(zltigo @ Aug 27 2006, 20:37) *
Нет - в данном конкретном случае абсолютно одинаковые и платы и чипы. Живьем обе имею.
Тогда это хорошая новость!
zltigo
Цитата(Evgeny_CD @ Aug 27 2006, 19:43) *
Тогда это хорошая новость!

Но работают они у меня под FreeRTOS :-) Это "плохая"?
Evgeny_CD
Цитата(zltigo @ Aug 27 2006, 21:14) *
Цитата(Evgeny_CD @ Aug 27 2006, 19:43) *
Тогда это хорошая новость!
Но работают они у меня под FreeRTOS :-) Это "плохая"?
Ну почему же - просто замечательная! Значит, Вашего опыта по FreeRTOS прибавляется, и это по любому приятно - ибо FreeRTOS я буду юзать - будет у кого спросить.
DmitryV
Цитата(Evgeny_CD @ Aug 27 2006, 18:54) *
1. Спросите в листе eCos. Там народ грамотный, отвечает квалифицированно и быстро.
2. Просьба опублимковать, что именно пришлось править для LPC-E2214, ибо LPC-E2294 нынче в дефиците biggrin.gif

ОК, как только появится возможность.

Цитата(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.
zltigo
Цитата(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 и успешно использующийся с тех пор) портировать.
DmitryV
Собственно список изменений:

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.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.