Перейти к содержанию
    

Keil MB1700: RTX+HTTP+FTP+Telnet+SNMP. проблема с аплоадом по FTP

Доброго времени

 

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

Файловая система размещена на SD.

Все работает шикарно (для моей задачи), в т.ч. загрузка файлов по FTP (на SD)

 

На основе проекта Http_demo путем включения в Net_Config.c дополнительных сервисов (FTP, Telnet, SNMP) создался собственно свой проект. Теперь все так же красиво работает, за исключением загрузки файла по FTP - при загрузке любого файла, на SD создается файл с нулевой длиной. Та же история и с заменой FTP на TFTP. Прогресс бар клиента показывает загрузку блоков файла и по окончании рапортует об успешном завершении. Но на SD файл нулевой длины.

 

Пробовал ставить флаги проверки ошибок при операциях записи и закрытия файлов по фтп - все происходит без ошибок.

 

Создание/удаление папок, удаление файлов по фтп работает. Загрузка нет.

 

Количество сокетов достаточное.

 

Буду признателен, если подтолкнете в нужном направлении как запустить данную связку сервисов и что бы работало как нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите пожалуйста: http://electronix.ru/forum/index.php?showt...mp;#entry804551

Вы те-хе исходники демок использовали? И небыло описанных там проблем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите пожалуйста: http://electronix.ru/forum/index.php?showt...mp;#entry804551

Вы те-хе исходники демок использовали? И небыло описанных там проблем?

Ошибки были только с путями, т.к. при установке указал путь отличный от пути по-умолчанию. Это касается путей к FCARM и к бибилиотекам (в демо проектах за базу берется диск С:\...) Других ошибок не попадалось.

По ссылке обсуждается другой проц. у меня LPC1768. По последнему посту ничего сказать не могу, т.к. все работает.

Еще раз повторю, все демо проекты по отдельности работают. Даже перелопатил демо http_demo под свою задачу. Тоже все работает. Начал добавлять к HTTP другие сервисы и столкнулся с subj. Единственное отличие текущего проекта от демок FTP и TFTP, что хочу, что бы все работало под RTX (идея с мноозадачностью очень понравилась после нескольких экспериментов), а в демках к FTP и TFTP нет опции RTX. Но вряд ли в этом причина, т.к. насколько я понял RTX ядро запускается первым, и оно уже в зависимости от Net_Config.c цепляет и разруливает все остальные сетевые сервисы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По ссылке обсуждается другой проц. у меня LPC1768. По последнему посту ничего сказать не могу, т.к. все работает.

Еще раз повторю, все демо проекты по отдельности работают. Даже перелопатил демо http_demo под свою задачу. Тоже все работает.

 

У меня тоже 1768, но как я уже там написал - проблема стала понятна:

я понял в чем дело - файл в самом Кейле LPC17xx.h и такой же файл в CMSIS - они разные, в последнем - без префикса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня тоже 1768, но как я уже там написал - проблема стала понятна:

еще раз перепроверил что на что ссылается и на какие версии. различий на ссылки/инклуде не нашел. еще раз пересобрал проект. та же песня.

Allregia, LPC17xx.h цепляется из всех .с фалов из одного и того же места, что внутри проектов, что и из проекта FTP_demo. Ткни носом, что именно ты имел ввиду под "файл в самом Кейле LPC17xx.h и такой жу файл в CMSIS - разные, в последнем - без префикса".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В CMSIS LPC17xx.h:

/******************************************************************************

* @file: LPC17xx.h

* @purpose: CMSIS Cortex-M3 Core Peripheral Access Layer Header File for

* NXP LPC17xx Device Series

* @version: V1.1

* @date: 14th May 2009

*----------------------------------------------------------------------------

......

/******************************************************************************/

/* Peripheral declaration */

/******************************************************************************/

#define SC (( SC_TypeDef *) SC_BASE)

#define GPIO0 (( GPIO_TypeDef *) GPIO0_BASE)

#define GPIO1 (( GPIO_TypeDef *) GPIO1_BASE)

#define GPIO2 (( GPIO_TypeDef *) GPIO2_BASE)

#define GPIO3 (( GPIO_TypeDef *) GPIO3_BASE)

#define GPIO4 (( GPIO_TypeDef *) GPIO4_BASE)

#define WDT (( WDT_TypeDef *) WDT_BASE)

 

В Keil 412 такой же файл:

/******************************************************************************

* @file: LPC17xx.h

* @purpose: CMSIS Cortex-M3 Core Peripheral Access Layer Header File for

* NXP LPC17xx Device Series

* @version: V1.09

* @date: 17. March 2010

*----------------------------------------------------------------------------

......

/******************************************************************************/

/* Peripheral declaration */

/******************************************************************************/

#define LPC_SC ((LPC_SC_TypeDef *) LPC_SC_BASE )

#define LPC_GPIO0 ((LPC_GPIO_TypeDef *) LPC_GPIO0_BASE )

#define LPC_GPIO1 ((LPC_GPIO_TypeDef *) LPC_GPIO1_BASE )

#define LPC_GPIO2 ((LPC_GPIO_TypeDef *) LPC_GPIO2_BASE )

#define LPC_GPIO3 ((LPC_GPIO_TypeDef *) LPC_GPIO3_BASE )

#define LPC_GPIO4 ((LPC_GPIO_TypeDef *) LPC_GPIO4_BASE )

#define LPC_WDT ((LPC_WDT_TypeDef *) LPC_WDT_BASE )

