Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: нуждаюсь в FTP-сервере
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Usatyj
Есть плата на STR912.
Ethernet реализован на uIP.
Хочу подключить ftp сервер для отдачи создаваемых микроконтроллером файлов по Ethernet.
Дайте ссылку, где можно найти исходники.
Заранее спасибо.
etoja
Посмотри во это:
Usatyj
Смотрел. не понял. видимо, я еще слишком мало в этом понимаю...
Пример бы глянуть для какого-нибудь ARM.
AlexandrY
Нехорошо так прикалываться.
Если бы у человека был стек с BSD сокетами, то у него был бы и FTP сервер автоматом.

К сожалению под uIP нет FTP и делать под него FTP бессмысленно.
Можно было бы предложить портировать uClinux или eCOS под STR91x чтобы попробовать воспользоваться их TCP стеками c FTP, но если на плате нет внешней RAM, то шансов практически нет.


Цитата(etoja @ Jun 28 2007, 11:43) *
Посмотри во это:
SpiritDance
Можно предложить еще сцапать с сайта микриума фаппнот для str9x вместе с операционкой и стеком и портировать какой-нибудь ftp на него. Если не ошибаюсь в стеке есть интерфейс bsd-сокетов.
Сергей Борщ
Цитата(AlexandrY @ Jun 29 2007, 09:38) *
К сожалению под uIP нет FTP и делать под него FTP бессмысленно.
Можно кратенький ликбез для чайников - почему? Мне предстоит в ближайшее время организовать что-то фтп-подобное в своем устройстве (стек на базе визнета). Пока собираю всю пробегающую мимо информацию.
YAM
Цитата(Сергей Борщ @ Jun 29 2007, 12:54) *
Можно кратенький ликбез для чайников - почему? Мне предстоит в ближайшее время организовать что-то фтп-подобное в своем устройстве (стек на базе визнета). Пока собираю всю пробегающую мимо информацию.

Да не пугайте вы человека... В создании FTP сервера даже с нуля нет ничего "божественного"...
И наличие BSD сокетов или еще чего-то подобного вообще не обязательно, хотя, конечно удобнее...
Для начала создайте в UIP слушающий порт (для командного порта 21) типа так:
uip_listen(HTONS(21));
принятые пакеты выводите в отладку, там только ASCII команды. По формату постепенно добавляйте функциональности...
Конечно, необходимо наличие хоть какой файловой системы для пересылки файлов..
Вот мой минимально необходимый набор команд, которые мне были необходимы для реализации:
команда, число аргументов, уровень доступа, функция обработки
static const CMDINFO cmdtable[] =
{
{ "user", 1, 0, ftp_cmd_user },
{ "pass", 1, 1, ftp_cmd_pass },
{ "syst", 0, 2, ftp_cmd_notimp },
{ "abor", 0, 1, ftp_cmd_abor },
{ "quit", 0, 0, ftp_cmd_quit },
{ "pwd" , 0, 2, ftp_cmd_pwd },
{ "cwd" , 1, 2, ftp_cmd_cwd },
{ "type", 1, 2, ftp_cmd_type },
{ "port", 1, 2, ftp_cmd_port },
{ "pasv", 0, 2, ftp_cmd_pasv },
{ "rest", 1, 2, ftp_cmd_rest },
{ "list", 0, 2, ftp_cmd_list },
{ "dele", 1, 2, ftp_cmd_dele },
{ "mkd" , 1, 2, ftp_cmd_mkd },
{ "rmd" , 1, 2, ftp_cmd_rmd },
{ "retr", 1, 2, ftp_cmd_retr },
{ "stor", 1, 2, ftp_cmd_stor },
{ "appe", 1, 2, ftp_cmd_appe },
{ "size", 1, 2, ftp_cmd_size },
{ "mdtm", 1, 2, ftp_cmd_notimp },
{ "opts", 0, 2, ftp_cmd_notimp },
{ "site", 0, 2, ftp_cmd_notimp },
{ "help", 0, 0, ftp_cmd_help },
{ "" , 0, 0, NULL }
};
При передаче файлов по командам retr и stor необходимо открывать еще и дата порт 20, причем в зависимости от режима pasv или port, или клиент коннектится к серверу или сервер конекктится к клиенту для передачи собственно самих данных...
Если нужна только передача файлов от устройства, то dele, mkd, stor, appe не нужны...
Дерзайте... wink.gif
AlexandrY
Речь то шла о "найти", а не "как бы мне написать"
Написать по трудозатратам я оцениваю в пару недель, но нечто обрезанное как описал YAM
Стек от MICRIUM-а идеальный для этой цели для STR91x.

Цитата(Сергей Борщ @ Jun 29 2007, 13:24) *
Можно кратенький ликбез для чайников - почему? Мне предстоит в ближайшее время организовать что-то фтп-подобное в своем устройстве (стек на базе визнета). Пока собираю всю пробегающую мимо информацию.
YAM
Цитата(AlexandrY @ Jun 29 2007, 17:06) *
Речь то шла о "найти", а не "как бы мне написать"
Написать по трудозатратам я оцениваю в пару недель, но нечто обрезанное как описал YAM
Стек от MICRIUM-а идеальный для этой цели для STR91x.

Ну, если быстро wink.gif, то сюда http://sourceforge.net/projects/contiki это на UIP сделано и есть готовый FTP сервер...
Если еще быстрее, то http://contiki.cvs.sourceforge.net/contiki...i-2.x/apps/ftp/
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.