KRS 0 29 августа, 2013 Опубликовано 29 августа, 2013 · Жалоба ??? TCP/IP стек - это бред??? TCP/IP стек - это не бред, это вполне понятный устоявшийся термин. Буфер - тоже понятный термин. Но что значит реализовать TCP/IP стек в буфере - я не понимаю. В примере, который вы загрузили просто API для встроенного MAC контроллера. А тест - просто передает и принимает фреймы Ethernet II причем там кадры даже не IP передаются! получше построю фразу: в этом тесте передаются не IP кадры у IP кадра должна стоять не длина, а тип 0x800 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg_IT 0 30 августа, 2013 Опубликовано 30 августа, 2013 · Жалоба Правильно будет работать программа если я вместо тех "не IP кадров" поставить TCP/IP стек? Конечно можно по экспериментировать, что я и сделаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psL 0 30 августа, 2013 Опубликовано 30 августа, 2013 · Жалоба У вас пример содержит инициализацию м/c phy, emac контроллера и передачу ethernet кадра в сеть. Для обмена не очень годится, поскольку нужно как минимум еще реализовать протоколы IP, ARP, UDP/TCP. Этот набор протоколов называеется "стек TCP/IP" Например, Keil поставляет собственный стек TCP/IP в наборе: http://www.keil.com/rl-arm/rl-tcpnet.asp со своими примерами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 30 августа, 2013 Опубликовано 30 августа, 2013 · Жалоба На форуме по программированию под стеком TCP/IP понимается - его программная реализация! Например uIP, lwIP, tnnet.... (keil вам уже приводили в пример) Даже если брать классическое понятие "Стек протоколов TCP/IP" все равно его нельзя записать в буфер! В буфер отправки можно записать - пакет, фрейм, кадр и т.п. Вы понимаете разницу между пакетом (фреймом) и протоколом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A. Fig Lee 0 30 августа, 2013 Опубликовано 30 августа, 2013 · Жалоба Сижу, разбираюсь с кодом EMAC. Не могу понять какой там стек реализован в выходном буфере txptr. Как я понял, если я работаю с TCP/IP, то мне именно в этот буфер нужно стек TCP/IP записывать. Так? Не путайте теплое с мягким. Это не тот стек. Тот, что Вы имеете ввиду, "стек микроконтроллера", куда пишутся данные. Стек/stack по английски просто значит пачка,набор. Вам говорят о "наборе протоколов" а не о том, куда писать данные Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg_IT 0 30 августа, 2013 Опубликовано 30 августа, 2013 · Жалоба Вы понимаете разницу между пакетом (фреймом) и протоколом? Представление имею, в краймем случае почитаю в книжках, в интернете. еще реализовать протоколы IP, ARP, UDP/TCP. Они у меня уже есть, я года три назад их для AVR+CP2200 реализовавал. Правда TCP не отлаживал и как он работает пока не знаю. Я всётаки (пусть нудно, по рабоче-крестьянски просто:)) хочу выяснить txptr это именно то место куда нужно записывать байтики протокола IP-TCP-двнные? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psL 0 30 августа, 2013 Опубликовано 30 августа, 2013 · Жалоба Представление имею, в краймем случае почитаю в книжках, в интернете. Они у меня уже есть, я года три назад их для AVR+CP2200 реализовавал. Правда TCP не отлаживал и как он работает пока не знаю. Я всётаки (пусть нудно, по рабоче-крестьянски просто:)) хочу выяснить txptr это именно то место куда нужно записывать байтики протокола IP-TCP-двнные? Да. Вот здесь данные кадра константой 0x55 заполняются: /* Skip the first 14 bytes for dst, src, and type/length */ for ( i=0; i < BodyLength; i++ ) { *(txptr+i+14) = 0x55; } По идее здесь д.б. данные IP пакета. Ну или этот кадр с 0x55 сниффером можно посмотреть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 30 августа, 2013 Опубликовано 30 августа, 2013 · Жалоба По идее здесь д.б. данные IP пакета. не только там! надо еще вместо длины записать тип 0x800 emac.* обеспечивает только канальный уровень. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg_IT 0 17 сентября, 2013 Опубликовано 17 сентября, 2013 · Жалоба Пытаюсь запустить пример EMAC из пакета примеров. Программа виснет, ждёт окончания тайаута, в функции DWORD PHYInit( DWORD PHYType ) при чтении и проверки флага BMCR_RESET WritePHY( PHY_BMCR, BMCR_RESET ); for ( i = 0; i < 0x20; i++ ); /* short delay */ timeout = MII_BMSR_TIMEOUT * 4; while ( timeout != 0 ) { regValue = ReadPHY( PHY_BMCR ); if ( (regValue & BMCR_RESET) == 0x0000 ) { break; /* Reset self cleaned once the reset process is complete */ } timeout--; } Что не так делаю? В даташите не найду описание портов, регистров, флагов (PHY_BMCR, BMCR_RESET, ...). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lotor 0 17 сентября, 2013 Опубликовано 17 сентября, 2013 · Жалоба В даташите не найду описание портов, регистров, флагов (PHY_BMCR, BMCR_RESET, ...). В датащите на свой phy надеюсь? Это стандартный регистр (Basic Mode Control Register) и должен быть описан. PS: Так и не выучили матчасть. А ведь это Вам советовал не я один в другой теме. =) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg_IT 0 18 сентября, 2013 Опубликовано 18 сентября, 2013 · Жалоба PS: Так и не выучили матчасть. А ведь это Вам советовал не я один в другой теме. =) Эээ... это в какой теме. Посмотрел за "Всё время" темы не нашёл такой. Ну да ладно. У меня документация user.manual.lpc24xx_1.04.pdf. Там только упоминание о этих регистрах. В датащите на свой phy надеюсь? Это стандартный регистр (Basic Mode Control Register) и должен быть описан. Вообще тоя имел ввиду регистр MII Mgmt Address Register (MADR - 0xFFE0 0028) Унего два поля 4:0 REGISTER ADDRESS и 12:8 PHY ADDRESS Сейчас для меня первый вопрос актуальнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 18 сентября, 2013 Опубликовано 18 сентября, 2013 · Жалоба А зачем клон темы создали? Сами же начали тему http://electronix.ru/forum/index.php?showtopic=115044 это между прочим запрещено правилами форума! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lotor 0 18 сентября, 2013 Опубликовано 18 сентября, 2013 · Жалоба Эээ... это в какой теме. Посмотрел за "Всё время" темы не нашёл такой. Ну да ладно. Склероз подсказывает, что кое-что неплохо бы забыть? =) Вам выше модератор указал в "какой теме" Сейчас для меня первый вопрос актуальнее. Для Вас актуально изучить азы. Но Вы упорно продолжаете гнуть свою линию. Удачи! =) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg_IT 0 18 сентября, 2013 Опубликовано 18 сентября, 2013 · Жалоба А зачем клон темы создали? Сами же начали тему http://electronix.ru/forum/index.php?showtopic=115044 это между прочим запрещено правилами форума! Если считаете, что это клон удаляйте тему. Я считаю, что это другой вопрос, хоть и из одной тематике. А два вопроса в одной теме тоже не правильно. Склероз подсказывает, что кое-что неплохо бы забыть? =) Вам выше модератор указал в "какой теме" Для Вас актуально изучить азы. Но Вы упорно продолжаете гнуть свою линию. Удачи! =) А по существу вопроса, почему виснет программа идущая с отладочной платой помочь можете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 18 сентября, 2013 Опубликовано 18 сентября, 2013 · Жалоба всегда был сторонником того что легче ответить на вопрос, чем объяснить почему его не надо задавать. Думаю правильным ответом будет "не знаю", потому что кто его знает почему у вас так происходит. Но предположения такие. Физики не имеют строго описания где у них какие регистры. На это нет стандарта. Физика (PHY) имеет тенденцию меняться и потому та программа что работала с одним видом физики может не работать с другим. Поэтому думаю правильным будет посмотреть что за физика стоит на вашем ките, проверить по ее описанию правильный ли адрес регистра и бита ресета который проверяется. Так же здорово будет проверить правильно ли вы определили адрес самой физики. Он часто задается ножками физики, а в программах обычно реализуют процедуру автопоиска адреса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться