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

Как прошить, куда копать RTL8710

pvvx

Активный участник сообщества
А где можно взять более полную ?
У меня в голове. :) Разработчики вроде разделились - новое оф. пишет только Ameba, но не выкладывает исходников ещё с версии SDK 3.4 (2015 г), хотя у них уже в Arduino более 3.5a.
Если они такими-же темпами продолжат обновлять далее, как это делали целый год - пару мелких изменений, то на них можно будет плюнуть и все форматы у меня будут другие. То, что там сейчас творится - это просто бардак.
P.S. Документации катастрофически не хватает как на саму плату, так и на програмаж.
Вся документация в CИ файлах и в IDA :)
 

KomX

Member
Так. Начало шиться. что и куда пока непонятно. Но шьётся.
Если я только только смог непонятно что и куда зашить.
0x00000 Image1 - bootloader - ram_1.p.bin
0x09000 SystemData.bin
0x0A000 CalibrationData.bin
0x0B000 Image2 - прошивка - ram_2.bin - для области SRAM
0x0......... 0x7..... Image3 - прошивка - sdram.bin - для области SDRAM
..... (может быть доп.блок - лоадер обслуживает)
0x80000 OTA - ota.bin - так-же может быть из двух или 3-х частей
0xFC000 SavedData2.bin FEEP Установки WiFi, LwIP, UART из AT или пользовательские
Добавлю. Все эти адреса добавляются к базовому адресу флеш - flash_base_addr = $98000000.
 

pvvx

Активный участник сообщества
Добавлю. Все эти адреса добавляются к базовому адресу флеш - flash_base_addr = $98000000.
Никуда они не добавляются. Flash читается через контроллер с нулевого адреса. SPIC практически не используется из-за тормозов. Код, где можно было, уже переписан на обращение через DMA. Эти коды, дописанные в HAL не имеют исходников. Я до конца их не реверсил - нет нужды - они работают и пока не до них.
Сравнение скоростей копирования и чтения из Spic и разных памятей, чтобы было понятна их скорость и по чему переписали/приписали новые функции обращения из SDK3.4 к области отображения через spic на работу прямо с контролером по DMA:

<---- Init 1 ----> SpicDualBitMode
read(): tFlash = 2326534, clk/byte = 35 (просто чтение отображения Flash клоков CPU на байт). (= 2326534 - тактов на фиксированный блок)
memcpy(): tFlash = 10059803, clk/byte = 153 (копирование отображения Flash в RAM клоков CPU на байт).
Speed rd RAM = 147462, clk/byte = 2 (просто чтение RAM в цикле)
Speed rd TCM = 136536, clk/byte = 2 (просто чтение TCM в цикле)
read(): tFlash/tTCM = 17, tFlash/tRAM = 15 (отношение скоростей чтения Flash к TCM)
memcpy(): tFlash/tTCM = 73, tFlash/tRAM = 68 (отношение скоростей копирования из Flash в RAM и из TCM в RAM)
Spic 1Read to RAM = 749729, clk/byte = 11 (побайтное копирование в RAM из области Flash)
Spic 4Read to RAM = 682137, clk/byte = 10 (копирование словами 32 бит в RAM из области Flash)
Spic 1Read to TCM = 749729, clk/byte = 11 (побайтное копирование в TCM из области Flash)
Spic 4Read to TCM = 682136, clk/byte = 10 (копирование словами 32 бит в TCM из области Flash)

Функции на СИ и не показывают абсолютную скорость - кажут относительную (для кода на СИ).
Абсолютная скорость у TCM области - 1 такт на обращение в 16 или даже 32 бита.
Но memcpy() из области отображения Flash - 153 такта на байт!
Так что не боитесь - всё уже проверено во всех режимах :)
Если надо прочитать до десятка байт - то можно лезть в ваши 0x98000000, если более - надо обращаться к новым функциям в hal.
Но - отображение в SDK и Arduino Flash отключено, во избежание случайной записи. Т.е. вам надо будет сначала принициализировать spic, поставив семафор (RTOS -же) а потом отключить spic и отдать флаг системе. :) По этому даже пару байт проще и быстрее прочитать через hal... Т.е. это всё к тому, что дилетантам и "начинающим" там не место. Только верхний уровень Arduino. :)
 
