|
|
  |
Стек TCP IP для LPC2478 |
|
|
|
Jun 28 2011, 20:01
|
Частый гость
 
Группа: Участник
Сообщений: 77
Регистрация: 27-05-11
Пользователь №: 65 303

|
Цитата(scifi @ Jun 28 2011, 23:33)  Посмотрите, может быть, на FreeRTOS и их demo. Насколько я понял что FREERTOS использует стек uIP или поправьте меня если я не прав? Я как понял все перечисленные стеки нуждаються в серьёзной доработке? А что скажете насчёт стека от кеила?
|
|
|
|
|
Jun 28 2011, 21:40
|

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

|
QUOTE (glonium @ Jun 28 2011, 22:01)  А что скажете насчёт стека от кеила? Если Вы никогда не работали с IP стеками, то.... широко шагнули. Если еще и программировать начали вчера, то очень широко  . Готовьтесь к серьезной работе. Все стеки идущие на халяву с примерах в общем-то обычно страдают сильным дибилизмом в части драйверов и кое-как привязанным к примеру собственно стеком. Возможности стеков тоже очень разные. Для начала не плохо знать,что хотите от стека. Если все достаточно серьезно планируется, то начните медленно и печально изучать стек да и пожалуй систему TNKernel. Там у стека ноги от FreeBSD растут. Полезно. Для изучения работы с MAC/PHY железом и написания драйвера, IP стек совсем не нужен - отложите пока в дальний ящик. И САМОЕ ГЛАВНОЕ. На форуме есть раздел для начинающих, и Ваш вопрос задается с удручающей регулярностью - надо для начала ознакомится с форумом.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 29 2011, 07:26
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(glonium @ Jun 29 2011, 00:01)  Я как понял все перечисленные стеки нуждаються в серьёзной доработке? Скорее не так. Поскольку эти стеки нацелены на широчайший спектр МК, то неизбежно требуется адаптация (портирование) к каждому конкретному МК, компилятору, ОС. Так вот, портирование - это занятие не для начинающих. Поэтому и призываю найти стек, уже портированный на то, что Вам подойдёт. Опять же, как уже было сказано, разные стеки заточены под разные применения. К примеру, автор lwip и uIP - один человек (Adam Dunkels). Почему он сделал 2 стека? Потому что lwip (исторически более ранний) поддерживает практически полный функционал TCP и способен развивать большую скорость (если есть память на буферы). А стек uIP создан для совсем маленьких МК, и он экономит память всеми возможными способами, сильно жертвуя скоростью на линках с большим пингом.
|
|
|
|
|
Jun 29 2011, 14:39
|
Частый гость
 
Группа: Участник
Сообщений: 77
Регистрация: 27-05-11
Пользователь №: 65 303

|
Цитата(zltigo @ Jun 29 2011, 01:40)  Если еще и программировать начали вчера, то очень широко  . Программировать начал увы не вчера! До этого сидел на АВР, стоит признаться что опыта в программировании ARM очень маловато! С TCP стеком знаком в плане теории а вот на практике не приходилось поднимать! Прошу совета в какую сторону смотреть  lwIP или uIP? что надёжнее и стабильнее? Цитата(Lotor @ Jun 29 2011, 13:38)  Выбрал кейловский стек, правда мне нужны только сокеты без HTTP и прочего. Документация на сайте Кейла, можете начать с "Getting Started Building Applications with RL-ARM". И что скажите о работе Кеиловского стека?
|
|
|
|
|
Jun 29 2011, 16:15
|
Частый гость
 
Группа: Участник
Сообщений: 77
Регистрация: 27-05-11
Пользователь №: 65 303

|
Цитата(MALLOY2 @ Jun 29 2011, 20:10)  Для ARM однозначно LwIP, прекрастно совместим c FREERTOS. На STM32F107 50 мегабит TCP/IP 100% загрузка проца, STR912 тоже порядка 40-50, SAM9XE 90 мегабит, переписал расчет CRC на асм, свой драйвер на МАС заточенный сугубо на LwIP. Еще свой манагер памяти для ОС и стека. Нареканий на стек нету, хотя я не пользуюсь сокетами там вроде есть какие то грабли, но как я сказал я ими не пользуюсь. То что надо! Будем разбираться спасибо! Только вот не сочтите за наглость ног если можно подскажите где взять живой пример под LPC2478 и Keil! Заранее благодарен!
Сообщение отредактировал glonium - Jun 29 2011, 16:18
|
|
|
|
|
Jun 29 2011, 16:22
|
Местный
  
Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866

