• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Arduino для RTL8710.

pvvx

Активный участник сообщества
Пробовал тут старый FTP Server STM32 ChibiOs на SD, примотал к RTL.
Показывает:
Код:
....
Interface 0 IP address : 192.168.1.151
Connected to wifi
SD card insert

SD Capacity: 7761920 sectors (3 GB | 3790 MB | 3880960 KB)

SD CSD: 400e00325b5900001d9b7f800a400001
Disk Label: 'TEST SD', Serial Number: 0xc49bfce8

CLK CPU         166666666 Hz
RAM heap        123416 bytes
TCM heap        27920 bytes
Start ftp server...
220---   Welcome to FTP Server!   ---
220 --   Version FTP-2015-04-12   --
Client connected!
<<USER Stm32-E407
331 OK. Password required
<<PASS Chibi
230 OK.
<<SYST
500 Unknow command
<<PWD
257 "/" is your current directory
<<TYPE I
200 TYPE is now 8-bit binary
<<REST 0
500 Unknow command
<<PORT 192,168,1,2,248,54
200 PORT command successful
Data IP set to 192:168:1:2
Data port set to 63542
<<TYPE A
200 TYPE is now ASII
<<LIST
Connecting in active mode
150 Accepted data connection
226 Directory send OK.
<<TYPE I
200 TYPE is now 8-bit binary
<<TYPE I
200 TYPE is now 8-bit binary
<<PORT 192,168,1,2,248,55
200 PORT command successful
Data IP set to 192:168:1:2
Data port set to 63543
<<RETR /rtl00MP3.zip
Connecting in active mode
Sending /rtl00MP3.zip
150-Connected to port 63543
150 11263506 bytes to download
226-File successfully transferred
226 13026 ms, 864 kbytes/s
~860 kbytes/s на больших файлах и от 500 на малых.
Windows не хочет есть имена - требует другой формат:
Снимок1236.gif
В других программах всё ok:
Снимок1237.gif
Но это поправимо.
Нужно ли это в RtlDuino?
 

pvvx

Активный участник сообщества
Нужно. Докачку поддерживает ?
Обычный диск FAT32 c длинными именами. Файлы и записаны по сети.
Сколько дает если писать мимо sd карты в /dev/null ?
Как это относится к устройству диска или ftp?
Скорость чтения записи на RTL871x через контроллер SDOIH описана ранее (он у нас на 20 МегБайт/сек). Код FTP Server STM32 ChibiOs без кеширования вперед и выходит меньше чем трансфер по WiFi (1.2 МегБайт/сек при одной антенне). Процесс то последовательный - запрос по WiFi блока (2xTCP_MSS - 1460*2 байта - окно стека TCP), чтение с SD блока, передача по WiFi блока, подтверждение ACK TCP приема блока. Появляется задержка в протоколе TCP на получение данных с SD. Она в основном от времени обработки начальной команды SD, а не от скорости трансфера контроллера... Так и выходит к 900 кило/сек - почти теоретический предел при данном алгоритме. Увеличение размеров буферов для SD вообще не влияют, а ухудшают ситуацию - при запросе следующего блока в данном протоколе возникает доп.задержка на чтение большого блока, который будет/не будет передан потом... В ftp это решается только несколькими потоками и распараллеливанием процессов... Тогда упремся в скорость WiFi - 1.2..1.3 мег/сек.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Дайте формат для LIST к windows ftp.exe
Код:
C:/ftp 192.168.1.151
Связь с 192.168.1.151.
220---   Welcome to FTP Server!   ---
220 --   Version FTP-2015-04-12   --
Пользователь (192.168.1.151:(none)): e
331 OK. Password required
Пароль:
230 OK.
ftp> dir
200 PORT command successful
150 Accepted data connection
+r,s7473,       test.txt
+/,     test
+r,s3135,       boards.txt
+r,s232226,     Arduino_RTL00MP3_lib.zip
+r,s274380,     RTL00Flasher.pas.zip
+r,s11263506,   rtl00MP3.zip
+r,s65538821,   sdk-ameba1-v3.4b3_without_NDA.zip
+r,s215032,     JLink.exe
+/,     Папка с длинным именем!
+/,     test12345678
+r,s0,  programmers.txt
226 Directory send OK.
ftp: 295 байт получено за 0,00 (сек) со скоростью 147,50 (КБ/сек)
-----
Всё - нашел.
https://files.stairways.com/other/ftp-list-specs-info.txt
В винде Проводник этот однопоточный ftp читает со скоростью:
<<PASV
Connection management set to passive
Data port set to 55600
227 Entering Passive Mode (192,168,1,151,217,48).
<<SIZE rtl00MP3.zip
213 11263506
<<RETR rtl00MP3.zip
Connecting in passive mode
Sending rtl00MP3.zip
150-Connected to port 55600
150 11263506 bytes to download
226-File successfully transferred
226 8034 ms, 1401 kbytes/s
Снимок1240.gif


Ну а раз помощи даже в нахождении формата нет, то выложу ftp только через месяц...
 
Последнее редактирование:

dev_n

New member
Все-таки слепил веб-сервер на netconn(поставил ограничения 8 потоков/клиентов одновременно). Спасибо pvvx за наводку по time_wait (очень помогло).
Еще не сделал поддержку multipart/form-data. Т.е ФС поддержки нет.
Это дикая альфа(код без попытки оптимизации). Для ознакомления могу выложить (или подождем нормального сервера от pvvx?)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Все-таки слепил веб-сервер на netconn(поставил ограничения 8 потоков/клиентов одновременно). Спасибо pvvx за наводку по time_wait (очень помогло).
Еще не сделал поддержку multipart/form-data. Т.е ФС поддержки нет.
Это дикая альфа(код без попытки оптимизации). Для ознакомления могу выложить (или подождем нормального сервера от pvvx?)
Любая программа ценна - выкладывайте где... Если интегрируется с rtlDuino, то могу помочь вставить.
В rtlDuino счас есть FTP-SD и работает бяка SPIFFS. К SPIFFS в Arduino есть примеры работы со всеми другими вариантами - spiffs там стандартный 100% совместимый с ESP8266.
Драйвер диска от Web-свалки + tcpsrv для RTL871x тоже кидал.
FTP-SD однопоточный, но по аналогии переделывается на C++ из FTP Server STM32 ChibiOs - что изменить уже дано в примере.
Мне просто физически не успеть всё собрать - требуется выяснение подхода - как делать Web. Подзадачей для основного потока или ... В общем много нерешенных концептуальных вопросов, а не технических. Arduino - это большая свалка нестыкующихся кусков. Чтобы собрать нормальную систему необходимо систематизировать все куски - привести к общей концепции и интерфейсу. Это задача не для одного...
 
Последнее редактирование:

dev_n

New member
Для ознакомления:
-нет поддержки multipart/form-data
-не корректно закрывается сервер(потоки)
-...
 

Вложения

pvvx

Активный участник сообщества

A_D

Active member
Не помогло, ставил 3000 и 2000.
Клон на stm32f101.
на фото видно, что программатор собран на stm32f101, а оригинальные или нормальные клоны собраны на stm32f103. Отличие у них в том, что у первого официально нет usb, по факту же есть, но его не тестируют и он может баговать. Вам возможно стоит перепаять на нужный МК и прошить его в старый ST-Link, а далее уже просто (обновить,да в j-link).
 

nkly

New member
JFlash работает, получилось слить fullflash с друго модуля и залить в этот.
 

nkly

New member
А можно, как-нибудь с помощью Jflash залить прошивку скомпилированую ардуиной?

Всё, разобрался. В Jflash надо открыть файл /rtl87xx/tools/ota.bin (это и есть скомпилированая прошивка) указать адрес 98063000 и прошить.
 
Последнее редактирование:

pvvx

Активный участник сообщества
А можно, как-нибудь с помощью Jflash залить прошивку скомпилированую ардуиной?

