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

 
 
> lwIP + FreeRTOS + lpc23xx (24xx)
slabnoff
сообщение Sep 11 2009, 08:56
Сообщение #1


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

Группа: Свой
Сообщений: 82
Регистрация: 26-09-05
Пользователь №: 8 955



В общем осваивая lpc2388 решил разобраться с Ehternet. uIP идущий в комплекте с FreeRTOS успешно доковырял для того чтобы все заработало (там работы было на пару часов - инициализация PHY и IAR вместо Rowley). Но общее впечатление от uIP не очень хорошее - не место ему в ARM с операционкой - больше он все-таки подходит для однозадачки и слабых процов, ну или в тех случаях, когда всего функционала - простенький Web-сервер.

Почитал про lwIP, вспомнил что как-то слил отсюда чей-то пример портирования lwIP 1.3.0 как раз под нужный мне девайс + FreeRTOS (к сожалению вспомнить чье не могу). Подцепил все это к своему проекту, добился соединения и работы простенькой задачки - Web-сервер из примеров по lwIP и начал разбираться дальше. Т.к. меня прежде всего интересует передача по UDP делал несколько экспериментов и натолкнулся на баг - при посылке UDP-пакета большего размера, чем влезает в один Ethernet-кадр и соответственно пакет должен быть побит на два Ethernet-кадра приходит только второй кадр (видно в т.ч. по Ethereal). Сначала думал, что баг связан с неправильной работой с netif->mtu, даже его нашел и исправил, но по большому счету это ситуацию не исправило.
В общем уже голову сломал. Данный порт судя по содержимому EMAC.c/EMAC_ISR.c сделан из порта uIP и что выглядит не сильно красиво (хотя автору и за то что есть большое спасибо). Готов уже делать порт самостоятельно, но к сожалению начальство начало поджимать и времени на это есть совсем не много. В общем может быть кто-то чем-то сможет помочь? Если готовым портом не поделитесь, то хотя бы общие советы может какие по портированию дадите?

Нашел откуда порт брал - http://electronix.ru/forum/index.php?showt...st&p=435397.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Quasar
сообщение Dec 2 2009, 12:36
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 257
Регистрация: 2-12-06
Из: Default City
Пользователь №: 23 021



Цитата
In addition to this memory, it can also access the 8kB of general purpose SRAM and the memory on the external memory bus (applies only for the LPC2378 and LPC24xx family)


Запустил eCos на LPC2478, в eCos родной EMAC драйвер использует у меня для передачи пакетов, внешнюю SRAM память, при передачи наблюдается Underrun ошибка, если поиграться с инициализацией SRAM, то получается добиться улучшения картины, но все равно, передача хоть и идет, но очень медленно. Плата используется starterkit.ru MLPC2478. Шина памяти инититься так:
Код
       volatile cyg_uint32   regval;

       HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMC_CTRL, CYGARC_HAL_LPC24XX_REG_EMC_CTRL_EN);
       hal_lpc_set_power(CYNUM_HAL_LPC24XX_PCONP_EMC, 1);
    
       HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL8, 0x55555555);
       HAL_READ_UINT32( PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL9, regval);
       regval &= 0xCFCCFFC0;
       HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL9, (regval | 0x10110015));
  
       HAL_READ_UINT32( PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL6, regval);
       regval &= 0xFFFF0000;
       HAL_WRITE_UINT32(PIN_BASE + CYGARC_HAL_LPC24XX_REG_PINSEL6, ( regval | 0x00005555 ));

       HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITW_EN0, 0x00);
       HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITO_EN0, 0x00);
       HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITRD0,   0x01);
       HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITPAGE0, 0x00);
       HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITWR0,   0x00);
       HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_WAITTURN0, 0x00);
       HAL_WRITE_UINT32(EMC_BASE + CYGARC_HAL_LPC24XX_REG_EMCS_CONFIG0,   0x00000000);

Если вести передачу из Ethernet RAM то ни каких проблем нет, но хочется все-таки разобраться с работой из SRAM.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 00:10
Рейтинг@Mail.ru


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