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

pvvx

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

RTL flasher
1. Сначала стираю флеш.
2. Прошиваю прошивкой https://esp8266.ru/forum/attachments/fullflash-zip.3149/ через закладку Auto все галки.
3. Получаю отклик на AT команды, и с системного Уарта всё идёт.
4. но
83MHz сделано для AT чтобы он жрал меньше чем ESP8266 (так сделали PINE - а SDK от них) :) Не нравиться - перетранслируйте с 166MHz - в main.c это переключается. При работе там всё равно по умолчанию включается режим малого потребления, чтоюы модуль жрал к 15 mA. В нем вообще 40MHz. AT командами данный режим можно отключить, но он на погоду и скорость не влияет, т.к. реализован правильно - проц и прочее отключается совсем на время между beacon, если нет активности и каждые 100 ms (или установки спец.таймера) просыпается, смотрит накопившееся задачи (поступления по прерываниям и т.д.), переключает CLK на 83MHz или 166 и выполняет их скопом. Потом опять выключает все устройcтва в режим sleep и роняет CLK (можно и до 20MHz) и спит и так до следующего просыпания (через спец.таймер). Итоги потребления с графиками даны - дафно была создана спец. тема. - учитесь читать.
20MHz хватает на обслуживание WiFi за глаза - проверял. Тем более это AT прошивка - там и 10 хватит :)
Второе "но" - это варнинг. Программа для RTL8195 и пинов не хватает. В одном из примеров AT команд (тестовых) используется прерывание по I/O INT. Оно вам никогда не потребуется и до этого не дойдете :p
Так что хватит придуряться - делайте уж что дельное, а не жуйте ненужную никому фигню...
 
Последнее редактирование:
  • Like
Реакции: KomX

findeler

New member
83MHz сделано для AT чтобы он жрал меньше чем ESP8266
Ок понятно.

Второе "но" - это варнинг. Программа для RTL8195 и пинов не хватает
Ок понятно.

Так что хватит придуряться - делайте уж что дельное, а не жуйте ненужную никому фигню...
Действительно пока хватит
@pvvx
Последние вопросы:

Почему мой слитый фулфлеш и записанный обратно через auto со всеми галками убил модуль ?
Почему он же записанный с адреса 0x00000000/0x00000000 не оживляет модуль ?
Почему у вас он заработал ?
И почему ваш залитый через auto или через region работает ?

Я что криво слил фулл ?
 

pvvx

Активный участник сообщества
Я что криво слил фулл ?
Вроде криво. У меня запустилась, т.к. видимо выскочило в RAM при старте, сразу после записи. А там сидела нормальная AT. :) Т.е. вместо "протектеда" попала в нормальную программу. После повторных перезаписей так и сяк ваш фулл у меня не заработал.

Ещё у вас странный сегмент CalibrationData:
Снимок1207.gif
В нем формат такой: ID=0x8195, uint16 data_addr, uint16 data_len, данные, uint16 data_addr, uint16 data_len, данные
..... uint16 data_addr, uint16 data_len > 4096 конец или ошибка.
Считывается это всё в блок памяти 512 байт драйвером WiFi:
_adapter * p = *(_adapter **)(rltk_wlan_info->priv);
p->eeprompriv.efuse_eeprom_data; // efuse_eeprom_data[512]

У вас он переписан несколько раз. Кто так возился? Разные настройки идут 3 раза. MAC в них один и тот-же.
Беспокоиться что "фулл" битый нет смысла. Всё равно запишите туда другое. Настройки, которые с китайским неизвестным MAC у вас в нем есть и он не битый - модуль с ним работет.
 
Последнее редактирование:

findeler

New member
У вас он переписан несколько раз. Кто так возился? Разные настройки идут 3 раза. MAC в них один и тот-же.
До меня никто, я только слил и залил его обратно. Все действия описаны выше. К сожалению я не заказал 2х одинаковых evolution board. что бы сейчас проверить. Ну да ладно. Буду пробовать дальше. обычных модулей у меня много.
 

pvvx

Активный участник сообщества
До меня никто, я только слил и залил его обратно. Все действия описаны выше. К сожалению я не заказал 2х одинаковых evolution board. что бы сейчас проверить. Ну да ладно. Буду пробовать дальше. обычных модулей у меня много.
У вашего и моего первого модуля из партии купленного на али и вашего одинаковые MAC? В моем 00 f8 87 11 00 12 (прошивка Прошивка с которой пришел модуль RTL00 V1.0) В вашем дампе тоже самое. У одного продавца брали?
Они что MAC всем один и тот-же прописывают? :)
На модулях от RF-Link все MAC разные и пробиваются в базе производителей как RF-Link.
 
Последнее редактирование:

findeler

New member
в RtlDuino собрать пример ota_non_block со своими именами и паролем роутера.
Я что то не понимаю.

1. Поставил ардуино IDE.
2. Вписал путь.
3. Обновил.
4. выбрал плату и пример.
5. скомпилировал. это делает.
6. Прошить через embed не может (нет его у меня). Других вариантов не предлагает. Экспортировать прошивку не может. Как получить бинарник прошивки ?
7. upload_ota.exe есть, но совершенно отдельно и с arduino ide никак не связан.
 

pvvx

Активный участник сообщества
1. Какой путь выбран ?
Посмотреть вложение 3178

2. Какая Arduino ?
Arduino IDE 1.8.1.

3. Какая плата выбрана ?
Посмотреть вложение 3179

4. GitHub - pvvx/RtlDuino: Arduino module RTL00(RTL8710AF), F11AMIM13 (RTL8711AM) - плата RTL00 - Upload metod?

???????
Это офиц. Ameba Arduino. Она ещё не доделана для RTL871x чипов и работает только с двумя своими платами, на которых стоит другой Jtag. Realtek IoT/Arduino Solution

А разговор идет о моей неофиц. RtlDuino для чипов RTL871x с Jtag по типу SEGGER.
Снимок1208.gif
Снимок1209.gif
 
Последнее редактирование:

findeler

New member
Это офиц. Ameba Arduino. Она ещё не доделана для RTL871x чипов и работает только с двумя своими платами, на которых стоит другой Jtag. Realtek IoT/Arduino Solution
То есть я правильно понимаю ситуацию.

1. Realtek выпустил чип, но как бы не для частного сегмента, и поэтому нормальной документации и софта нет. (например как у СТМ)

2. Некие товарищи (PADI) разобрались и выпустили продукт АМЁБА по сути расширение к ардуино и к (IAR ?) но что бы у них не воровали прошивку чипов сделали через свою прокладку программатор J-link. (Mbed драйвер)
(По сути продают программатор, из за этого и нет у них бинарника на выходе что бы другими не пользовались а покупали их плату).

3. Вы разобравшись, выпустили своё (переделав их ?) расширение к ардуино RTLDUINO и свой программатор RTL-flasher иже с ним, которые шьют через другой более доступный J-link адаптер. (Segger или клон)

4. Теоретически они расширят линейку до (8710 вроде уже расширили), возможно появится нормальный офф софт. Вы же смысла улучшать не видите. Поскольку всё отличие разных чипов RTL это объём памяти и количество портов, то есть поправив адреса записи шить можно любые. А

????????

[cut]
 
Последнее редактирование:

pvvx

Активный участник сообщества
То есть я правильно понимаю ситуацию.

1. Realtek выпустил чип, но как бы не для частного сегмента, и поэтому нормальной документации и софта нет. (например как у СТМ)

2. Некие товарищи (PADI) разобрались и выпустили продукт АМЁБА по сути расширение к ардуино и к (IAR ?) но что бы у них не воровали прошивку чипов сделали через свою прокладку программатор J-link. (Mbed драйвер)
(По сути продают программатор, из за этого и нет у них бинарника на выходе что бы другими не пользовались а покупали их плату).

3. Вы разобравшись, выпустили своё (переделав их ?) расширение к ардуино RTLDUINO и свой программатор RTL-flasher иже с ним, которые шьют через другой более доступный J-link адаптер. (Segger или клон)