|
Цитата(glonium @ Jun 29 2011, 17:39)  И что скажите о работе Кеиловского стека? Не жалуюсь. Стек интуитивно понятен и хорошо документирован. Проблемы были только при адаптации драйвера phy-микросхемы - но стека это не касается.
--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
|
|
|
|
|
Jun 29 2011, 16:43
|
Знающий
   
Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317

|
Цитата LPC2478 и Keil! К сожалению с кайлом не работаю по этому я не знаю.
|
|
|
|
|
Jun 29 2011, 19:10
|
Частый гость
 
Группа: Участник
Сообщений: 77
Регистрация: 27-05-11
Пользователь №: 65 303

|
Цитата(aaarrr @ Jun 29 2011, 23:06)  Ага, библиотеки, например, свои оставляет  Если уж захотят компетентные органы проверить лицензионность использованного при разработке ПО - проверят. Вы простите меня за мою безграмотность но попрошу пояснить? Я просто ранее сидел на gcc!
|
|
|
|
|
Jun 30 2011, 00:40
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (glonium @ Jun 30 2011, 01:15)  Только вот не сочтите за наглость ног если можно подскажите где взять живой пример под LPC2478 и Keil! Прямо в примерах Кейла и можно взять (каталоги examples и Boards). Только на Вашей плате эти примеры могут сразу не заработать, т.к. примеры могут быть под разные микросхемы PHY. Но! Настоятельно требую посмотреть вот эту тему.
--------------------
Выбор.
|
|
|
|
|
Jul 3 2011, 14:39
|
Частый гость
 
Группа: Участник
Сообщений: 77
Регистрация: 27-05-11
Пользователь №: 65 303

|
Цитата(haker_fox @ Jun 30 2011, 04:40)  Прямо в примерах Кейла и можно взять (каталоги examples и Boards). Только на Вашей плате эти примеры могут сразу не заработать, т.к. примеры могут быть под разные микросхемы PHY. Но! Настоятельно требую посмотреть вот эту тему. К сожалению в примерах Кейла не нашёл! Скачал сам стек lwIP но с какой стороны к нему подойти не пойму, да плюс моё плохое знание английского сказывается! Понял что в первую очередь надо разобраться с PHY уровнем. Это отдельный вопрос! (у меня микруха ks8721BL отладочная плата sk-mlpc2478). Меня интересует простой пример как прикрутить эту огромную кучу сырцов к проекту и как связать стек с EMAK (как организуется стыковка lwIP и PHY)! Заранее спасибо!
|
|
|
|
|
Jul 3 2011, 19:07
|
Частый гость
 
Группа: Участник
Сообщений: 77
Регистрация: 27-05-11
Пользователь №: 65 303

|
Цитата(toweroff @ Jul 3 2011, 19:16)  c:\Program Files (x86)\Keil\ARM\Boards\Keil\MCB2470\RL\TCPnet Нет там ничего у меня кеил в корне не C! И даже там ничего не нашёл! Народ!!! Я прошу вас поделиться примером прикрутки lwIP к кеиловскому проекту!
|
|
|
|
|
Jul 3 2011, 19:25
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(glonium @ Jul 3 2011, 22:07)  Нет там ничего у меня кеил в корне не C! И даже там ничего не нашёл!
Народ!!! Я прошу вас поделиться примером прикрутки lwIP к кеиловскому проекту! Вы не там копаете. Есть такая операционка MQX. Раздается на сайте Freescale. Портирована на их Cortex-M4. Там стек гораздо мощней чем все фриварные стеки и лучше документирован. Поменять тип микроконтроллера в совокупности дешевле чем поменять ошибочно выбранный стек TCP/IP и ось.
|
|
|
|
|
Jul 3 2011, 19:30
|
Частый гость
 
Группа: Участник
Сообщений: 77
Регистрация: 27-05-11
Пользователь №: 65 303

