|
|
  |
STM32F107 + RTL8201 + lwip-1.4.0, драйвер PHY для lwip |
|
|
|
Jan 6 2014, 11:19
|
Гуру
     
Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446

|
Вот такая ошибка: Код Error: L9937E: RL-ARM is not allowed with this license Разобрался... Код free_mem ((OS_FRAME *)var); Зачем в конце Код void cgi_process_var (U8 *qs) вышеупомянутое припеисано? Спасибо.
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
|
Jan 7 2014, 11:17
|
Гуру
     
Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446

|
Прикрутил HTTP_CGI.c и закоментил там многое. Оставил только то, что касается веб-странички из примера в той части где речь идет об IP-адресе и его замене с веб странички. Пытаюсь научиться прикручивать кнопки и окошки. Пока загвоздка в том, что не добавляется network.cgi . Иными словами index.htm я вижу, а при попытке перехода на network.cgi пишет что его нет. тег такой: Код <p><a href="/network.cgi">Посмотреть сетевые настройки</a></p> Опять сам с собой... Если кому интересно, то опять пути. Я скопировал проект чтоб не собирать новый, просто повыкидывал старое и заново подключил новое. Мне и в голову не пришло, что кейл может где-то запомнить полный путь к старому файлу. В свойствах вообще относительный всегда был. Т.е. когда я заново с нуля переподключил Web.inp тогда дело и пошло. Понятно, что в файле inp старого проекта упоминания о новых web небыло. Теперь о более насущном. На основе файлов примера я таки запустил просмотр сетевых настроек и их редактирование. Однако не все пока понятно. Мне бы хотелось попросить самый простой пример модификации переменной с веб-странички и отображения другой переменной. Интересуют коды как для контроллера так и для сайта. Просто два окошка. В одно вводим и по нажатию кнопки значение уходит в контроллер, а там присваивается. В другом окошке скажем восьмибитная переменная отображается и обновляется скажем 2-3 раза в секунду.
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
|
Jan 9 2014, 08:46
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 13-04-09
Пользователь №: 47 609

|
Добрый день. У меня тоже STM32F107 + RTL8201 (плата от Тэрры ТЕ-STM32F107). Ковыряю их пример Webserver_Demo_uIP (stm32_eth + uip v0.9). Хотел сразу переделать на lwIP, но понял, что с наскока не получится. А проблем в следующем. Создаю UDP соединение, и проваливаясь в UIP_UDP_APP() отправляю каждую секунду UDP пакеты с порядковым номером на ноутбук. На ноутбуке вижу картину: 1, 2, 3, 7, 8, 9, 11... Попробовал уменьшить время до 150мс между пакетами и увеличивать до 5 секунд, но картина примерно одинаковая во всех случаях. Т.е. мое предположение о том, что где-то что-то не успевает не оправдалось. Поставил проверку возвращаемых результатов функцией ETH_HandleTxPkt, она выполняет загрузку сообщения на передачу. Но тут во всех случаях выполнение завершается успешно. Сейчас пока пытаюсь "вручную" создавать и отправлять UDP пакеты мимо стека, что бы убедиться, что стек не виновен и разобраться с железом. Плата с ноутбуком подключены на прямую, сообщения смотрю WireSharkом. Буду благодарен за любую подсказку.
|
|
|
|
|
Jan 9 2014, 11:19
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 13-04-09
Пользователь №: 47 609

|
Цитата(Golikov A. @ Jan 9 2014, 14:02)  вы видели то ли в этой теме то ли в соседней про LwIP было сказано вот что. В стеке для STM самая самая нижня, железная функция отправки всегда возвращает что все получилось. Там стоит заглушка и приписка что в этом месте можно детектить и индицировать ошибки. Так что проверьте все ваши библиотечные функции, они для STMа не дописаны! Спасибо за ответ, я как и писал выше, просмотрел содержимое UDP пакета, создал массив с точно таким же содержимым и подменяю последние 4 символа номером пакета в виде ASCII кода и передаю этот массив функции ETH_HandleTxPkt. То, "на глаз" ничего не пропадает. То есть, похоже проблема в самом стеке, но остался вопрос с библиотекой stm32_eth, потому как данные начинают приходить с номера пакета 3, а 0, 1 и 2 мне не приходят. Будем копать.
|
|
|
|
|
Jan 11 2014, 06:55
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 13-04-09
Пользователь №: 47 609

|
Цитата(Neborak @ Jan 9 2014, 14:19)  Спасибо за ответ, я как и писал выше, просмотрел содержимое UDP пакета, создал массив с точно таким же содержимым и подменяю последние 4 символа номером пакета в виде ASCII кода и передаю этот массив функции ETH_HandleTxPkt. То, "на глаз" ничего не пропадает. То есть, похоже проблема в самом стеке, но остался вопрос с библиотекой stm32_eth, потому как данные начинают приходить с номера пакета 3, а 0, 1 и 2 мне не приходят. Будем копать. Удалось не "на глаз", а программными средствами определить, что при отправке пакетов через ETH_HandleTxPkt потерь нет при общем количестве пакетов 100000. Пока не выяснил причину, почему не приходят первые три пакета с номерами 0, 1, 2. Разбираюсь с модулем Ethernet и решил делать поддержку lwIP.
Сообщение отредактировал Neborak - Jan 11 2014, 06:56
|
|
|
|
|
Jan 14 2014, 13:44
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 13-04-09
Пользователь №: 47 609

|
Запустил AN3102 (stm32f107 + lwIP), правда, пришлось адаптировать под свою схему и обновить CMSIS. Освоил отправку UDP сообщений и попутно разбирался в железе, интересовал аппаратный расчет контрольных сумм для IP, UDP и TCP пакетов, действительно работает. Пока не удалось наладить прием пакетов, хотя все и настроено как в части, которая отвечает за tftp.
|
|
|
|
|
Jan 15 2014, 07:48
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 13-04-09
Пользователь №: 47 609

|
У меня задача передавать по UDP данные из шины CAN и наоборот при чем с минимальной задержкой. Все ближе подхожу к тому, что бы писать свой UDP/IP стек, но пока настораживает поддержка ARP и IGMP, которые тоже нужно будет реализовать. Или перейти сразу на stm32f407, демоплата есть, но придется повозиться с освоением нового чипа.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|