4. Теоретически они расширят линейку до (8710 вроде уже расширили), возможно появится нормальный офф софт. Вы же смысла улучшать не видите. Поскольку всё отличие разных чипов RTL это объём памяти и количество портов, то есть поправив адреса записи шить можно любые. А

????????

[cut]
Всё не правильно.
1. Realtek выпустил чип и всю документацию + SDK. Поставляется по запросу и договору с Realtek. Т.е. всё как у всех на SoC c WiFi.
2. Realtek походу заказал выпуск Ameba. PADI и модули B&T к этому процессу не относятся. PADI уже обращался ко мне для поддержки продаж их модулей. Я отказал.
3. Надоело ждать телодвижений Ameba и я, на базе их, слепил свою версию исключительно для себя, но дал исходные части для вас.
4. Теоретически они пытаются расширить линейку на RTL8710. Но это пока плохо у них выходит - всех портов I/O и прочего не могут задействовать из-за своей платы.
 

findeler

New member
1. Установил arduino ide
согласно руководству в архиве rtlduino readme.md
2. Установил амёбу через репозиторий.
3. Скопировал папку в hardware\development\RT....
4. В меню появилась плата RTL00 и методы прошивки.
2017-01-23_13-02-24.png 2017-01-23_13-01-34.png

4. Выбираю пример. file-examples-amebaOta-otanonblock
При компиляции выдаёт ошибку. Нет библиотеки MyAP.h и двойное определение WIFI.
Вайфай я удалил из папки arduino\libraries\WiFi.
MyAP.h ? нет такой.

Что делать где взять ?

Чем отличаются методы прошивки Jlink (RAM, IMG, OTA) network OTA. ?

2017-01-23_13-03-20.png
 

pvvx

Активный участник сообщества
1. Установил arduino ide
согласно руководству в архиве rtlduino readme.md
2. Установил амёбу через репозиторий.
3. Скопировал папку в hardware\development\RT....
4. В меню появилась плата RTL00 и методы прошивки.
Посмотреть вложение 3185 Посмотреть вложение 3186

4. Выбираю пример. file-examples-amebaOta-otanonblock
При компиляции выдаёт ошибку. Нет библиотеки MyAP.h и двойное определение WIFI.
Вайфай я удалил из папки arduino\libraries\WiFi.
MyAP.h ? нет такой.

Что делать где взять ?

Чем отличаются методы прошивки Jlink (RAM, IMG, OTA) network OTA. ?

Посмотреть вложение 3187
А вы читать умеете? Похоже - нет. Будем учить:
Откройте тему Arduino для RTL8710.
Там в первом сообщении есть ссылки с описанием как и что делать.
MyAP.h сделано для того, чтобы:
1) Не переписывать пароль и имя в каждом скетче.
2) При копировании в форум имя и пароль вашей AP не копируются
Если вас это не устраивает, то закоментируйте #include "myAP.h".
 
Последнее редактирование:

findeler

New member
4. Теоретически они пытаются расширить линейку на RTL8710. Но это пока плохо у них выходит - всех портов I/O и прочего не могут задействовать из-за своей платы.
Понятно, значит другие уже подсуетились. Кстати сделано на вашей rtlduino. (по последней ссылке просмотрите сайт)
RTL8710 mini programming board
RTL8710 easy programming by Arduino IDE
 

pvvx

Активный участник сообщества
Понятно, значит другие уже подсуетились. Кстати сделано на вашей rtlduino. (по последней ссылке просмотрите сайт)
RTL8710 mini programming board
RTL8710 easy programming by Arduino IDE
И что, имя RtlDuino у меня было использовано до выхода в других вариантах. Была такая надпись на каком-то модуле на таобао...
Или что вас беспокоит?
Меня не беспокоит применение моего кода или того, что даю. Есть только одно пожелание - при использовании и распространении стирать все упоминания обо мне. Желательно вписывать свой (c).
Такой лицензии я не нашел. GPL, MIT и прочие не годятся под данные условия (пожелания).

CMIS-DAP меня не устраивает. Он тормоз и к нему нет такого разнообразия ПО, как под Jlink.
Код адаптера CMIS-DAP для STM32F0xx и STM32F103 (т.е. для всех типов клонов STLink/Jlink) есть на git со всеми их схемами. Но Ameba Arduino работает исключительно только со своей реализацией данного Jtag.