|
Цитата(AlexandrY @ Jul 3 2011, 23:25)  Вы не там копаете. Есть такая операционка MQX. Раздается на сайте Freescale. Портирована на их Cortex-M4. Там стек гораздо мощней чем все фриварные стеки и лучше документирован. Поменять тип микроконтроллера в совокупности дешевле чем поменять ошибочно выбранный стек TCP/IP и ось. Да к сожалению только приобрёл отладочную плату и как то покупать новую нехочу да и лишние траты получаются!!
|
|
|
|
|
Jul 3 2011, 19:33
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Цитата(AlexandrY @ Jul 3 2011, 23:25)  Вы не там копаете. Есть такая операционка MQX. Раздается на сайте Freescale. Портирована на их Cortex-M4. Там стек гораздо мощней чем все фриварные стеки и лучше документирован. Поменять тип микроконтроллера в совокупности дешевле чем поменять ошибочно выбранный стек TCP/IP и ось. Был на семинаре Freescale в Киеве и практическое занятие включало в себя основы работы с TCP/IP стеком под MQX. Как то так все трудно и запутано..Нет, ну я конечно понимаю ,что это немного другой уровень, но мне лично сложно было в принципе представить себя на месте программиста, который работает с осью и стеком. Кстати, а вот что-то фундаментальное по операционкам, (но для не очень сообразительных) посоветуйте почитать/полистать? Спасибо!
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
Jul 3 2011, 20:28
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(Буратино @ Jul 3 2011, 22:33)  Кстати, а вот что-то фундаментальное по операционкам, (но для не очень сообразительных) посоветуйте почитать/полистать? Спасибо! В своей библиотеке я нашел вот такую книгу: "Real-Time Concepts for Embedded Systems" by Qing Li and Carolyn Yao Не толстая - 294 страницы. Описывает сервисы RTOS без привязки к конкретной оси. Перечислены и описаны все базовые сервисы развитых RTOS. Объясняет для чего нужны те или иные сервисы. Вообще описывает концепцию программирования встраиваемых систем.
|
|
|
|
|
Jul 4 2011, 02:54
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (glonium @ Jul 4 2011, 04:07)  Нет там ничего у меня кеил в корне не C! И даже там ничего не нашёл! Странно, что 3, что 4 Кейл ставит примеры. Попробуйте их разыскать все таки. Получите сразу готовый пример (веб-сервер, ftp-сервер...). Дальше легче будет. Как это дело заставить работать с PHY ks8721 написано тутУспехов!
--------------------
Выбор.
|
|
|
|
|
Jul 4 2011, 16:47
|
Частый гость
 
Группа: Участник
Сообщений: 77
Регистрация: 27-05-11
Пользователь №: 65 303

|
Цитата(haker_fox @ Jul 4 2011, 06:54)  Странно, что 3, что 4 Кейл ставит примеры. Попробуйте их разыскать все таки. Получите сразу готовый пример (веб-сервер, ftp-сервер...). Дальше легче будет. Как это дело заставить работать с PHY ks8721 написано тутУспехов! Прошу прощения!!! Нашёл!!!! Поискал повнимательнее и нашёл пример EasyWeb с какой то библиотекой tcpip, как я понял он не очень то похож на стек lwIP и что это вообще за библиотека?
|
|
|
|
|
Jul 5 2011, 01:46
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (glonium @ Jul 5 2011, 03:45)  кстати в EasyWeb есть большой минус она может работать только с одним портом одновременно! Проект EasyWEB предназначен для ознакомления. Этот проект очень прост. Для серьезрных приложений смотрите библиотеку RL-ARMОна позволяет работать с сетью (TCPnet), с USB, CAN, FLASH-картами... Содержит операционную систему RTX. На сайте Кейла есть хорошая документация в виде pdf файла, а также архив со множеством примером. Найдите их и скачайте. QUOTE (glonium @ Jul 5 2011, 04:51)  Народ прошу вас поделиться примером как прикрутить стек lwIP к проекту и вообще с какой стороны к нему подходить? Здесь помочь не могу. Нужно искать на форуме. Но в контесте сказанного мной выше, Вам может и не понадобиться упомянутый Вами стек. QUOTE (glonium @ Jul 5 2011, 01:47)  и что это вообще за библиотека? Что-нибудь самописное или портированное с просторов интернета.
--------------------
Выбор.
|
|
|
|
|
Jul 5 2011, 16:38
|

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

|
QUOTE (glonium @ Jul 5 2011, 19:30)  и под который есть примеры.... Дались Вам эти примеры  . Вы работать собрались, или примеры копипаститить? Поверьте, за работу скопированные примеры ну никак не проканают, ибо не для того они в интернет выкладываются. QUOTE (glonium @ Jul 5 2011, 19:30)  Слышал про какой то компилятор от NXP... Бред. Компиляторов, которые могут называться компиляторами под ARM всего три - ARM, IAR, GCC. Они достаточно равноценны.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 5 2011, 17:11
|
Частый гость
 
Группа: Участник
Сообщений: 77
Регистрация: 27-05-11
Пользователь №: 65 303

|
ARM, IAR, GCC. Они достаточно равноценны. А как же http://www.phyton.ru/pages/page44.html. Или всё это реклама??? Ну а примеры нужны для того чтобы понять как подключить стек!!! Из документации на него я ничего не понял! Да и это впринципе не работа а хобби больше!
|
|
|
|
|
Jul 6 2011, 05:17
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (zltigo @ Jul 6 2011, 01:38)  Бред. Компиляторов, которые могут называться компиляторами под ARM всего три - ARM Он же RVCT, если не ошибаюсь? После покупки компанией ARM. QUOTE (glonium @ Jul 6 2011, 01:30)  С RL нехочу связываться из за его лицензионности!!! (да и кеил я выбрал случайно посоветовали как самый оптимальный по размеру кода и по быстродействию) Попользуйтесь, почувствуйте что к чему для начала) QUOTE (glonium @ Jul 6 2011, 01:30)  Решил сменить компилятор, желательно свободный и под который есть примеры работы со стеками и операционкой FREERTOS! Из свободных знаю только gcc (но как то почитал про него тесты связываться не особо охото так как по результатам тестов самый не оптимальный!). GCC и берите. Но документации немало придется почитать. На английском. QUOTE (glonium @ Jul 6 2011, 02:11)  Ну а примеры нужны для того чтобы понять как подключить стек!!! Из документации на него я ничего не понял! Да и это впринципе не работа а хобби больше! Для начала следует успокоиться. В примерах FreeRTOS есть сетевые приложения для LPC2368. Вы можете с них начать. Я тоже начинал. Правда с GCC возникли проблемы. Одна версия компилирует, но ничего не работает. Вторая версия вообще не компилирует. После некоторых мотаний и консультаций с уважаемым zltigo, решил воспользоваться проффесиональным продуктом. Тут еще книга Тревора по семейству LPC2300/2400 попалась. А там все под Кейл. Вот выбор компилятора и был сделан. Кстати, в этой книге есть описание "приручения" FreeRTOS. Но я уже к тому времени маленько разобрался с RTX, TCPnet (Вы можете поискать мои последние сообщения, увидите, чем занимался) и не стал никуда перескакивать. QUOTE (glonium @ Jul 6 2011, 03:29)  Тогда посоветуйте пожалуйста что почитать потолковее? Желательно на Русском! Книга Мартина Тревора должна быть на русском. Автор хороший. Найдите ее в интернете. На счет русского. Уже неоднократно говорилось, что для работы нужен английский. И это не ни уважение, не блажь и не предубеждения по отношению к русскому языку. Так уж сложилось в свете недавних и настоящих событий, что литературы на нем современной мало. Переводной еще меньше. А все рассуждения в конференциях, в форумах и т.п. даже в России ведутся на английском, т.к. эти рассуждения международные, т.е. касаются работы, проводимой мировым сообществом (тот же GCC).
--------------------
Выбор.
|
|
|
|
|
Jul 12 2011, 10:22
|
Местный
  
Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688

|
Цитата(toweroff @ Jul 3 2011, 19:16)  c:\Program Files (x86)\Keil\ARM\Boards\Keil\MCB2470\RL\TCPnet (а) это появляется только в последней версии MDK 4.21 (б) .\Obj\Http_demo.axf: Error: L9937E: RL-ARM is not allowed with this license
|
|
|
|
|
Jul 12 2011, 17:17
|
Местный
  
Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688