Последнее редактирование:

KomX

Member
Вся документация в CИ файлах и в IDA :)
Вспомним и это хорошо забытое уже ПО.
Никуда они не добавляются. Flash читается через контроллер с нулевого адреса. SPIC практически не используется из-за тормозов. Код, где можно было, уже переписан на обращение через DMA. Эти коды, дописанные в HAL не имеют исходников. Я до конца их не реверсил - нет нужды - они работают и пока не до них.
Сравнение скоростей копирования и чтения из Spic и разных памятей, чтобы было понятна их скорость и по чему переписали/приписали новые функции обращения из SDK3.4 к области отображения через spic на работу прямо с контролером по DMA:

<---- Init 1 ----> SpicDualBitMode
read(): tFlash = 2326534, clk/byte = 35 (просто чтение отображения Flash клоков CPU на байт). (= 2326534 - тактов на фиксированный блок)
memcpy(): tFlash = 10059803, clk/byte = 153 (копирование отображения Flash в RAM клоков CPU на байт).
Speed rd RAM = 147462, clk/byte = 2 (просто чтение RAM в цикле)
Speed rd TCM = 136536, clk/byte = 2 (просто чтение TCM в цикле)
read(): tFlash/tTCM = 17, tFlash/tRAM = 15 (отношение скоростей чтения Flash к TCM)
memcpy(): tFlash/tTCM = 73, tFlash/tRAM = 68 (отношение скоростей копирования из Flash в RAM и из TCM в RAM)
Spic 1Read to RAM = 749729, clk/byte = 11 (побайтное копирование в RAM из области Flash)
Spic 4Read to RAM = 682137, clk/byte = 10 (копирование словами 32 бит в RAM из области Flash)
Spic 1Read to TCM = 749729, clk/byte = 11 (побайтное копирование в TCM из области Flash)
Spic 4Read to TCM = 682136, clk/byte = 10 (копирование словами 32 бит в TCM из области Flash)

Функции на СИ и не показывают абсолютную скорость - кажут относительную (для кода на СИ).
Абсолютная скорость у TCM области - 1 такт на обращение в 16 или даже 32 бита.
Но memcpy() из области отображения Flash - 153 такта на байт!
Так что не боитесь - всё уже проверено во всех режимах :)
Если надо прочитать до десятка байт - то можно лезть в ваши 0x98000000, если более - надо обращаться к новым функциям в hal.
Я уважаю Ваш опыт.
Однако, и я мало-мало умею читать листинги Delphi для Rtl00flasher.exe.
Открываем исходник Main.pas.
Вот строка вызова подпрограммы
Код:
RdFlashWrFile(rdfaddr,rdfsize,rdfname,inifmane,fname,oldfname);
в обработчике события ButtonReadFlashClick (кнопка "Read Flash", закладка "Region", выбран "FullFlash").
А это вызов подпрограммы уже в RdFlashWrFile:
Код:
res:=JLINKARM_ReadMem(rdfaddr+flash_base_addr, rdfsize, @Buf[rdfaddr]);
Как видите rdaddr получил прибавку flash_base_addr.
Топаем в flasher.pas и смотрим значение flash_base_addr:
Код:
flash_base_addr = $98000000;
Для проверки запускам JLink.exe.
Вводим команды:
h
mem 0x98000000, 0x100
И созерцаем начало Image1.bin или Вашего же FullFlash.bin.
 
Последнее редактирование:

findeler

