Счетчики ссылок на объект. Без блокировок для multitask/SMP (ESP32, ESP32-S3)

Ясно. Ну, значит, как обычно, надо брать “камень” под задачу.
Если важно выполнить программу “шаг в шаг” - надо выбирать процессор, способный на это.

1 лайк

В данном случае, скорее, надо уметь пользоваться тем, что есть.

Ну, до какой-то степени отменить можно, закрыв процентов 95 ошибок и глюков - нужно просто выключить кэш данных. Для этого есть команды.

Но будет все работать медленнее сильно.

В некоторых исключительных случаях, когда требуется жесткий рилтайм, идут по этому пути - выключают кэш.

1 лайк

Когда требуется жесткий рилтайм обычно прибегают к другим средствам. Нередко - аппаратным.

vvb333007 а вы пытались разогнать esp32 простую модель выше 240 ?

void setup() {
  Serial.begin(115200);
  
  // Способ 1: Прочитать текущую частоту по умолчанию
  Serial.print("Default CPU freq: ");
  Serial.println(getCpuFrequencyMhz());
  
  // Способ 2: Посмотреть константы компиляции
  #ifdef CONFIG_ESP32_DEFAULT_CPU_FREQ_240
    Serial.println("Плата поддерживает 240 MHz");
  #elif CONFIG_ESP32_DEFAULT_CPU_FREQ_160
    Serial.println("Плата поддерживает 160 MHz");
  #endif
  
  // Способ 3: Постепенно повышать и проверять стабильность
  testFrequencies();
}

void testFrequencies() {
  uint32_t test_freqs[] = {80, 160, 240, 320};
  
  for (uint32_t freq : test_freqs) {
    Serial.print("Testing ");
    Serial.print(freq);
    Serial.print(" MHz: ");
    
    if (setCpuFrequencyMhz(freq)) {
      Serial.print("OK - Actual: ");
      Serial.println(getCpuFrequencyMhz());
      
      // Проверка стабильности (очень простой тест)
      if (!stabilityTest()) {
        Serial.println("UNSTABLE! Reverting to 240");
        setCpuFrequencyMhz(240);
        break;
      }
    } else {
      Serial.println("FAILED");
      break;
    }
  }
}
// ВНИМАНИЕ: Это может сжечь ваш ESP32!
void dangerousOverclockAttempt() {
    // 1. Отключаем контроль напряжения
    // WRITE_PERI_REG(RTC_CNTL_REG, 0x00);
    
    // 2. Пытаемся настроить PLL на 520 МГц вместо 480
    // CLEAR_PERI_REG_MASK(RTC_CNTL_CLK_CONF_REG, RTC_CNTL_SOC_CLK_SEL);
    // SET_PERI_REG_BITS(RTC_CNTL_CLK_CONF_REG, RTC_CNTL_CK8M_DIV_SEL, 0, RTC_CNTL_CK8M_DIV_SEL_S);
    
    // 3. Устанавливаем недокументированный множитель
    // SET_PERI_REG_BITS(DPORT_CPU_PER_CONF_REG, DPORT_CPUPERIOD_SEL, 3, DPORT_CPUPERIOD_SEL_S);
    
    // Результаты экспериментаторов:
    // - 260 МГц: иногда работает, часто падает
    // - 280 МГц: случайные перезагрузки каждые 10-60 секунд
    // - 300 МГц: немедленный крах или повреждение flash
    // - 320+ МГц: чип может выйти из строя физически
}

как то можно защиту от дурака удалить, и сжечь esp32 ?))) а то может программно как то запрещен разгон…

Да. Гонится в 1.6 раза. Но расползаются внутренние тайминги все. Но можно. Но WiFi отвалится.

1 лайк

Если ты задумал дешевую ферму майнерскую сделать, то не сработает. Тебе будет нужен вайфай.

Но если ты просто возьмешь ESP32-S3, и оптимизированный софт напишешь (S3 - шустрый с аппаратной поддержкой векторных операций и шифрования) то можно выжать 600-800 килохэшей. А может и больше. Надо проверять. С учетом цены и энергопотребления - вполне себе игрушка :). Можно собирать такие коробочки по сто еспшк внутри.

нет просто, а то че она не гонится…
телефоны б.у. в китае продаются килограммами, и их заточить легче, а вот esp на другую валюту кроме одной специально выпущенной под майнинг на мк сложновато… кстате ее научились майнить на компах, еще и другие уязвимости имеет…

но главное это наладить постоянный обмен циферками, и тогда она будет стоить дороже из за спроса!
вот для этого можно и использовать esp, для постоянной переправки циферок, но эту услугу не думаю что купят…

я видел еспшную ферму :))). Там такие коробки, примерно размером с ATX. Небольшие, короче. И в них натыканы еспшки. Где-то сантиметра полтора-два между ними. Дофига-дофига в одной коробке. ЕСПшки дешевые (особенно, если брать ящик), практически не греются. И почти ничего не едят.

нет, не запрещен.

но т.к. WiFi и Bluetooth зависят от этих таймингов, то привет. Перенастроить WiFi и BT можно было бы, но.. там следующий делитель частоты такой, что потребуется очень большая частота входная. Которая больше 480мгц быть не может.

смысла нет его гнать - он дешев, можно купить второй, если одного не хватает.

А можно купить последнюю самую ЕСПшку , ESP32-P4. Там и тактовая 480мгц, и процессор новый, шустрый.

как и почти не копают)) а самое главное из за их мощности придется решать задачу как им всем ставить задачу разом, а если не ставить, тогда с ними не будет работать готовый софт… из за малой мощности… или вы про добычу соло ?)))

в сети нечего не осталось, но была раньше инструкция как искать потерянные биткойны))) переходя по ссылкам, а так же можно настроить перебор мнемонических фраз))) все же лучше чем майнинг соло, особенно если хороший кошелек выбрать))) но с софтом придется покопаться…

при разгоне сразу отвалятся, как и память наверное… я просто указал частоту больше, а она не разогналась… обидно стало)))
еще все таки вольтаж можно подать больше… опять же для выполнения кода можно использовать, я даже вроде раньше разгонял 1 раз, но забыл у кого скопировал код)))

ну и вообще от скуки можно и спалить пару есп))) я как то от скуки решил чутка подать вольтаж от аккума ноутбука, в итоге он начал гореть, батарея ноутбука вздулась, и начала коптить)))) так что лучше палить esp….

да последний esp знаю и wifi лучше и частота…
но есть малина еще… zero 2

это не так-то просто сделать :). 5 вольт он держит прекрасно. Я нарочно проверяю все еспшки которые мне в руки попадабт. И ADC выживает и UART работает и прочее. И ничего не греется.

1 лайк

vvb333007 так вот и я спрашиваю как эту защиту от дурака удалить ?))))
вроде скинутый код это даже делает I2C_BBPLL_OC_DCUR
а может и нет… я вообще нубяра, и главное документации не читаю, и не знаю как регистрами пользоваться))) методом проб интереснее…
но а вообще кажется завал и времени пробовать нет, но я код скопировал, спс, поковыряюсь позже

p.s. я если что буду делать на старом ноутбуке еще и с усб хабом….
и готов ко всему, а то вы там спалите еще что то и раccтроитесь….)))