Как прошить, куда копать 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 уже пашут, но диск ещё нет... Потом втюхаю вам через китайцев :)
 
Сверху Снизу