New member
Вся документация в CИ файлах и в IDA :)
Я потихонтку уже в сишниках ваших копаюсь но пока мало что понятно. Если честно то чем больше смотрю на это тем больше посещает мысль сделать из RTL обычный uart/wifi переходник, а программу написать на обычном СТМ32F103 каком нибудь. Ни иде, ни документации, ничего толком, блин. Вот зачем они так делают.
 

sharikov

Active member
Нет, это будут датчики и исполнительные механизмы для системы управления котельной. Других дешёвых чипов с Вайфаем просто нет. Поэтому работать придётся с ними.
В котельной бюджет только на топливо таков что стоимость чипов совершенно не имеет значения. А цена аварии (например из-за непрохождения команды на привод задвижки) не позволяет даже задумываться о wifi.
Если надо работать - лучше посмотреть на openwrt модули. Там и документация есть и стабильность хороршая.
Если нужно работать надежно - только провод!
 

pvvx

Активный участник сообщества
Однако, и я мало-мало умею читать листинги Delphi для Rtl00flasher.exe.
А тему читали про него? Он сделан кое-как и требует переделки, но сторонней помощи = нуль, только требования - "тавай ущё" :)
Флешер писался до разборок с чипом и была только дурная информация от западных фриков. Вот и вляпался. Переделывать и поддерживать каждую программу я один не в состоянии. Это и есть "опыт" и он это гласит - никогда не слушать обывателей. Но я всё равно склонен доверять другим людям. Так и происходят ошибки. :)
Как видите rdaddr получил прибавку flash_base_addr.
Дык это для флешера и ради упрощения. Не для ПО на самом контролере. Там быстрее чем работает SWD нет смысла.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Ни иде, ни документации, ничего толком, блин. Вот зачем они так делают.
Кто так делает? Вы так делаете? :)
Документацию и прочее вам без проблем дадут при обращении, подписании и оплате договоров с Realtek, включая всякие NDA о неразглашении. Это не наш путь :p
В котельной бюджет только на топливо таков что стоимость чипов совершенно не имеет значения. А цена аварии (например из-за непрохождения команды на привод задвижки) не позволяет даже задумываться о wifi.
Если надо работать - лучше посмотреть на openwrt модули. Там и документация есть и стабильность хороршая.
OpenWRT не есть стабильность на всех вариантах чипов. Полной документации там никогда не было и не будет. Вы что-то путаете, т.к. ещё не разбирались...
Современные сборки Linux так-же теперь собираются халтурщиками и стабильность там ниже плинтуса. Модно это ныне - каждый день устанавливать новые патчи и обновления. :) Все системы теперь заняты главной функцией - обновлением. Всё остальное - второстепенно.
Если нужно работать надежно - только провод!
Очередная ошибка.
Зачем автономной системе "провод"? Передавать изменения в настройках? Может такая дикая необходимость снять лог во время ядерных испытаний? :) Не подождать прохождения волны эми? :) Военные как-бы уже не таскают катушки и не надо зубами держать контакт...
Наверно наигрались в ESP8266 и теперь кажется, что весь мир WiFi ненадежный. :)
 
Последнее редактирование:

findeler

New member
Флешер писался до разборок с чипом и была только дурная информация от западных фриков. Вот и вляпался. Переделывать и поддерживать каждую программу я один не в состоянии. Это и есть "опыт" и он это гласит - никогда не слушать обывателей. Но я всё равно склонен доверять другим людям. Так и происходят ошибки.
Правильно, вы написали но почему и как непонятно. Хорошая документация это как хорошо комментированный код. Требует очень много времени и сил. А без него копаться в чужих решениях... проще самому переписать. Ну да ладно.... Надо довольствоваться тем что имеешь.

Документацию и прочее вам без проблем дадут при обращении, подписании и оплате договоров с Realtek, включая всякие NDA о неразглашении. Это не наш путь :p
Понятно, значит "есть но не про вашу честь" (с) печально конечно. И денег хотят явно не 100$ :)


