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

BLE SoC PHY6202

cool2000

Member
Там вроде нет boot OTA. Там example\OTA\slboot
Примеры OTA в SDK есть. Зачем мучать TestTHB2.hex или оригинал для разгадывания PhyOTA?
Так вроде PhyOTA => slboot?
Лучше разобраться с вариантом SDK имеющим все исходники, без всяких либ и собрать его на gcc.
Именно❗
 

cool2000

Member
PhyOTA не подходит. Из slboot этот функционал выпилили. При старте slboot ищет во flash по смещению 0x55000 маркер `OTAF` проверяет целостность данных и дальше выполняет обновление.
 
Приветствую участников данной темы, у меня вопрос.
Имею термометр как на страничке https://github.com/pvvx/THB2/issues/1?ysclid=lqwtu2nn8f60423299
Делаю согласно инструкции сохранение родной прошивки, но получаю следующее:
1704230061675.png
Надо понимать не получилось.
Сделал прошивку через утилиту PhyPlusKit как написано в той-же инструкции.
Судя по логам все получилось.
1704230362263.png
Но, датчик не видится в эфире.
Что я мог сделать не так?
 

pvvx

Активный участник сообщества
Ждите, когда мне придет следующая пачка заказов с али, тогда и посмотрю, что там с BTH01.
1704232908452.png
1704232914328.png
1704232900547.png
 

cool2000

Member
Для BTH01 мне неизвестно, какие выводы чипа куда идут.
Судя по фото, i2c линии сенсора явно заведены на другие выводы phy6222. P18, P20 у BTH01 это Rx2, Tx2.
@АлексейМ прозванивайте с какими выводами phy6222 соединены пятачки CHT8305_SCL и CHT8305_SDA.
 

cool2000

Member
В phy6222_SDK_3.1.3 практически ничего не работает.
Есть ещё довольно актуальное, тоже phy62xx SDK 3.1.3 на gitee. Я пробовал собирать slb через gcc и даже собирается, но и там без правок не обойтись. Как минимум ld скрипт нужно править, вот типа такого.
Код:
MEMORY
{
  jumptbl (rwx) : ORIGIN = 0x1fff0000, LENGTH = 0x00400
  gcfgtbl (rw)  : ORIGIN = 0x1fff0400, LENGTH = 0x00400
  flash (rx)    : ORIGIN = 0x11020000, LENGTH = 0x20000
  sram (rwx)    : ORIGIN = 0x1fff1838, LENGTH = 0x0E7C8
}

OUTPUT_ARCH(arm)
EXTERN(_vectors)
ENTRY(__start)

