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

Arduino для RTL8710.

Тема в разделе "Realtek - описание, документация и обсуждение", создана пользователем pvvx, 5 ноя 2016.

  1. nicelight

    nicelight Читатель

    Сообщения:
    88
    Симпатии:
    12
    Ваш кривенький Duino это уже много и я надеюсь, мы с Вашей периодической помощью его допилим до приемлемого использования. Знаю что Вам это не интересно, но ведь дело серьезное делаете. Мало кому дано так виртуозить исходниками))

    С удовольствием бы шил их из под нативной SDK но собрать весь необходимый материал чтобы разобраться в том как это делать, съедает много времени, которое и так не просто выделять.
     
  2. nicelight

    nicelight Читатель

    Сообщения:
    88
    Симпатии:
    12
    Спасибо, думал, не и дождусь такой ценной выжимки информации! )
    Направьте на документ или ссылку где более менее подробно можно прочитать последовательность действий для прошивки RTL по Jtag/SWD. And how it works. English is ok. Stlink скоро приедет, вдохну в него Jlink. Хотелось бы уже переходить на более серьезный уровень взаимодействия с железом.
     
  3. pvvx

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

    Сообщения:
    8.672
    Симпатии:
    1.282
    Там надо переписать-дописать класс в OTA.cpp. Адрес записи там берется из переменной ota_addr. Т.е. приходящую прошивку можно писать куда угодно, если дописать изменение этого ota_addr в процедуре int OTAClass::beginLocal(uint16_t port, bool reboot_when_success) ...
     
  4. pvvx

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

    Сообщения:
    8.672
    Симпатии:
    1.282
    Mbed - это API и всё наоборот - там обращение к аппаратуре идет через высокий уровень, нашлепку над HAL и завязкой с RTOS - мютексы и прочее, для работы с устройствами ...
    Это значит, что сам проект примитивен. Если что-то более серьезное, то время на разборку с SDK составляет малую часть... Arduino, в основном, для простой одиночной задачи. Но если вдруг требуется что-то большее, например малопотребляющий датчик IoT, то в Arduino это сложно или практически невозможно сделать...
     
    Последнее редактирование: 16 мар 2017
  5. Pilnikov

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

    Сообщения:
    300
    Симпатии:
    26
    #define IMAGE_2 0x0000B000
    #define DEFAULT_OTA_ADDRESS 0x80000

    OTAClass::OTAClass() {
    ota_addr = 0xFFFFFFFF;
    mdns_buf = NULL;
    mdns_service_id = NULL;
    txtRecord = NULL;
    }

    int OTAClass::setOtaAddress(uint32_t address) {

    set_system_data(0x0000, address);
    ota_addr = address;
    }

    int OTAClass::sync_ota_addr() {
    flash_t flash;
    uint32_t ota_addr_in_flash;

    flash_read_word(&flash, FLASH_SYSTEM_DATA_ADDR, &ota_addr_in_flash);
    if (ota_addr_in_flash == ~0x0) {
    // No OTA address configuired in flash
    OTA_PRINTF("use default OTA address\r\n");
    ota_addr = DEFAULT_OTA_ADDRESS;
    flash_write_word(&flash, FLASH_SYSTEM_DATA_ADDR, ota_addr);
    } else {
    ota_addr = ota_addr_in_flash;
    }
    }

    судя по этим выжимкам адрес задан в ota.h
    а классом int OTAClass::setOtaAddress(uint32_t address) можно задать другой???
    ota_addr_in_flash - эта откуда берется?
    Оффтоп:
    pvvx если я это поменяю у меня только скеч ота будет по другому работать?
     
    Последнее редактирование: 17 мар 2017
  6. pvvx

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

    Сообщения:
    8.672
    Симпатии:
    1.282
    RTL871x Flash Memory Map - первая позиция в секторе
    Да. OTA.cpp - это только для "скетчей" :)
    Там всё равно путаница с переписыванием "сигнатур" в заголовках и разному расчету "где находиться OTA". Тяжелый случай от Ameba. Имеющаяся там логика имеет ошибки и это не исправимо.
    В своем SDK уже долепил boot-loader. Он пока поддерживает оф. версии, но логика выбора "прошивки по старту" немного другая:
    1) Если нет назначенных пинов выбора загрузки, то пытается загрузить:
    Основную, "первую", прошивку. Если её нет, то смотрит указатель на OTA, но считает что он указывает на "резервную прошивку" и грузит её, если она там есть :)
    2) Если назначены пины выбора загрузки, то грузит прошивку от №1 до №4. Два назначенных пинов дают 2 бита, "1" + 2-х битное значение = номер прошивки.
    Если прошивки с таким номером нет, то смотрит указатель на OTA, но считает что он указывает на "резервную прошивку" (№0) и грузит её, если она там есть :)
    Сигнатуры, которые переписывает Ameba Arduino не смотрит, т.е. проверяет их наличие и валидность, но на отметку что это помеченная (зачем-то, для кого-то в Ameba, чтобы возникали непреодолимые варианты переключения пинами по их логике) не смотрит.
    Скорее всего он (новый boot-loader) скоро переедет в RtlDuino.

    Прошивки теперь подписываются именами, которые можно увидеть в логе загрузки.
    Ранее там вписывалась никчемная надпись "Customer Signature-modelxxx" (32 символа).
    Кроме надписи у каждого заголовка прошивки есть номер версии, подверсии и т.д. - с десяток параметров, которые прописываются всегда одним и тем-же... Пока не задействовано.
    Код (Text):
    1. =========================================================
    2.  
    3. ROM Version: 0.3
    4.  
    5. Build ToolChain Version: gcc version 4.8.3 (Realtek ASDK-4.8.3p1 Build 2003)
    6.  
    7. =========================================================
    8. Check boot type form eFuse
    9. SPI Initial
    10. Image1 length: 0x201c, Image Addr: 0x10000bc8
    11. Image1 Validate OK, Going jump to Image1
    12. ===== Enter FLASH-Boot ====
    13. CPU CLK: 83333333 Hz, SOC FUNC EN: 0x11113
    14. Selected Image 1.
    15. Load Flash seg0: 0x0000b010 -> SRAM: 0x10006000, size: 297868
    16. Img Sign: RTKWin, Go @ 0x1000607d
    17. ===== Enter Image: MP3 Stereo ====
    18. WdgPeriod = 10000 ms
    19.  
    20. CLK CPU         83333333 Hz
    21. RAM heap        2217456 bytes
    22. TCM heap        64768 bytes
    23. ...
    ===== Enter SRAM-Boot 1 ==== - указывает, что грузимся с RAM, по выбору процедуры загрузки №1. (Их 4 варианта :) - всё описано где-то, про загрузку)...
    ===== Enter FLASH-Boot ==== - указывает, что грузимся с flash.
    Selected Image 1 - пинами выбрана прошивка №1.
    ===== Enter Image: MP3 Stereo ====

    Причина такого бардака - на модуле RTL8711AM в flash на 512 МБайт лезет где-то 2 тысячи вариантов прошивок, а как выбрать какую грузить - ? :)
     
    Последнее редактирование: 17 мар 2017
  7. Pilnikov

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

    Сообщения:
    300
    Симпатии:
    26
    Оффтоп:
    Идею хотите...бесплатно....В эти 2 тысячи+ вариантов зашейте все примеры из стандартного набора для дурины. А в заголовке (после 2 тысяч закомментированных строк с названиями и номерами) впишите селектор. Чтоб телепузик только указывал номер примера который ему нужен и все! Эврика!
     
    Последнее редактирование: 17 мар 2017
  8. Pilnikov

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

    Сообщения:
    300
    Симпатии:
    26
    Оффтоп:
    512М flash это уже "ботекс" какой-то, она, эта ваша 8711ам, еще и внешнюю рам по спи поддерживает вроде
    Нет так становится не интересно. Прям 486дх. pvvx, пора винду портИть
     
  9. pvvx

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

    Сообщения:
    8.672
    Симпатии:
    1.282
    Win3.1 пойдет.
    Тут как-бы и приходим, что "прошивками" такие вещи не строятся. Нужна некая ОС с загрузкой исполняемых файлов. В Arduino поддержки такого нет.
    Всё, что тут, на форуме, долго-долго пытаются изобразить на Arduino, давно собирается иконками на CuberWRT и модуле, дешевле большинства DevBoard к Arduino...
     
    Последнее редактирование: 17 мар 2017
  10. Pilnikov

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

    Сообщения:
    300
    Симпатии:
    26
    c:/users/alex/appdata/local/arduino15/packages/realtek/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: Z:\Temp\arduino_build_220684/application.axf section `.bf_data' will not fit in region `BD_RAM'

    c:/users/alex/appdata/local/arduino15/packages/realtek/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: region RAM overflowed with stack

    c:/users/alex/appdata/local/arduino15/packages/realtek/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: region `BD_RAM' overflowed by 8300 bytes

    почему то мне не хватило рам под буфер.
    кстати вышел sdk 2.0.1
     
  11. pvvx

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

    Сообщения:
    8.672
    Симпатии:
    1.282
    Возьмите модуль на сотню руб дороже.
    Это хорошо.
    Но это всего условные единицы у Ameba Arduino. Могут написать и "Вышла версия 100500!".
    Снимок1332.gif
    Всё равно полной поддержки модулей RTL871xAx у них нет. Есть всего под RTL8195AM что-то на их демо-плате с их программатором на OpenOCD и тоже с полностью закрытым кодом.
    На RTL00 модуле у них работает всего 9 пинов. Arduino/variant.cpp at master · Ameba8195/Arduino · GitHub
    Номер 2.0.1 у них вышел в связи с выходом поправки номера версии: Title: SDK 2.0.1 release · Ameba8195/Arduino@86bac8f · GitHub
    Им наверно надо отчитываться за бездарно потраченные, вот и меняют номера каждый месяц :)
    За срок, c нового года, они там изменили пару строчек - исправили мелкие недочеты в примерах скетчей, наплодили надписей в либах Arduino - "незя на RTL8710!" и при этом сделали много ошибок, которые и исправляли все эти три месяца. Общее шевеление за срок более года - где-то на уровне изменения 30 строк и разделения конфигурации Arduino на два типа плат.
    Движение ныне можно ожидать только в ARM MBED - там начался процесс встраивания RTL-ок в него.
    Ameba Arduino не поддерживает совсем никак RTL8711AM, а уже вышла новая серия RTL871xBx. Скоро уже везде в продаже... Запросы от продавцов на поддержку серии 'B' уже получил. Но не нанимался :)
    Говорят как корабль назовешь, так и поплывет.... Амеба... :)
    А в MBED всё хорошо - "We can't accept proprietary licenses." - там счас у исходников SDK усиленно стирают и переписывают заголовки всех исходников на лицензию APACHE2.0 :) Поглядим, на сколько процентов справятся :)
    Не знаю, зачем простым смертным регистры WiFi (phy) части, но их вписали первыми -> mbed-os/targets/TARGET_Realtek/TARGET_AMEBA/sdk/common/drivers/wlan/realtek at 7689cf5c290bbe11f936abce287d204575b904dc · Archcady/mbed-os · GitHub
     
    Последнее редактирование: 20 мар 2017
  12. Pilnikov

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

    Сообщения:
    300
    Симпатии:
    26
    exit status -1073741819
    Ошибка компиляции для платы RTL00 (RTL8710).

    exit status -1073741819
    Ошибка компиляции для платы F11AMIM13 (RTL8711AM).

    Что за ошибка такая? Главное не показывает откуда, и кто вызвал.
    При этом в амебе под 8710 и 8195 нормально компилируется
     
  13. pvvx

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

    Сообщения:
    8.672
    Симпатии:
    1.282
    А чё это такое - exit status -1073741819? Как вы это выдоили?
     
  14. Pilnikov

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

    Сообщения:
    300
    Симпатии:
    26
    это не я, это компилятор.
    error.JPG
    Это с любыми скечами. Так стало после обновления амебы
     
    Последнее редактирование: 21 мар 2017
    dev_n нравится это.
  15. pvvx

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

    Сообщения:
    8.672
    Симпатии:
    1.282
    А кто вас заставлял обновляться? :)
    Ameba вставили ещё ограничений для RTL8710... Теперь у них ешё незя SSL на RTL8710AF
    Такими обновлениями у Ameba скоро ничего незя будет на RTL8710AF. Только помигать светодиодом на одном пине.
    Получите и распишитесь у Ameba:
    rom_ssl_ram_map RTL8710 do not support SSL
    analogReadResolution RTL8710 do not support ADC
    analogRead RTL8710 do not support ADC

    Это такое новое обновление у них. Включить его в rtlDuino?
     
    Последнее редактирование: 21 мар 2017
  16. Pilnikov

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

    Сообщения:
    300
    Симпатии:
    26
    так у 8710 нету вроде ADC и без ssl можно прожить
     
  17. pvvx

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

    Сообщения:
    8.672
    Симпатии:
    1.282
    Прожить можно без RTL8710AF. Всяко.
     
  18. Pilnikov

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

    Сообщения:
    300
    Симпатии:
    26
    Скучно совсем то без нее
     
  19. Makc1806

    Makc1806 Новичок

    Сообщения:
    13
    Симпатии:
    1
  20. Pilnikov

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

    Сообщения:
    300
    Симпатии:
    26
    RAK473 модуль UART WiFi | Wi Fi IoT модуль | серийный wifi модуль | безопасности Предприятия | 450 м купить на AliExpress
    "голый" модуль без девборды 457,61 руб. с доставкой всяко лучше, чем RTl8711AF
     
    Makc1806 нравится это.

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