Чип вроде переспективный задуман правильно, но.... Ладно хватит лирики.
 

sharikov

Active member
Наверно наигрались в ESP8266 и теперь кажется, что весь мир WiFi ненадежный.
Прохождение данных по радио (любому) не гарантировано.
Для передачи команд управления в индустриальных приложениях - только провод! (если не провод то система управления должна уметь функционировать при обрыве каналов связи с датчиками и/или исполнительными устройствами а это нетривиальная задача).

И да, снятие логов во время ядерных испытаний является первоочередной задачей, ради этих логов испытания и проводятся.
 

pvvx

Активный участник сообщества
И да, снятие логов во время ядерных испытаний является первоочередной задачей, ради этих логов испытания и проводятся.
Провод при этом не применим :)
При конфигурировании, настройки и снятия логов с устройств применяется подобие NFC. Т.е. беспроводное. Разъемы так-же не применимы. :p Кто из них грязь выковыривать будет?
Вы в каком веке живете? ;)
Управление всеми роботами по радио...
Для передачи данных даже по одной плате есть специальные микросхемы с приемо/передатчиком...
Развивали и вариант передачи синхро сигнала по кристаллу чипа по принципу радио волны... :p
Открываю LeCroy - проводов не вижу... трубки вижу, оптический шнур... Где провода?
 
Последнее редактирование:

vad7

Active member
Если они такими-же темпами продолжат обновлять далее, как это делали целый год - пару мелких изменений, то на них можно будет плюнуть и все форматы у меня будут другие. То, что там сейчас творится - это просто бардак
То есть я правильно понял, что тут такая же фигня, как и с esp8266 - ни нормальной документации, ни софта?
Для esp через года только что-то более менее появилось, и то только потому, что много народу ее ковыряло.
Получается с реалтеком можно даже не заморачиваться в ближайшие несколько лет.
Я имею ввиду хоббийное применение..
 

pvvx

Активный участник сообщества
То есть я правильно понял, что тут такая же фигня, как и с esp8266 - ни нормальной документации, ни софта?
Для esp через года только что-то более менее появилось, и то только потому, что много народу ее ковыряло.
Получается с реалтеком можно даже не заморачиваться в ближайшие несколько лет.
Я имею ввиду хоббийное применение..
Да. Скорее всего вам не стоит им заниматься, т.к. на сегодня информации на RTL871x уже больше, чем на ESP8266 и ваше участие не требуется. :)
Для примера скажите что не работает на RTL871x или какую информацию по нему надо?

В сравнении с ESP8266:

1) Нету Lua (ещё не “портировали”, что есть хорошо)

На этом пока Всё. Остальное только в плюсе – ПО больше, включая нормальную работу TSL/SSL и поддержку стандартных примеров от Arduino, ну и глюков никаких нет. Скучная вещь...

C ESP-32S:

1) Значительно меньшее потребление и главное - цена.
2) Больше пользовательской RAM для стандартных примеров в Arduino даже для самого малого из семейства - RTL8710AF.
3) Полноценные разнообразные встроенные контроллеры с нормальной работой по DMA
4) Полный набор исходников в SDK и уже готовое RtlDuino + Ameba Arduino.

RTL8195AM, то RTL8711AM и RTL8711AF серии Realtek в 2015 году - выиграли "Лучший выбор Golden Award" на рынке IoT. Выставка COMPUTEX 2015.
Что тут ещё добавить? Что до вас это не дошло и нет популярных ресурсов в русских инете по этим чипам? Ну детям это сложно - интеграция в чипе большая...

Чем вы можете помочь при таких условиях?
 
Последнее редактирование:

vad7

Active member
@pvvx, Давайте вы тут хамить не будете.

Повторю для тех, кто на деревянном бронепоезде еще раз - у меня нет ни времени ни желания ковыряться в потрохах чипа.
И таких как я на этом форуме большинство.
Вот ваяю потихоньку в Eclipse поделки для хозяйства и выкладываю на github и на свой сайт.

О какой помощи и участии вообще речь, я не понял, вы что там себе надумали?
Единственное помог - перевел немного денег на UDK, и еще на какую-то либу с этого форума, которой не разу не пользовался и не собираюсь.

И от реалтека лично мне нужно, что то типа UDK на Eclipse с полным охватом функционала, архив с документацией, примеры, можно и на английском. Более того, мог и заплатить бы за это дело.
Всякие кейлы и ардуины мне не нужны.

Если бы не было esp8266, то с последний абзац был бы не актуален, так как пришлось бы этим заниматься.
А так, пока меня esp8266 устраивает, за исключением глюков естественно, но мне его в космос не запускать. В случае чего - вот это на AVR повешу.
 
Последнее редактирование:

pvvx

Активный участник сообщества
И от реалтека лично мне нужно, что то типа UDK на Eclipse с полным охватом функционала, архив с документацией, примеры, можно и на английском.
UDK на Eclipse с полным охватом функционала: UDK с Eclipse для модулей RTLxxx под Windows
архив с документацией: GitHub - pvvx/RTL871x_Info
примеры: RTL00MP3/RTL00_SDKV35a/example_sources at master · pvvx/RTL00MP3 · GitHub
А так, пока меня esp8266 устраивает, за исключением глюков естественно, но мне его в космос не запускать. В случае чего - вот это на AVR повешу.
В RTL аппаратный WDT со всеми современными режимами работы. Напоминать что это за типы обработки сброса WDT - простой, оконный, ...
Вроде ничего нового не описываю - всё уже давно выложено и созданы темы для поддержки. И У матросов нет вопросов - У матросов нет проблем. :) А у вас есть. И главное что проблемы не понятные никому кроме вас. Но выразить вы их не можете.
 
Последнее редактирование:

aloika

Active member
UDK на Eclipse с полным охватом функционала: UDK с Eclipse для модулей RTLxxx под Windows
Это действительно есть, работает, подтверждаю.

Проблема-то в другом. На ESP благодаря pvvx есть "свалка" - прошивка "малого веб-сервера", в которой уже большинство стандартных нужных вещей реализовано. И можно взять эту "свалку" и на ее основе сделать что-то свое уже _прикладное_, не разбираясь с функционированием "системных" вещей. Ну да, надо там немного разобраться, как что работает, но когда оно работает - то можно только очень поверхностно понять, не вдаваясь в детали, где, грубо говоря, писать свой код и т.д. Это вполне реально для людей скромной квалификации, типа моей.

А для RTL пока что есть куча разрозненных примеров и проект с MP3, а также Arduino (что по сути - тоже какие-то примеры, только в ардуинской обертке). Ну загрузил я проект MP3, поморгал светодиодом - пару строчек своих дописал. И всё. А хотелось бы - web-сервер, диск к нему, переменные, настройки wi-fi. Это минимум. И потом еще - cdns/captive portal, netbios, sntp, websocket - это уже роскошь, да :) Оно как-бы почти всё это есть, но в каких-то разрозненных обрывках. А соединить всё это в единый рабочий проект - у меня, например, квалификации такой нет (на данный момент по крайней мере). Вот и остается ждать, когда кто-нибудь эту работу проделает и всё готовое выложит. И, судя по предыдущему опыту, это может быть только pvvx. Ну а я, например, могу только это готовое взять и потестировать применительно к своим интересам...

Поэтому пока что пользуемся ESP8266, и надеемся на лучшее.

(Долго ли нам ещё ждать "свалки" на RTL? Если _ждать_ - то долго... :)))
 

vad7

Active member
UDK на Eclipse с полным охватом функционала: UDK с Eclipse для модулей RTLxxx под Windows
Судя по вашим же сообщениям там далеко еще не все гладко и примеров пока мало.