|
Цитата(toweroff @ Jul 12 2011, 18:08)  ну так скачать и поставить вот тута кейген на шо?  так в кейгене нужно правильную пипку нажимать. Но это фигня по сравнению с тем, что берешь пример, например, l\ARM\Boards\Keil\MCB1700\RL\TCPnet\Http_demo оно собирается, заливается и не работает. И где оно не работает - хрен поймешь, может потому как в версии EasyWeb мне пришлось чуть поправить EMAC.c то ли еще почему. и EasyWeb непонятно в каком направлении ковырять с целью побороть.... {{ вот если у нас дивайс напрямую соединен с компьютером, то и пинг не пропадает, и на запросы сервер всегда отвечает. а если воткнуть в локальную сеть, то половина пингов теряются, на половину или больше запросов сервер молчит как партизан. и дрыганье старт-стоп в жЫтаговском отладчике в момент молчания ничего не проясняет. }}
|
|
|
|
|
Jul 12 2011, 19:20
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Цитата(evgen2 @ Jul 12 2011, 21:17)  так в кейгене нужно правильную пипку нажимать. Но это фигня по сравнению с тем, что берешь пример, например, l\ARM\Boards\Keil\MCB1700\RL\TCPnet\Http_demo
оно собирается, заливается и не работает. И где оно не работает - хрен поймешь, может потому как в версии EasyWeb мне пришлось чуть поправить EMAC.c то ли еще почему. и EasyWeb непонятно в каком направлении ковырять с целью побороть.... {{ вот если у нас дивайс напрямую соединен с компьютером, то и пинг не пропадает, и на запросы сервер всегда отвечает. а если воткнуть в локальную сеть, то половина пингов теряются, на половину или больше запросов сервер молчит как партизан. и дрыганье старт-стоп в жЫтаговском отладчике в момент молчания ничего не проясняет. }} и какие претензии к компилятору и среде разработки? как говорит zltigo, все проблемы создали "индусы"
|
|
|
|
|
Jul 12 2011, 20:05
|
Местный
  
Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688

|
Цитата(toweroff @ Jul 12 2011, 23:20)  и какие претензии к компилятору и среде разработки?
как говорит zltigo, все проблемы создали "индусы" гы. К ним у меня тоже есть претензии. Как оказалось при установке на стационарном компьютере установщик как-то криво то ли поставил, то ли проапгрейдил Segger и теперь я занимаюсь любимым делом - ставлю и сношу, а ставиться оно чем дальше, тем дольше
|
|
|
|
|
Jul 12 2011, 21:37
|
Местный
  
Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688

|
Цитата(toweroff @ Jul 13 2011, 00:24)  segger можно скачать и с сайта, скопировать dll в кейл да и беты-альфы всегда лежат тут: http://www.segger.com/cms/beta-software-version.htmlэто я знаю, у меня их зоопарк и что-то где-то...не смог найти где. rename KEIL KEIL_OLD и последущая установка заново помогли. И с emac'ом оказывается разобраться можно, только похоже что отладчик очень сильно чудит в функции init_ethernet, которая вызывается где-то до main() аааа... победил ;-) Кейлы до сих пор не знают KS8721B, редиски id1 = read_PHY (PHY_REG_IDR1); id2 = read_PHY (PHY_REG_IDR2); moduleid = ((id1 << 16) | (id2 & 0xFFF0)); if ( moduleid == DP83848C_ID ) model=1; else if ( moduleid == KS8721B_ID ) model=2;
|
|
|
|
|
Jul 16 2011, 07:33
|
Местный
  
Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688

|
Цитата(haker_fox @ Jul 14 2011, 05:51)  Вы читали ссылки, которые я приводил? У меня тоже KS8721 и я имел некоторое количество мучений с ней. А вот на счет "до сих пор" Вы не правы. KS8721 - устаревший чип. Ссылки - это ветка "Olimex/Startetkit LPC23/4 + RMII KS8721BL, Баги в схеме :" ? Похоже читал, когда оно только началось и когда у меня были проблемы. Допустим, KS8721 - устаревший чип, тогда всё равно редиски, потому как кроме DP83848C ничего другого не знают.
|
|
|
|
|
Jul 17 2011, 22:18
|
Местный
  
Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688

