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

Интересное обсуждение лицензирования espressif sdk

CHERTS

Moderator
Команда форума
pvvx это было бы очень круто, сделать open sdk, я даже готов поддержать это начинание на материальной основе и могу попробовать привлечь donate коллег по цеху из-за границы.
Я думаю русскоязычное сообщество тоже поддержит Вас во всех отношениях.
 

pvvx

Активный участник сообщества
pvvx это было бы очень круто, сделать open sdk, я даже готов поддержать это начинание на материальной основе и могу попробовать привлечь donate коллег по цеху из-за границы.
Я думаю русскоязычное сообщество тоже поддержит Вас во всех отношениях.
Это может закрыть или нанести непоправимый ущерб Espressif.
А "сообщество" не в состоянии поддерживать проект. Не в финансовом смысле, а ...

Кода от самого Espressif в их библиотеках не так и много. И например никому из "сообщества" не требуется код от работы с аппаратурой WiFi чипа. Всё использование "сообществом" ограничено рамками Lua :) На большее "сообщество" не тянет. Следовательно Espressif достаточно открыть большую часть и оставить пару своих либов.
 
Последнее редактирование:

CHERTS

Moderator
Команда форума
Всё использование "сообществом" ограничено рамками Lua :) На большее "сообщество" не тянет. Следовательно Espressif достаточно открыть большую часть и оставить пару своих либов.
Думаю сообщество могло бы и дальше двинуться, если бы порог вхождения в разработку для ESP был проще, например как у Ардуино. Возможно проект Sming решит эту проблему, но у него еще тоже полно проблем, ноги которых растут и от кривости базовых библиотек.
 

pvvx

Активный участник сообщества
Возможно проект Sming решит эту проблему, но у него еще тоже полно проблем, ноги которых растут и от кривости базовых библиотек.
А в чем там кривость для библиотеки Sming в текущем SDK? Я этого не наблюдаю.
Что WDT срабатывает через task или что при записи flash вызывается system_get_time() ? :) Но это безразлично для той аудитории, для которой делается Sming. Тем более он сам в состоянии пересобрать базовые библиотеки...
Недоправленный и не проверенный реверс wdt.o из libmain.a:
Код:
/******************************************************************************
* FileName: wdt.c
* Description: Reverse SDK 1.0.0 (libmain.a)
* Author: PV` + ...
* ver1.0
*******************************************************************************/

#include "user_config.h"
#include "ets.h" // из
#include "ets_sys.h"
#include "os_type.h"
#include "osapi.h"
#include "user_interface.h"
#include "specreg.h"

#define _bss_start (*((uint8 *)0x3FFE9DF8)) // изменить на верную переменную

#define WDT_BASE    0x60000900
#define HWREG(BASE, OFF) (*((volatile uint32_t *)((BASE)+(OFF))))

/* WDT registers */
#define _WDT_CTRL    0
#define _WDT_REG1    4
#define _WDT_REG2    8
#define _WDT_FEED    0x14

#define WDT_CTRL    HWREG(WDT_BASE, _WDT_CTRL)
#define WDT_REG1    HWREG(WDT_BASE, _WDT_REG1)
#define WDT_REG2    HWREG(WDT_BASE, _WDT_REG2)
#define WDT_FEED    HWREG(WDT_BASE, _WDT_FEED)

#define _INTC_EDGE_EN    0x04
#define INTC_EDGE_EN    HWREG(PERIPHS_DPORT_BASEADDR, _INTC_EDGE_EN)

#define WDT_FEED_MAGIC    0x73


#define __stringify_1(x...)  #x
#define __stringify(x...)  __stringify_1(x)
#define RSR(sr) ({uint32_t r; asm volatile ("rsr %0,"__stringify(sr) : "=a"(r)); r;})


// in ROM-BIOS
void ets_task(ETSTask, uint32_t, struct ETSEventTag *, ETSPriority);
void ets_isr_unmask(uint32_t intr);
void ets_post(uint32_t, ETSSignal, ETSParam);
//ets_post(

// in SDK
// bool system_rtc_mem_read(uint8 src_addr, void *des_addr, uint16 load_size); // user_interface.h
// bool system_rtc_mem_write(uint8 des_addr, const void *src_addr, uint16 save_size); // user_interface.h

static ETSEventQueue wdt_eventq;

void wdt_feed(void)
{
    struct rst_info rst_info;

    rst_info.exccause = RSR(EXCCAUSE);
    rst_info.epc1 = RSR(EPC1);
    rst_info.epc2 = RSR(EPC2);
    rst_info.epc3 = RSR(EPC3);
    rst_info.excvaddr = RSR(EXCVADDR);
    rst_info.depc = RSR(DEPC);

    system_rtc_mem_read(0, &rst_info.flag, 4);

    if (rst_info.flag != EXP_RST_FLAG) {
        rst_info.flag = WDT_RST_FLAG;
        system_rtc_mem_write(0, &rst_info, sizeof(rst_info));
    }

    _bss_start = 1; // (*((uint8 *)0x3FFE9DF8)) = 1;
    ets_post(0x1e, 0, 0);
}