#define LPC_TIM0 ((LPC_TIM_TypeDef *) LPC_TIM0_BASE )

#define LPC_TIM1 ((LPC_TIM_TypeDef *) LPC_TIM1_BASE )

#define LPC_TIM2 ((LPC_TIM_TypeDef *) LPC_TIM2_BASE )

 

А вот файл adc.c из MCB1700_Http_Demo\

/*----------------------------------------------------------------------------

* Name: ADC.c

* Purpose: MCB1700 low level ADC functions

* Version: V1.00

* Note(s):

*----------------------------------------------------------------------------

* This file is part of the uVision/ARM development tools.

* This software may only be used under the terms of a valid, current,

* end user licence from KEIL for a compatible version of KEIL software

* development tools. Nothing else gives you the right to use this software.

*

* This software is supplied "AS IS" without warranties of any kind.

*

* Copyright © 2009 Keil - An ARM Company. All rights reserved.

*----------------------------------------------------------------------------

* History:

* V1.00 Initial Version

*----------------------------------------------------------------------------*/

 

#include <LPC17xx.H> /* LPC17xx definitions */

#include "ADC.h"

 

/*----------------------------------------------------------------------------

initialize ADC Pins

*----------------------------------------------------------------------------*/

void ADC_init (void) {

 

PINCON->PINSEL1 &= ~(3<<18); /* P0.25 is GPIO */

PINCON->PINSEL1 |= (1<<18); /* P0.25 is AD0.2 */

 

SC->PCONP |= (1<<12); /* Enable power to ADC block */

 

ADC->ADCR = (1<< 2) | /* select AD0.2 pin */

 

из чего видно, что ему нужна старая версия инклуда.

 

P.S. Я честно говоря, на АРМы только перешел, и с Кейлм не знаком. Был бы рад, если бы кто обьяснил самые элементарные вещи - типа как сконфгуриовать рабочую среду, чтобы заниматься программированием а не борьбой с софтом.

Вот что я делал:

1) запустил mdk412.exe - установил Keil.

2) запустил rlarm412.exe - установил РТОС.

 

далее - у меня есть файл cmsis_v1p20.zip, я его разархивировал, что дальше?

 

файл с примерами: mcb1700_http_demo.zip разархзиваровал.

 

У меня на работе и спросить не у кого - единственный человек, который работал в Кейл с АРМами - уволился и его проекты перекинули на остальных, а мы все время на msp430 и других работали.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в FTP_demo (загрузка работает) цепляется файл LPC17xx.h

/******************************************************************************
* @file:    LPC17xx.h
* @purpose: CMSIS Cortex-M3 Core Peripheral Access Layer Header File for 
*           NXP LPC17xx Device Series 
* @version: V1.09
* @date:    17. March 2010

 

скопировано из дерева исходников

 

в моем проекте то же самое отображает

 

 

в догонку...

 

у тебя действительно как и было предложено в том посту при обновлении до 4.12 обновление прошло не совсем полно. возможно демка была подправлена и обновлятор не стал ее трогать, оставив старую, а хидер новый залил, вот и возник конфликт

 

У себя же я заметил такой глюк при компиляции http_demo (пробовал на 4.05 кажется) - компилятор ни в какую не хотел цеплять файл ad.cgi. Только после переименования в ad2.cgi компиляция прошла нормально.

 

А по поводу сабжа уже начинают гложить сомнения, а не глюк ли библиотеки? Хотя буду рад, если окажется, что это у меня глюк и мне укажут в чем именно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

продолжение: RTX ни причем. Компиляция без RTX_KERNEL - результат тот же. при загрузке по фтп - файлы нулевой длины.

может кто подскажет, как воспользоваться отладчиком для TCP/IP операций?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Терминал.

 

подключил Net_Debug

установил все только на еррор

при удалении файлов, смене папок, терминал молчит

при попытке что либо загрузить по фтп в терминал сваливается листинг записываемого файла, потом пауза, потом выдает

TCP ERR: Socket 5 Retries used up, connection reset

попробовал в netconf поставить число попыток 8. все равно сообщение о 5-ти использованных попытках

 

в продолжение...

 

лог при включенном Application Full debug.

файл 12345.txt - текущий проект

файл 123456.txt - FTP_demo, в котором загрузка работает

 

запись производится на SD карту в папку "1" файл 1.txt в котором только 11111

 

что сразу бросается в глаза, то что в текущем проекте после FTP команды STOR... выводится листинг записываемого файла (в "эталонном" демо проекте листинг не выводится, т.е. как бы ошибки и нет), что свидетельствует о моментальном возникновении ошибки. Если файл выбрать большой длины, то листниг файла сразу появляется в терминалке, т.е. похоже ошибка возникает в момент начала передачи файла.....

 

попробую теперь сравнить листинг фулл дебаг и для TCP

 

 

 

продолжаем

 

во вложении два файла логов с full debug для TCP.

ошибка возникает при "начале" использования второго сокета для FTP сессии

TCP:  Mapped to Active Socket 6
TCP:  Socket 6, State CONNECT...

11111

TCP: Socket 6, Sending Control

 

в демо проекте, в этом месте "чисто"

TCP:  Mapped to Active Socket 2
TCP:  Socket 2, State CONNECT...


TCP: Socket 2, Sending Control

 

по предыдущему посту про использованные ретраи. После Socket идет его номер, а не количество использованных попыток.

в проекте количество сокетов достаточно.

 

 

12345.TXT

123456.TXT

withTCP_demo.TXT

withTCP_error.TXT

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...