|
Цитата(haker_fox @ Jul 16 2011, 16:43)  Ну так я там же написал, что нужно поправить в примерах Кейла, чтобы стек заработал с BS8721. кхе-кхе как оно может работать при наличии if (((id1 << 16) | (id2 & 0xFFF0)) == DP83848C_ID) { - совершенно непонятно я кажется уже где постил, не могу найти где, повторю тут Вариант для SK-MLPC1768, для SK-MLPC-237 делается аналогично в EMAC.h добавляем #define KS8721B_ID 0x00221610 /* PHY Identifier ks8721b */ в EMAC.c меняем void Init_EMAC(void) на int Init_EMAC(int mode) Код #define MCFG_CLK_DIV20 0x00000038 /* MDC = hclk / 20 */
// configure port-pins for use with LAN-controller, // reset it and send the configuration-sequence //mode = 0 - slow mode, 1 - fast int Init_EMAC(int mode) { // Keil: function modified to access the EMAC // Initializes the EMAC ethernet controller unsigned int regv,regv1,tout,id1,id2, moduleid, model=0, twait;
twait = 0x100000; if(mode) twait = 0x10000;
/* Power Up the EMAC controller. */ LPC_SC->PCONP |= 0x40000000; /* Enable P1 Ethernet Pins. */ LPC_PINCON->PINSEL2 = 0x50150105;
#ifdef __LPC175x /* LPC175x devices, use software MII management. */ LPC_PINCON->PINSEL4 &= ~0x000F0000; LPC_GPIO2->FIODIR |= MDC; #else /* LPC176x devices, no MDIO, MDC remap. */ LPC_PINCON->PINSEL3 = (LPC_PINCON->PINSEL3 & ~0x0000000F) | 0x00000005; #endif /* Reset all EMAC internal modules. */ LPC_EMAC->MAC1 = MAC1_RES_TX | MAC1_RES_MCS_TX | MAC1_RES_RX | MAC1_RES_MCS_RX | MAC1_SIM_RES | MAC1_SOFT_RES; LPC_EMAC->Command = CR_REG_RES | CR_TX_RES | CR_RX_RES | CR_PASS_RUNT_FRM; /* A short delay after reset. */ for (tout = 100; tout; tout--);
/* Initialize MAC control registers. */ LPC_EMAC->MAC1 = MAC1_PASS_ALL; LPC_EMAC->MAC2 = MAC2_CRC_EN | MAC2_PAD_EN;
LPC_EMAC->MAXF = ETH_MAX_FLEN; LPC_EMAC->CLRT = CLRT_DEF; LPC_EMAC->IPGR = IPGR_DEF;
/*PCLK=18MHz, clock select=6, MDC=18/6=3MHz */ /* Enable Reduced MII interface. */ LPC_EMAC->MCFG = MCFG_CLK_DIV20 | MCFG_RES_MII; for (tout = 100; tout; tout--); LPC_EMAC->MCFG = MCFG_CLK_DIV20;
regv = read_PHY (PHY_REG_BMSR); regv1= read_PHY (PHY_REG_STS);
/* Enable Reduced MII interface. */ LPC_EMAC->Command = CR_RMII | CR_PASS_RUNT_FRM;
/* Put the DP83848C in reset mode */ write_PHY (PHY_REG_BMCR, 0x8000);
/* Wait for hardware reset to end. */ for (tout = 0; tout < 0x100000; tout++) { regv = read_PHY (PHY_REG_BMCR); if (!(regv & 0x8000)) { /* Reset complete */ break; } }
/* Check if this is a DP83848C PHY. */ id1 = read_PHY (PHY_REG_IDR1); id2 = read_PHY (PHY_REG_IDR2);
moduleid = ((id1 << 16) | (id2 & 0xFFF0)); if ( moduleid == DP83848C_ID ) model=1; else if ( moduleid == KS8721B_ID ) model=2;
/* Use autonegotiation about the link speed. */ write_PHY (PHY_REG_BMCR, PHY_AUTO_NEG);
/* Wait to complete Auto_Negotiation. 0x10000*/ for (tout = 0; tout < twait; tout++) { regv = read_PHY (PHY_REG_BMSR); if (regv & 0x0020) { /* Autonegotiation Complete. */ break; } if (tout > 0x100 && (LPC_EMAC->MIND & MIND_NOT_VAL)) break; }
if (regv & 0x0020) { /* Autonegotiation Complete. */ } else { return 1; /* Ωαßσδⁿ φσ ∩εΣΩδ■≈σφ */ }
/* Check the link status. */ for (tout = 0; tout < 0x10000; tout++) { // regv = read_PHY (PHY_REG_STS); // if (regv & 0x0001) { // /* Link is on. */ // break; // } regv = read_PHY (PHY_REG_BMSR); if (regv & 0x0004) { /* Link is on. */ break; }
}
/*****************/ if(model == 2) { regv = read_PHY (PHY_REG_STS2); regv=(regv>>2)&7; if ((regv==5)||(regv==6)) {/* Full duplex is enabled. */ LPC_EMAC->MAC2 |= MAC2_FULL_DUP; LPC_EMAC->Command |= CR_FULL_DUP; LPC_EMAC->IPGT = IPGT_FULL_DUP; } else { /* Half duplex mode. */ LPC_EMAC->IPGT = IPGT_HALF_DUP; }
/* Configure 100MBit/10MBit mode. */ if ((regv==1)||(regv==5)) {/* 10MBit mode. */ LPC_EMAC->SUPP = 0; } else { /* 100MBit mode. */ LPC_EMAC->SUPP = SUPP_SPEED; } /*****************/ } else { regv = read_PHY (PHY_REG_STS);
/* Configure Full/Half Duplex mode. */ if (regv & 0x0004) { /* Full duplex is enabled. */ LPC_EMAC->MAC2 |= MAC2_FULL_DUP; LPC_EMAC->Command |= CR_FULL_DUP; LPC_EMAC->IPGT = IPGT_FULL_DUP; } else { /* Half duplex mode. */ LPC_EMAC->IPGT = IPGT_HALF_DUP; }
/* Configure 100MBit/10MBit mode. */ if (regv & 0x0002) { /* 10MBit mode. */ LPC_EMAC->SUPP = 0; } else { /* 100MBit mode. */ LPC_EMAC->SUPP = SUPP_SPEED; } } /*****************/
/* Set the Ethernet MAC Address registers */ LPC_EMAC->SA0 = (MYMAC_1 << 8) | MYMAC_2; LPC_EMAC->SA1 = (MYMAC_3 << 8) | MYMAC_4; LPC_EMAC->SA2 = (MYMAC_5 << 8) | MYMAC_6;
/* Initialize Tx and Rx DMA Descriptors */ rx_descr_init (); tx_descr_init ();
/* Receive Broadcast and Perfect Match Packets */ LPC_EMAC->RxFilterCtrl = RFC_BCAST_EN | RFC_PERFECT_EN;
/* Enable EMAC interrupts. */ LPC_EMAC->IntEnable = INT_RX_DONE | INT_TX_DONE;
/* Reset all interrupts */ LPC_EMAC->IntClear = 0xFFFF;
/* Enable receive and transmit mode of MAC Ethernet core */ LPC_EMAC->Command |= (CR_RX_EN | CR_TX_EN); LPC_EMAC->MAC1 |= MAC1_REC_EN;
return 0; }
Сообщение отредактировал evgen2 - Jul 17 2011, 22:20
|
|
|
|
|
Jul 19 2011, 07:19
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 20-06-11
Из: Ленино
Пользователь №: 65 788

