Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

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

Тема в разделе "Realtek - SDK, прошивки и утилиты", создана пользователем findeler, 18 янв 2017.

  1. findeler

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

    Сообщения:
    94
    Симпатии:
    47
    Итак.

    RTL flasher
    1. Сначала стираю флеш.
    2. Прошиваю прошивкой https://esp8266.ru/forum/attachments/fullflash-zip.3149/ через закладку Auto все галки.
    3. Получаю отклик на AT команды, и с системного Уарта всё идёт.
    4. но
     

    Вложения:

  2. pvvx

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

    Сообщения:
    9.371
    Симпатии:
    1.320
    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
    Так что хватит придуряться - делайте уж что дельное, а не жуйте ненужную никому фигню...
     
    Последнее редактирование: 21 янв 2017
    KomX нравится это.
  3. findeler

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

    Сообщения:
    94
    Симпатии:
    47
    Ок понятно.

    Ок понятно.

    Действительно пока хватит
    @pvvx
    Последние вопросы:

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

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

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

    Сообщения:
    9.371
    Симпатии:
    1.320
    Вроде криво. У меня запустилась, т.к. видимо выскочило в 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 у вас в нем есть и он не битый - модуль с ним работет.
     
    Последнее редактирование: 22 янв 2017
  5. findeler

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

    Сообщения:
    94
    Симпатии:
    47
    До меня никто, я только слил и залил его обратно. Все действия описаны выше. К сожалению я не заказал 2х одинаковых evolution board. что бы сейчас проверить. Ну да ладно. Буду пробовать дальше. обычных модулей у меня много.
     
  6. pvvx

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

    Сообщения:
    9.371
    Симпатии:
    1.320
    У вашего и моего первого модуля из партии купленного на али и вашего одинаковые MAC? В моем 00 f8 87 11 00 12 (прошивка Прошивка с которой пришел модуль RTL00 V1.0) В вашем дампе тоже самое. У одного продавца брали?
    Они что MAC всем один и тот-же прописывают? :)
    На модулях от RF-Link все MAC разные и пробиваются в базе производителей как RF-Link.
     
    Последнее редактирование: 22 янв 2017
  7. findeler

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

    Сообщения:
    94
    Симпатии:
    47
    Я что то не понимаю.

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

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

    Сообщения:
    9.371
    Симпатии:
    1.320
  9. findeler

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

    Сообщения:
    94
    Симпатии:
    47
  10. pvvx

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

    Сообщения:
    9.371
    Симпатии:
    1.320
    Это офиц. Ameba Arduino. Она ещё не доделана для RTL871x чипов и работает только с двумя своими платами, на которых стоит другой Jtag. Realtek IoT/Arduino Solution
    [​IMG]
    А разговор идет о моей неофиц. RtlDuino для чипов RTL871x с Jtag по типу SEGGER.
    Снимок1208.gif
    Снимок1209.gif
     
    Последнее редактирование: 23 янв 2017
  11. findeler

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

    Сообщения:
    94
    Симпатии:
    47
    То есть я правильно понимаю ситуацию.

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

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

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

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

    ????????

    [cut]
     
    Последнее редактирование: 23 янв 2017
  12. pvvx

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

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

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

    Сообщения:
    94
    Симпатии:
    47
    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
     
  14. pvvx

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

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

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

    Сообщения:
    94
    Симпатии:
    47
    Понятно, значит другие уже подсуетились. Кстати сделано на вашей rtlduino. (по последней ссылке просмотрите сайт)

    RTL8710 mini programming board
    RTL8710 easy programming by Arduino IDE
     
  16. pvvx

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

    Сообщения:
    9.371
    Симпатии:
    1.320
    И что, имя 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-радио не с неподеррживаемым битрейтом :), возможно и вписал код поддержки индикатора с не тем приоритетом - рвет процесс проигрывания:
     
    Последнее редактирование: 23 янв 2017
  17. pvvx

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

    Сообщения:
    9.371
    Симпатии:
    1.320
    А зачем? Когда Ardunio берет либу, то она смотрит для какой это платы. Это описано в library.properties, приложенного к каждой либе.
    Она вас и уведомляет, что есть несколько разных либ с одним именем, но для разных плат :) Используется только та либа, которая прописана для данной платы. Так что вы зря полезли в то, с чем не знакомы и начали там устраивать бардак :)
     
  18. findeler

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

    Сообщения:
    94
    Симпатии:
    47
    Так. Начало шиться. что и куда пока непонятно. Но шьётся.

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

    Лог ардуины (раскрыть)
    Код (Text):
    1. ВНИМАНИЕ: Категория '' в библиотеке SoftwareSerial не является действительной. Установка на 'Uncategorized'
    2. Скетч использует 32000 байт (8%) памяти устройства. Всего доступно 372736 байт.
    3. ‘Є®ЇЁа®ў ® д ©«®ў:         1.
    4. GNU gdb (GNU Tools for ARM Embedded Processors) 7.6.0.20140228-cvs
    5. Copyright (C) 2013 Free Software Foundation, Inc.
    6. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    7. This is free software: you are free to change and redistribute it.
    8. There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
    9. and "show warranty" for details.
    10. This GDB was configured as "--host=i686-w64-mingw32 --target=arm-none-eabi".
    11. For bug reporting instructions, please see:
    12. <http://www.gnu.org/software/gdb/bugs/>.
    13. Jlink Init:
    14. Notification of completion for asynchronous execution commands is off.
    15. ?? ()
    16. Selecting device: Cortex-M3
    17.  
    18. Target endianess set to "little endian"
    19.  
    20. Resetting target
    21.  
    22. Target interface speed set to 4000 kHz
    23.  
    24. Writing 0x1FC00002 @ address 0x40000304
    25.  
    26. System Init:
    27. Writing 0x00000400 @ address 0x40000250
    28.  
    29. Writing 0x00000000 @ address 0x40000340
    30.  
    31. Writing 0x0000DCC4 @ address 0x40000230
    32.  
    33. Writing 0x00011117 @ address 0x40000210
    34.  
    35. Writing 0x00011157 @ address 0x40000210
    36.  
    37. Writing 0x00110011 @ address 0x400002C0
    38.  
    39. Writing 0xFFFFFFFF @ address 0x40000320
    40.  
    41. Writing 0x00000011 @ address 0x40000014
    42.  
    43. SetCLK 166.66MHz:
    44. Writing 0x00000000 @ address 0x40006008
    45.  
    46. Init SPI:
    47. Writing 0x00000000 @ address 0x4000602C
    48.  
    49. Writing 0x00000001 @ address 0x40006010
    50.  
    51. Writing 0x00000002 @ address 0x40006014
    52.  
    53. Writing 0x00000000 @ address 0x40006018
    54.  
    55. Writing 0x00000000 @ address 0x4000601C
    56.  
    57. Writing 0x00000000 @ address 0x4000604C
    58.  
    59. Get ImagesSize:
    60. Restoring binary file ota.bin into memory (0x10000300 to 0x10000304)
    61. Image2Size = 25984
    62. Restoring binary file ota.bin into memory (0x10000300 to 0x10000304)
    63. ImageSdramSize = 0
    64. initializing RTL8710 flasher
    65. Resetting target
    66.  
    67. Restoring binary file rtl8710_flasher.bin into memory (0x10001000 to 0x100013c8)
    68. Flash ID = 0x001420c2 : MX25L8006E (1024 kbytes)
    69. RTL8710 flasher initialized
    70. write offset 0x00080000
    71. Restoring binary file ota.bin into memory (0x10008020 to 0x1000e5c4)
    72. erase sector 128 at 0x00080000
    73. erase sector 129 at 0x00081000
    74. erase sector 130 at 0x00082000
    75. erase sector 131 at 0x00083000
    76. erase sector 132 at 0x00084000
    77. erase sector 133 at 0x00085000
    78. erase sector 134 at 0x00086000
    79. write 26020 bytes at 0x00080000
    80. verify offset 0x00080000 len 26020
    81. Restoring binary file ota.bin into memory (0x10008020 to 0x10009020)
    82. Resetting target
    83.  
    84. SetBoot = Flash:
    85. Writing 0x00211157 @ address 0x40000210
    86.  
    87. “бЇҐи®: Џа®жҐбб "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+)

    Не знал, восстановил.
     
    Последнее редактирование: 24 янв 2017
  19. pvvx

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

    Сообщения:
    9.371
    Симпатии:
    1.320
    Вы книжку писать собрались? :)
    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 г).
    Одному тут уже помогли с инфой - дык теперь книжки у него платные... и с ошибками :)
     
    Последнее редактирование: 24 янв 2017
    parovoZZ и ru-sh нравится это.
  20. findeler

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

    Сообщения:
    94
    Симпатии:
    47
    Нет, это будут датчики и исполнительные механизмы для системы управления котельной. Других дешёвых чипов с Вайфаем просто нет. Поэтому работать придётся с ними. Вот и разбираюсь.

    Чем делиться то пока ?? Если я только только смог непонятно что и куда зашить.

    А где можно взять более полную ?

    Адреса понятны. Структура памяти нет.
    Кто как компилит бинарники, какие адреса шьют разные режимы прошивки и зачем это нужно ?

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

Поделиться этой страницей