Всё, разобрался. В Jflash надо открыть файл /rtl87xx/tools/ota.bin (это и есть скомпилированая прошивка) указать адрес 98063000 и прошить.
Адрес не верный. Он от старой версии SDK, прошитого в ваш модуль и является индивидуальным - т.е. зависит от размера первой части.
В Arduino другие адреса основной и OTA прошивок. Как-бы стандартезировано - OTA - заливается в flash по адресу 0x80000. Загрузчик по нулю, а основная прошивка по 0xB000.
 

nkly

New member
Да, это адрес image2 из fullflash слитого с моего модуля.
Подскажите в чем может быть дело?На домашнем компе не работает загрузка в RAM. JLink IMG тоже не работала, но после заливки ota.bin с помощью JFlash эта функция заработала. Раньше при попытке загрузить в RAM модуль перезагружаться а теперь просто зависает.
 

pvvx

Активный участник сообщества
Да, это адрес image2 из fullflash слитого с моего модуля.
Подскажите в чем может быть дело?На домашнем компе не работает загрузка в RAM. JLink IMG тоже не работала, но после заливки ota.bin с помощью JFlash эта функция заработала. Раньше при попытке загрузить в RAM модуль перезагружаться а теперь просто зависает.
Я не знаю, что там у вас. У меня есть отладочные платки с STM32F103C8 - в них заливал разные прошивки Jlink, есть много STLink китайских на STM32F103C8 - покупал для своих прошивок, т.к. дешево и как-бы законченная вещь с выводами для вставки в USB - в них тоже заливал разные прошивки Jlink и проверял. Есть большой Jlink - в него не заливал ничего своего - он родной от SEGGER. Всё это работает.
Что было найдено - я вам уже написал. Некоторые варианты прошивок Jlink не работают на 4MHz SWD (с некоторыми вариантами программ) и пишут примерно то, что у вас на скриншоте. На 3900 - работают. Не уточнял причины - не вижу смысла, т.к. 3500 хватает. Может это связано с самим RTL8710AF. Нужны какие-то задержки в протоколе работы с ним по SWD. Там, где это не требуется - фирменный программатор работает и на выше частоте SWD.
При длинных проводах и неправильной разводке общего провода наблюдаются описываемые вами симптомы. Иногда запускается, иногда - нет. Сбоит передача данных по SWD. Но это называется - "кривые руки" по подключению адаптера или "кривые адаптеры из помойки" и рассматривать их тут не вижу смысла, а могу дать одну всего рекомендацию: Включите осциллограф и проверьте сигналы во время работы. Устраните неисправности.
 
Последнее редактирование:

nkly

New member
По full flash видно, что JLink IMG загружает ota.bin по адресу 0xb000, но стартует всё равно с 0x6300. С загрузчиком какие-то проблемы? Загрузка в RAM тоже не работает.
Может есть full flash с blink например, где всё на своих местах и загрузчик работает?
Arduino 1.6.4 может в этом дело?
---------
Еще есть stm32f0Discovery перешитая в JLink но почему-то связывается только с stm, что на плате, а с RTL не хочет. Пробовал разные версии Jflash.
 

pvvx

Активный участник сообщества
По full flash видно, что JLink IMG загружает ota.bin по адресу 0xb000, но стартует всё равно с 0x6300. С загрузчиком какие-то проблемы? Загрузка в RAM тоже не работает.
Возможно, что прошит такой загрузчик.
Вообше у текущих загрузчиков есть неопределенность. Из-за неё можно "убить" модуль, если нет Jtag. Связано как раз с переключением что грузить - OTA или основную прошивку (по 0xB000). Исходников загрузчика для исправления ситуации пока нет. Перелопачивать каждый раз при записи всю flash не правильный путь. Надо "чинить" загрузчик.
В новой версии RtlDuino поправлена загрузка OTA - корректируется адрес 0x80000 для OTA в области системных переменных (первое слово по адресу 0x9000 во Flash). Но это всё временная затычка пока нет исходников загрузчика...
 
Сверху Снизу