|
В кейловском стеке есть функция создания сокета: Код U8 tcp_get_socket ( U8 type, /* Type of TCP socket. */ U8 tos, /* Type Of Service. */ U16 tout, /* Idle timeout period before disconnecting. */ U16 (*listener)( /* Function to call when a TCP event occurs. */ U8 socket, /* Socket handle of the local machine. */ U8 event, /* TCP event such as connect, or close. */ U8* ptr, /* Pointer to IP address of remote machine, */ /* or to buffer containing received data. */ U16 par )); /* Port number of remote machine, or length */ /* of received data. */ U16 tout - время в секундах перед разъеденением. Т.е. если он 60, то через минуту сокета не станет. Мне нужно, чтобы сокет жил "вечно". Кто знает, как этого добиться? -1 не подходит.
|
|
|
|
|
Jul 20 2011, 18:38
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 20-06-11
Из: Ленино
Пользователь №: 65 788

|
Цитата(evgen2 @ Jul 18 2011, 01:18)  Код /*PCLK=18MHz, clock select=6, MDC=18/6=3MHz */ /* Enable Reduced MII interface. */ LPC_EMAC->MCFG = MCFG_CLK_DIV20 | MCFG_RES_MII; for (tout = 100; tout; tout--); LPC_EMAC->MCFG = MCFG_CLK_DIV20; } Какие PCLK=18MH, Вы о чем? Делите Вы не частоту тактирования периферии, а частоту внешнего генератора для PHY.
Сообщение отредактировал Slowhan - Jul 20 2011, 18:39
|
|
|
|
|
Jul 21 2011, 07:31
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 20-06-11
Из: Ленино
Пользователь №: 65 788