RtlDuino содержит около 20% измененного кода в бинарных библиотеках от оригинала Ameba. Так-же сняты "коммерческие" ограничения на использование встроенных в чип RTL8710 устройств, т.к. сам кристалл SoC не отличается от RTL8195 или RTL8711Ax, а просто меньше выводов у корпуса чипа и нет USB или встроенного SDRAM чипа. RtlDuino - это другая сборка, а исходники (замененные части для правильной поддержки RTL8710/11) приведены на RTL00MP3/RTL00_SDKV35a at master · pvvx/RTL00MP3 · GitHub
Соответственно у Ameba Arduino ничего не работает и не развивается на RTL871x серию, в отличии от RtlDuino. Им ещё год писать такими же темпами, как они делали до достижения текущего уровня RtlDuino. RtlDuino, выложенное на git, не поддерживает полностью RTL8711AM - не стал доделывать, т.к. всё равно надо ждать когда появятся в доступе эти модули на али. Ameba Arduino вообще не поддерживает RTL8711AM.

У чувака ужасная скорость инет (или ping) или он пытается запустить канал web-радио не с неподеррживаемым битрейтом :), возможно и вписал код поддержки индикатора с не тем приоритетом - рвет процесс проигрывания:
 
Последнее редактирование:

pvvx

Активный участник сообщества
Вайфай я удалил из папки arduino\libraries\WiFi.
А зачем? Когда Ardunio берет либу, то она смотрит для какой это платы. Это описано в library.properties, приложенного к каждой либе.
Она вас и уведомляет, что есть несколько разных либ с одним именем, но для разных плат :) Используется только та либа, которая прописана для данной платы. Так что вы зря полезли в то, с чем не знакомы и начали там устраивать бардак :)
 

findeler

New member
Так. Начало шиться. что и куда пока непонятно. Но шьётся.

Не знаю почему, но конечная строка в консоли ардуины "Успешно: Процесс "JLinkGDBServer.exe", с идентификатором 1527608, был завершен." Выводится в кодировке IBM-866 Собственно вот весь лог.

Код:
ВНИМАНИЕ: Категория '' в библиотеке SoftwareSerial не является действительной. Установка на 'Uncategorized'
Скетч использует 32000 байт (8%) памяти устройства. Всего доступно 372736 байт.
‘Є®ЇЁа®ў ® д ©«®ў:         1.
GNU gdb (GNU Tools for ARM Embedded Processors) 7.6.0.20140228-cvs
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=i686-w64-mingw32 --target=arm-none-eabi".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Jlink Init:
Notification of completion for asynchronous execution commands is off.
?? ()
Selecting device: Cortex-M3

Target endianess set to "little endian"

Resetting target

Target interface speed set to 4000 kHz

Writing 0x1FC00002 @ address 0x40000304

System Init:
Writing 0x00000400 @ address 0x40000250

Writing 0x00000000 @ address 0x40000340

Writing 0x0000DCC4 @ address 0x40000230

Writing 0x00011117 @ address 0x40000210

Writing 0x00011157 @ address 0x40000210

Writing 0x00110011 @ address 0x400002C0

Writing 0xFFFFFFFF @ address 0x40000320

Writing 0x00000011 @ address 0x40000014

SetCLK 166.66MHz:
Writing 0x00000000 @ address 0x40006008

Init SPI:
Writing 0x00000000 @ address 0x4000602C

Writing 0x00000001 @ address 0x40006010

Writing 0x00000002 @ address 0x40006014

Writing 0x00000000 @ address 0x40006018

Writing 0x00000000 @ address 0x4000601C

Writing 0x00000000 @ address 0x4000604C

Get ImagesSize:
Restoring binary file ota.bin into memory (0x10000300 to 0x10000304)
Image2Size = 25984
Restoring binary file ota.bin into memory (0x10000300 to 0x10000304)
ImageSdramSize = 0
initializing RTL8710 flasher
Resetting target

