• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Результаты поиска

  1. pvvx

    BLE SoC PHY6202

    Остается задача ужать код OTA загрузчика до минимума. Т.к. не требуется переписывания загруженного OTA в рабочую область, то объем “свободной” Flash в таком случае будет больше. Но появляется проблема с внешними BT адаптерами – работа с разными характеристиками устройства под одним MAC. Надо...
  2. pvvx

    BLE SoC PHY6202

    Набил предварительный код OTA, но ещё ни разу не собиравшийся и не состыкованный с общим. Аналогично к нему уже есть куски и в HTML/js, которые надо немного адаптировать. Пока нет времени на PHY62x2. Позволяет грузить в любой адрес и кусками. Подпись на любой кусок ставит после успеха. Код...
  3. pvvx

    BLE SoC PHY6202

    Исправил js в HTML. Смарт по другому отрабатывает js в Web Bluetooth API и кто-то не успевает...
  4. pvvx

    BLE SoC PHY6202

    memset(x, 0, sizeof(x)) оно само вставит, если x[2] = {}; Это в случае примера, а структура может быть получена от куда угодно.
  5. pvvx

    BLE SoC PHY6202

    Массивы значит? void test(void) { struct { uint32_t a; uint8_t b; }x[2]; x[0].a = 1; x[0].b = 2; x[1].a = 1; x[1].b = 2; if (!memcmp(&x[0], &x[1], sizeof(x[0]))) return; LOG("BAG/BAD GCC! %u,%u != %u,%u\n", x[0].a, x[0].b, x[1].a, x[1].b)...
  6. pvvx

    BLE SoC PHY6202

    void test(void) { struct { uint32_t a; uint8_t b; }x1; struct { uint32_t a; uint8_t b; }x2; x1.a = 1; x1.b = 2; x2.a = 1; x2.b = 2; if (!memcmp(&x1, &x2, sizeof(x1))) return; LOG("BAG/BAD GCC! %u,%u != %u,%u\n"...
  7. pvvx

    BLE SoC PHY6202

    Какая тут логика? struct { uint8_t a; } Размер равен 1. struct { uint16_t a; uint8_t b; } Размер равен 4. struct { uint32_t a; uint8_t b; } Размер равен 8.
  8. pvvx

    BLE SoC PHY6202

    В общем приехали с gcc из за структурных программистов (коих точно вытеснит ИИ, т.к. всё их дело - это раздувание размера кода для понимания человеком, что нафиг не нужно машине) - Придется вручную считать размер структур и писать #define size_этой_стркутуры 5 .
  9. pvvx

    BLE SoC PHY6202

    И при чем тут массивы? При составлении массива берутся выровненные адреса для каждого элемента. Это никак не влияет на размер элемента. Аналогично со структурами в структурах. Всегда начинаются с выровненного адреса, но размер может быть нечетным. Никому это не мешает. И операция a = b со...
  10. pvvx

    BLE SoC PHY6202

    Я не Ардуинщик и не собираюсь составлять из нечетных по размеру структур массивы. Гнать их всех погаными тряпками.. :) Правда это уже началось - прогнозируют что ИИ в ближайшие 5 лет вычистит из "программистов" 99% на улицу собирать бутылки... О смерти любимых толпе языков программирования уже...
  11. pvvx

    BLE SoC PHY6202

    Так делать не нужно: struct { uint8_t sz; uint32_t val; } aaa; нужно так: struct { uint32_t val; uint8_t sz; } aaa; И чтобы sizeof(aaa) был = 5. Остальной маразм в gcc как нибудь обойду. Где тут не выровнено?
  12. pvvx

    BLE SoC PHY6202

    -fpack-struct - text на 12 килобайт больше 🤪 Короче это опять "оптимизаторы" в gcc поигрались...
  13. pvvx

    BLE SoC PHY6202

    Да пофиг на архитектуру - создавайте сами структуры только с выровненными адресами переменных. Это упрощает работу с ними в других системах. Но вот лишние байты в конце, если структура {uint32 x; uint8 b} тут всё нарушают. И вместо 5 байт выходит 8-мь.
  14. pvvx

    BLE SoC PHY6202

    ./SDK/components/ble/controller/ll_def.h:1280:1: warning: alignment 1 of 'struct <anonymous>' is less than 4 [-Wpacked-not-aligned] на -fpack-struct
  15. pvvx

    BLE SoC PHY6202

    Чем отличается #pragma pack(1) от __attribute__((packed)) ? При __attribute__((packed)) он uint32_t будет загружать побайтно, не смотря на выровненность адреса. Почему то для других CPU этого не происходит - определяет что адрес выровнен...
  16. pvvx

    BLE SoC PHY6202

    Это необходимо чинить обязательно. Иначе возможны глупости при сравнении структур. В дополнительных байтах может оказаться всякий хлам.
  17. pvvx

    BLE SoC PHY6202

    И нафига в gcc sizeoff структуры с одним байтом = 4 байта? Как его угомонить? А то копирует тоже на 3 байта больше... Если включить упакованную структуру - размер кода сильно увеличивается - он не может нормально читать слова по выровненным адресам? Или это опять "оптимизаторы" в gcc постарались...
  18. pvvx

    BLE SoC PHY6202

    Ещё надо вписать в прошивку: 1 Запись истории замеров в Flash 2 OTA Для OTA надо менять *.ld. Выбрал такой вариант - будет базовая прошивка с интерфейсом OTA. После загрузки новой прошивки по OTA по адресам выше, оно и будет запускаться, но базовая останется. Причина - нету изменения адреса...
  19. pvvx

    BLE SoC PHY6202

    У меня другая проблемс - ATC_MiThermometer/GraphAtc1.html на смарте не показывает температуру. На компе всё ok. В Chrome на смарт нет отладки по F12 и непонятно... похоже не может включить Notify для температуры? И в репо добавлен web/html - пока не дописан, но что-то уже работает... + Теперь...
  20. pvvx

    Китайские поделки на TLSR951x

    https://casambi.ru/cbm-002 ? CBM002 v2 TLSR9515 https://fccid.io/2AYX6-JAFA
Сверху Снизу