SECTIONS
{
    .jumptbl : {
       *(jump_table_mem_area)
    } > jumptbl  

    .gcfgtbl : {
       *(global_config_area)
    } > gcfgtbl

    .textentry : {
        _stext = ABSOLUTE(.);
        *(*.isr_vector)
        *phy6222_start.o(.text)
    } > sram

    .init_section : {
        _sinit = ABSOLUTE(.);
        *(.init_array .init_array.*)
        _einit = ABSOLUTE(.);
    } > flash

    .ARM.extab : {
        *(.ARM.extab*)
    } > flash

    __exidx_start = ABSOLUTE(.);
    .ARM.exidx : {
        *(.ARM.exidx*)
    } > flash
    __exidx_end = ABSOLUTE(.);


    ._sjtblsstore : {
       _sjtblss = ABSOLUTE(.);
    } > flash  

   ._eronlystore : {
       _eronly = ABSOLUTE(.);
   } > flash  

    .data : {
        _sdata = ABSOLUTE(.);
        _stextram = ABSOLUTE(.);
        *.o(_section_standby_code_)
        *.o(_section_sram_code_)
        *flash.o(.text .text.*)

        *patch.o(.text .text.*)

        *clock.o(.text.hal_xtal16m_cap_Set)
        *rf_phy_driver(.text .text.*)
        *libphy6222_host.a:l2cap_util.o(.text.L2CAP_Fragment_SendDataPkt)
        *libphy6222_host.a:l2cap_util.o(.text.l2capSegmentBuffToLinkLayer)
        *libphy6222_host.a:l2cap_util.o(.text.l2capPocessFragmentTxData)
       
        _etextram = ABSOLUTE(.);


        *(.data .data.*)
        *(.gnu.linkonce.d.*)
        CONSTRUCTORS
        . = ALIGN(4);
        _edata = ABSOLUTE(.);
    } > sram AT > flash

    .bss : {
        _sbss = ABSOLUTE(.);
        *(.bss .bss.*)
        *(.gnu.linkonce.b.*)
        *(COMMON)
        . = ALIGN(4);
        __heap_start__ = .;
        end = __heap_start__;
        _end = end;
        __end = end;
       
        _ebss = ABSOLUTE(.);
    } > sram

    .int_stack : {
        . = ALIGN(4);
        *(int_stack)
        . = ALIGN(4);
        _stack_top = ABSOLUTE(.);
    } > sram

   .common_text : {
       *(.text .text.*)
       *(.rodata .rodata.*)
       *(.fixup)
        *(.gnu.warning)
        *(.rodata .rodata.*)
        *(.gnu.linkonce.t.*)
        *(.glue_7)
        *(.glue_7t)
        *(.got)
        *(.gcc_except_table)
        *(.gnu.linkonce.r.*)
        _etext = ABSOLUTE(.);
   } > flash  
 
    /* Stabs debugging sections. */
    .stab 0 : { *(.stab) }
    .stabstr 0 : { *(.stabstr) }
    .stab.excl 0 : { *(.stab.excl) }
    .stab.exclstr 0 : { *(.stab.exclstr) }
    .stab.index 0 : { *(.stab.index) }
    .stab.indexstr 0 : { *(.stab.indexstr) }
    .comment 0 : { *(.comment) }
    .debug_abbrev 0 : { *(.debug_abbrev) }
    .debug_info 0 : { *(.debug_info) }
    .debug_line 0 : { *(.debug_line) }
    .debug_pubnames 0 : { *(.debug_pubnames) }
    .debug_aranges 0 : { *(.debug_aranges) }
}
Ещё секцию init, наверное, нужно во flash перенести.
 

pvvx

Активный участник сообщества
А толку? Всё равно получается нерабочий код.
 

pvvx

Активный участник сообщества
Там такие, на gitee, примеры:
```
\SDK\wmt10x_phy6222\example\ble_peripheral\simpleBlePeripheral\gcc>python3 C:\Python310\Scripts\hexinfo.py .\output\sbp.ihex
- file: '.\output\sbp.ihex'
entry: 0x11020009
data:
- { first: 0x11020000, last: 0x11031B06, length: 0x00011B07 }
- { first: 0x11031B08, last: 0x11033217, length: 0x00001710 }
```
 

pvvx

Активный участник сообщества
@cool2000 - Ну вот собрал из вашего gitee, SDK\wmt10x_phy6222\example\ble_peripheral\simpleBlePeripheral\gcc.
Там кто-то наковырял примеры и не справил. Но добавил недостающие файлы...
Скрипт ld исправил, таблицы по сегментам перенес.
Код:
SDK\wmt10x_phy6222\example\ble_peripheral\simpleBlePeripheral\gcc>python3 C:\Python310\Scripts\hexinfo.py .\output\sbp.ihex
- file: '.\output\sbp.ihex'
  entry: 0x11020001
  data:
  - { first: 0x11020000, last: 0x1103150B, length: 0x0001150C }
  - { first: 0x11031510, last: 0x11032C17, length: 0x00001708 }
  - { first: 0x1FFF1838, last: 0x1FFF6E23, length: 0x000055EC }
Итог всё равно печален:
1704299423782.png
Зашился и не запускается (после 5-ой секунды идет команда сброса). И так все варианты с GCC, кроме одного, где нет использования BLE - накрутил какой-пример, кое как работает, рестарт с retention RAM не работает. Но прекрасно работает в Keil.
Уже чего только не делал: код СИ переписывал на 50%, сегменты и таблицы для ROM переставлял и так и сяк - не хочет оно работать с GCC.
 
Адаптер USB-COM какой?
rdwr_phy6222.py имеет опции установки скоростей UART. Не все USB-COM поддерживают 1MBit.
Надо было выбрать другую baud rate.
Абсолютно правы, снизил скорость, все считал. Но увы, уже поздно, буду ждать когда появиться рабочая прошивка....
Но есть Model: THB2 буду теперь с ним экспериментировать.
Соответственно вопрос, как он данные шлет в эфир. Я хочу через Phyton скрипт забирать и далее использовать.
 
Сверху Снизу