Restoring binary file rtl8710_flasher.bin into memory (0x10001000 to 0x100013c8)
Flash ID = 0x001420c2 : MX25L8006E (1024 kbytes)
RTL8710 flasher initialized
write offset 0x00080000
Restoring binary file ota.bin into memory (0x10008020 to 0x1000e5c4)
erase sector 128 at 0x00080000
erase sector 129 at 0x00081000
erase sector 130 at 0x00082000
erase sector 131 at 0x00083000
erase sector 132 at 0x00084000
erase sector 133 at 0x00085000
erase sector 134 at 0x00086000
write 26020 bytes at 0x00080000
verify offset 0x00080000 len 26020
Restoring binary file ota.bin into memory (0x10008020 to 0x10009020)
Resetting target

SetBoot = Flash:
Writing 0x00211157 @ address 0x40000210

“бЇҐи®: Џа®жҐбб "JLinkGDBServer.exe", б Ё¤ҐвЁдЁЄ в®а®¬ 1527608, Ўл« § ўҐаиҐ.


Теперь возник вопрос по памяти.

Воообще по памяти я нашёл только два упоминания. В даташите RTL8711AF_Datasheet_v01r04.pdf
И в UM0034 Realtek Ameba-1 memory layout.pdf

upload_2017-1-24_9-43-6.png

Image 1 он же bootloader - это инициализация железок (порты, таймеры, частота, wifi....) .

system data -адрес перехода на upgrade image2 (то есть в контролере есть/могут быть одновременно две прошивки и от адреса в ситем дата зависит какая будет исполняться)

calibration data - калибровки модуля, мак адрес и прочее. По сути для китайского модуля они чаще всего одинаковы и мак нужно править ?

default image - Не совсем понятно что там.

upgrade image - Не совсем понятно что там но как понял это и есть OTA , выбор какая грузится происходит в system data.

userdata - Не совсем понятно что там.

Собственно вопросы.
Что за данные находится в image 2, image 2 upgrade, image 3 (что это ) и в user data ?

Что за области памяти шьются в режими RaM IMG OTA ?
Я так думаю.
1. RAM - Вся память (то есть при компиляции собирается всё и загрузчик и.т..д и это всё заливается. фуллфлеш в полном объёме)
2. IMG - шьётся только IMG 2 (при компиляции тоже собирается всё, но шьётся только IMG2)
3. OTA - шьётся только IMG 2 upgrade (при компиляции тоже собирается всё, но шьётся только IMG2+)

Не знал, восстановил.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Вы книжку писать собрались? :)
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 или пользовательские
---------
Старые SDK ota писали последовательно за первыми блоками. Но в самой прошивке у них идет сохранение параметров по адресу 0x7f000, что попадает в OTA прошивку у них. (Так записывают модули продавцы-китайцы - и вашу тоже :p )
В новой версии, для совместимости с Ameba Arduino OTA пишется с 0x80000
Всё описать я вам не смогу - лень и вы не платите обменом информации, а жувать это мне не интересно. Там ещё много подробностей - в PDF и 10% нет. PDF-ы относятся к старой и устаревшей версии SDK, ныне нигде не применяющейся (2015 г).
Одному тут уже помогли с инфой - дык теперь книжки у него платные... и с ошибками :)
 
Последнее редактирование:

findeler

New member
Вы книжку писать собрались?
Нет, это будут датчики и исполнительные механизмы для системы управления котельной. Других дешёвых чипов с Вайфаем просто нет. Поэтому работать придётся с ними. Вот и разбираюсь.

Всё описать я вам не смогу - лень и вы не платите обменом информации, а жувать это мне не интересно
Чем делиться то пока ?? Если я только только смог непонятно что и куда зашить.

Там ещё много подробностей - в PDF и 10% нет. PDF-ы относятся к старой и устаревшей версии SDK, ныне нигде не применяющейся (2015 г).
А где можно взять более полную ?

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 или пользовательские
Адреса понятны. Структура памяти нет.
Кто как компилит бинарники, какие адреса шьют разные режимы прошивки и зачем это нужно ?

P.S. Документации катастрофически не хватает как на саму плату, так и на програмаж.
 
Сверху Снизу