static void wdt_task(ETSEvent *e)
{
    struct rst_info rst_info;

    if(_bss_start == 1) { // (*((uint8 *)0x3FFE9DF8))
        ets_intr_lock();
        _bss_start = 0; // (*((uint8 *)0x3FFE9DF8)) = 0
        ets_intr_unlock();
    }

    system_rtc_mem_read(0, &rst_info, sizeof(rst_info));

    if (rst_info.flag != EXP_RST_FLAG) {
        rst_info.flag = DEFAULT_RST_FLAG;
        system_rtc_mem_write(0, &rst_info, sizeof(rst_info));
    }

    WDT_FEED = WDT_FEED_MAGIC;
}

void wdt_init(void)
{
    ets_task(&wdt_task, 0x1e, &wdt_eventq, 1);

    WDT_CTRL &= 0x7e; // Disable WDT

    ets_isr_attach(8, wdt_feed, NULL);

    INTC_EDGE_EN |= 1; // 0x3ff00004 |= 1
    WDT_REG1 = 0xb; // WDT timeot
    WDT_REG2 = 0xb;
    WDT_CTRL |= 0x38; // WDT cfg
    WDT_CTRL &= 0x79;
    WDT_CTRL |= 1;    // Enable WDT

    ets_isr_unmask(1 << 8); // Enable WDT isr
}
 
Последнее редактирование:

kovz

New member
pvvx, пожалуй Вы правы. Я так думаю, что люди заинтересованные в SDK такого уровня есть, но только в случае если конторка не умрет, и я думаю вы знаете почему. Я один из них. Думаю стоит этот вопрос обсуждать в закрытом режиме.
З.Ы. Есть опыт работы с китайцами и корейцами. Эта закрытость у них на уровне менталитета. К сожалению, с этим ничего нельзя сделать. Они с радостью патчат свой софт, если от этого зависит доход, но всегда через известное место.
 

pvvx

Активный участник сообщества
pvvx, пожалуй Вы правы. Я так думаю, что люди заинтересованные в SDK такого уровня есть, но только в случае если конторка не умрет, и я думаю вы знаете почему. Я один из них. Думаю стоит этот вопрос обсуждать в закрытом режиме.
З.Ы. Есть опыт работы с китайцами и корейцами. Эта закрытость у них на уровне менталитета. К сожалению, с этим ничего нельзя сделать. Они с радостью патчат свой софт, если от этого зависит доход, но всегда через известное место.
Основная причина отказа делать реверс именно их SDK - он очень кривой и там в каждой функции, писанной Espressif - ошибки, но главное там кривые и непоправимые алгоритмы. Если что-то делать на данном чипе, то требуется только его описание и нафиг не нужен этот софтовый глюкодром от Espressif.
И это не закрытость, а жадность и боязнь, что у них стянут последний цент.
 
Последнее редактирование:

kovz

New member
Именно. Но получить спецификацию это и есть самое трудное! Остается только реверсить :( А в таком случае лучше направить свои силы в более продуктивное русло. Благо мир не терпит пустоты и альтернативы есть. Но я не наблюдал ни единой китайской конторы-железячника, которая бы поняла что их задача производить железо, это они могут относительно неплохо, но не трогать софт! Как максимум пилить свой SDK, но при этом дать спеки на чип. Нет! Ежики колются, плачут но кактус не поддается.
 

pvvx

Активный участник сообщества
Именно. Но получить спецификацию это и есть самое трудное! Остается только реверсить :( А в таком случае лучше направить свои силы в более продуктивное русло. Благо мир не терпит пустоты и альтернативы есть.
Давно этим не занимаюсь, только для знания, что там нового творится в мире....
Но я не наблюдал ни единой китайской конторы-железячника, которая бы поняла что их задача производить железо, это они могут относительно неплохо, но не трогать софт! Как максимум пилить свой SDK, но при этом дать спеки на чип. Нет! Ежики колются, плачут но кактус не поддается.
Подправят школу и научатся писать ПО (не зря туда уехало множество наших програмеров). Дело это не хитрое и не сложное, надо то всего время для постановки школы, а человеческого ресурса там предостаточно и -> из-за дешивизы есть много человеко-часов на любую разработку :)
У них нет всяких всяких обременяющих идолов типа Richard Matthew Stallman, навязывающих бюрократию в данном деле. А так- же фанатов авторского-права и пирамиды патентной бюрократии… Это нам ныне навязывают, для тормоза деградации :)
 
Последнее редактирование:
Сверху Снизу