Jump to content

    
Sign in to follow this  
Pavel V.

Подружить TNKernel + TNNet с LPC1768

Recommended Posts

Пытаюсь портировать стек TNNet на LPC1768, на данный момент все файлы порта переписал, но столкнулся с непонятной проблемой.

Инициализация MAC, PHY почти проходит, затыкаясь на инициализации дескрипторов.

 

UPDATE

Проблему нашел, была моя невнимательность. Но стек пока не заработал, буду двигаться дальше.

Share this post


Link to post
Share on other sites

К сожалению, пока пришлось прекратить попытки запустить этот стек из-за отсутствия времени и переключиться на более простой и понятный uIP. Выкладываю проект со своими потугами портирования. В нем содержится TNKernel и TNNet адаптированные для lpc1768.

 

Проект нормально собирается и запускается. Даже какие-то пакеты по сети проходят судя по логам Wireshark-а, но праздника первого пинга так и не получилось, к сожалению. Может быть кто-нибудь доведет до ума.

 

Скорее всего там проблема с прерываниями, я тут пока еще профан, т.к. АРМами плотно занимаюсь всего неделю.

 

Проект для Eclipse + GNU ARM Plugin + Sourcery GCC.

tnnet_lpc1768.zip

Share this post


Link to post
Share on other sites

У меня без проблем получилось. И изменения не значительные типа

#if __CORE__ < 7

#define MEM_DRV_START_ADDR 0x7FE00000u //-- LPC2368

#else

#define MEM_DRV_START_ADDR 0x20080000u //-- LPC1768

#endif

 

lpc_net.zip

Share this post


Link to post
Share on other sites
У меня без проблем получилось.

 

Огромное спасибо!

 

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

 

Заранее спасибо!

Share this post


Link to post
Share on other sites

Ура, ура! У меня получилось :)

 

Распечатал на бумаге оригинальный порт 2368, свой порт, порт от prgjz и начал сравнивать :) В своем варианте нашел одну опечатку (вместо Rx было Tx), немного подкорректировал инициализацию MAC и все полетело :)

 

Теперь потестирую хорошенько и выложу свой вариант.

Share this post


Link to post
Share on other sites

Рабочий проект выложить не могу, а отдельно сделать к сожалению сейчас нет времени. Выкладываю свои изменения в стеке Юрия которому, пользуясь случаем, огромное спасибо за эту работу. Всё остальное в tcp.cpp. Основное изменение это возможность одновременно использовать для Cortex и ARM7 проектов. MAC address первые три NXP Semiconductors (0x00,0x60,0x37) остальные берутся из серийного номера. Успеха!

tn_net.zip

tcp.zip

Share this post


Link to post
Share on other sites
Выкладываю свои изменения в стеке Юрия которому, пользуясь случаем, огромное спасибо за эту работу. Всё остальное в tcp.cpp.

Спасибо! Сравнил Ваши исходники с версией Юрия - изменения только косметические. Мне удалось запустить тестовые проекты - пока полет нормальный, буду тестировать дальше.

Share this post


Link to post
Share on other sites
Спасибо! Сравнил Ваши исходники с версией Юрия - изменения только косметические. Мне удалось запустить тестовые проекты - пока полет нормальный, буду тестировать дальше.

 

Здравствуйте!

можете поделиться тестовым проектом? никак не получается собрать работающий вариант для LPCExpresso 1769 :(

Share this post


Link to post
Share on other sites
Мне удалось запустить тестовые проекты - пока полет нормальный, буду тестировать дальше.

 

Удалось ли вам допилить TN-NET для LPC1768 ? Поделитесь ли с остальными участниками ?

 

Теме хоть и два года, но актуальна до сих пор

Share this post


Link to post
Share on other sites

Вот. Pavel V. на каком-то форуме выкладывал часть TNNET для LPC1768, это сделано на его основе. Сначала под стартеркитовскую SKMLPC1768, текущий проект для устройства на LPC1758 с кварцем на 18.432 МГц. Для LPC175x реализован программный MDIO ввиду неработоспосбности аппаратного.

Для переделки под LPC1768 надо убрать в defines проекта определение __175x__. И для кварца на 12 МГц вместо файла system_LPC17xx_18M43-73M74.c подключить system_LPC17xx_12M-72M.c, или поправить настройки PLL руками.

На всякий случай в cpu_lpc соотв. подкаталог из рабочего проекта с автоопределением адреса PHY.

Работает с PHY KS8721 (на стартеркитовских платах) и KSZ8031.

 

Сейчас при выборе стека я бы посоветовал обратить внимание на актуальность IPv6 для Ваших проектов.

tnnet2.zip

cpu_lpc.zip

Share this post


Link to post
Share on other sites
Кто нибудь подружил уже TNNet с STM32 и/или LPC4375? Администрация спрашивает сколько усилий мне для этого надо...

Такой же вопрос. Нужен TN-NET под STM32F4 и желательно под FreeRTOS (не под TNKernel). Мой уровень - начинающий, разбираться в ассемблерных startup-файлах все еще тяжело. Стоит ли или браться за портирование? Нужно работать по TCP с высокой скоростью (использовать в продукте UDP категорически запретили, поэтому ищу готовый стек способный ее обеспечить и несложный в освоении).

Share this post


Link to post
Share on other sites

Не советую портировать TNNET. Внутри используются сервисы TNKerenel, и без хорошего знания обеих осей это не получится. Под FreeRTOS есть же нормально работающий lwIP, поищите по форуму - здесь это постоянно обсуждается.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this