|
Цитата(haker_fox @ Jul 20 2011, 04:57)  Насколько я понял, это таймаут по "неиспользованию" сокета. Т.е. если Вы в течение времени tout не используете сокет, то он "растворяется". Используйте почаще, и он будет существовать  Чудеса прямо, вчера отвечал в этой ветке - Вашего вопроса не видел! Или форум чудит, или я)) Тоже пришел к такому мнению, что надо использовать почаще, счас поставил 3600) У меня такой вопрос - какую скорость можно развить на кейловском стеке и LPC23xx? Мне 3 МБайта надо, а пока и мегабайт не выходит.
Сообщение отредактировал Slowhan - Jul 21 2011, 07:32
|
|
|
|
|
Jul 25 2011, 21:05
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 22-02-07
Пользователь №: 25 578

|
Нет желания плодить темы, поэтому сдесь спрошу. Посоветуйте tcp-ip стек на мелкий чип вроде lpc1114 или lpc1343.
--------------------
Мужество есть лишь у тех, кто ощутил сердцем страх! В. Кипелов, Беги за солнцем.
|
|
|
|
|
Jul 26 2011, 05:05
|
Местный
  
Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866

|
Цитата(RA3WUM @ Jul 26 2011, 01:05)  Нет желания плодить темы, поэтому сдесь спрошу. Посоветуйте tcp-ip стек на мелкий чип вроде lpc1114 или lpc1343. uIP наверное.
--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
|
|
|
|
|
Jul 26 2011, 07:26
|
Знающий
   
Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317

|
Цитата Посоветуйте tcp-ip стек на мелкий чип вроде lpc1114 или lpc1343. А что вы от стека ходите ??? я так понимаю вам нужен PPP ? так как мак контроллеров нету ? или будет МАС c SPI ?, может лучше WizNET ?
|
|
|
|
|
Jul 26 2011, 20:34
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 22-02-07
Пользователь №: 25 578

|
Цитата(MALLOY2 @ Jul 26 2011, 10:26)  А что вы от стека ходите ??? я так понимаю вам нужен PPP ? так как мак контроллеров нету ? или будет МАС c SPI ?, может лучше WizNET ? Хочу mp3-аудиопоток по http запихивать в декодер VS1053, скорость соответственно 64-192 кБит\с. Если говорить о физическом уровне то это wi-fi модуль с SPI.
Сообщение отредактировал RA3WUM - Jul 26 2011, 20:35
--------------------
Мужество есть лишь у тех, кто ощутил сердцем страх! В. Кипелов, Беги за солнцем.
|
|
|
|
|
Jul 29 2011, 07:23
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 7-06-08
Пользователь №: 38 119

|
Посоветуйте, плиз, литературу по прикручиванию lwip к юкосу. все ссылки, которые вроде как полезные - недоступны(((. А на тех, что доступны - только общая информация, мало мне подходящая. Мне хотя бы одним глазком на код взглянуть...))) и то хлеб. был на саванне, lwip.wikia.com, родной странице lwip. Да и столкнулся с проблемой источников - их раз-два и обчелся(((
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|