Лечиться не пробовали? Сейчас медицина делает чудеса.

На ESP благодаря pvvx есть "свалка" - прошивка "малого веб-сервера", в которой уже большинство стандартных нужных вещей реализовано.
Да это ему не интересно, такой проект сделать нужно куча времени и терпения. Да и видать еще не так все гладко с этим реалтеком.
 

pvvx

Активный участник сообщества
Судя по вашим же сообщениям там далеко еще не все гладко и примеров пока мало.
Ну пока больше, чем у обоих ESP :) А по количеству исходников - больше в стони раз. Тем более в Arduino уже есть всё. Больших конструкций как "примерище" пока не наблюдаю ни у одного проекта в Arduino. Там всегда всё несвязное и кусками. Нет смысла на Arduino делать что-то серъезное - это игра на вечер.
И как вижу вам сказать уже конкретно нечего о том чего нету в RTL на сегодня в Arduino и других примерах...
Лечиться не пробовали? Сейчас медицина делает чудеса.
Это про вас. Я же так не привязан к ESP, как в песенке... :)
Да это ему не интересно, такой проект сделать нужно куча времени и терпения. Да и видать еще не так все гладко с этим реалтеком.
Действительно не интересно, т.к. пока не требуется проектов с WiFi. Но в серийное применение уже запустил RTL-лы, а прошло всего пару месяцев с нулевой информации. Нету пока недели, чтобы перекинуть последний кусок web-свалки на RTL и протестировать (это большее время и займет, т.к. пользователи не могут описать ошибки или произвести тестирование - на это у них уйдут годы :) ). Я вообще наверно скоро слиняю на другой сайт - тут же ESP8266, а он устарел. Будете дальше тут песни петь под дудку Espressif :)

Сейчас пытаюсь переделать CMSIS-DAP к RTL на свою версию для своих поделок/проделок на STM32F0xx или STM32F103С8. USB-COM+JTAG+SWD там уже есть, но надо допинать туда эмуляцию mbed диска для прошивки...
 
Последнее редактирование:

KomX

Member
Я вообще наверно скоро слиняю на другой сайт
Не забудь оставить адресок для адептов RTL.

Сейчас пытаюсь переделать CMSIS-DAP к RTL на свою версию для своих поделок/проделок на STM32F0xx или STM32F103С8. USB-COM+JTAG+SWD там уже есть, но надо допинать туда эмуляцию mbed диска для прошивки...
Может наравне с mbed допилить связку FTP+SDCard?
Кинул на карточку (по FTP или непосредственно через USB адаптер для SDCard) в корневуху новоиспеченный bin-файл и RTL-ка самостоятельно перепрошилась после перезагруки (программной или аппаратной) с последующим удалением bin-файла с карточки.
 

pvvx

Активный участник сообщества
Может наравне с mbed допилить связку FTP+SDCard?
Кинул на карточку (по FTP или непосредственно через USB адаптер для SDCard) в корневуху новоиспеченный bin-файл и RTL-ка самостоятельно перепрошилась после перезагруки (программной или аппаратной) с последующим удалением bin-файла с карточки.
Зачем? Для загрузки по сети обычно используют протокол попроще TFTP...

А Ameba просто пишет на диск с лайблом "MBED" файл "ram_all.bin".
Т.е. если вы воткнете в комп SD карту или переименуете лейбу любого диска на "MBED", да создадите на нем файл "mbed.htm", тогда в Ameba Arduino, после трансляции, туда запишется файл "ram_all.bin":
Снимок1253.gif

А мне надо немного сложнее - в mbed есть запись по паролю - защита от "очумевших ручек" + надо обратный слив и прочие файлы....
Вот и долблю GitHub - mbedmicro/DAPLink... Как и писал USB-COM+JTAG+SWD уже пашут, но диск ещё нет... Потом втюхаю вам через китайцев :)
 
Сверху Снизу