سلام و درود به همه آفتابی ها
چند وقتیه که پروژه هامو از آردوینو به ESP32 انتقال دادم و نسبتا ازش راضیم
اما یه ضعف تو حافظه فلش داره!
اینکه حافظه SPI فلش نصب شده (25Q32) روی ESP-WROOM و یا ESP32s خیلی کمه! فقط 32 مگابیت معادل 4 مگابایت که فقط 1 مگابایتش در دسترسه که اصلا مناسب نیست!!!
فقط مدل Noduino Quantum بصورت پیشفرض از حافظه 16مگاباتی استفاده میکنه (25Q128)
یه نمونه (Blink) مثال میزنم که بهتر روش بشه موضوع
void setup() {
pinMode(4, OUTPUT);
}
void loop() {
digitalWrite(4, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(4, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
نتیجه کامپایل برای ESP32
Sketch uses 106686 bytes (10%) of program storage space. Maximum is 1044464 bytes.
Global variables use 9540 bytes (3%) of dynamic memory, leaving 285372 bytes for local variables. Maximum is 294912 bytes.
نتیجه کامپایل برای UNO - MEGA.328
Sketch uses 928 bytes (2%) of program storage space. Maximum is 32256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
نتیجه کامپایل برای MEGA.2560
Sketch uses 1462 bytes (0%) of program storage space. Maximum is 253952 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 8183 bytes for local variables. Maximum is 8192 bytes.
2% از فلش mega328 در مقابل 10% از فلش ESP32. عملا کل حافظه ESP32 میشه 25% از فلش مگا 328. چه رسد به مگا 2560 !
دلیلش اینه که میکروهای سری مگا 8 بیتی هستن و ESP32 از هسته 32 بیتی استفاده میکنه
خوب نیست. اصلا خوب نیست. پردانده آرم 32 بیتی با همچین حافظه ای؟!
دلیل ایجاد این تاپیک اینه که برای آپگرید فلش از 32 مگابیت به 128 مگابیت یه راهی پیدا کنیم. جایگزین 25Q32 میشه 25Q128 که قیمتش یکم گرونه ولی ارزششو داره
تنها کار باقیمونده اینه که فریمویر 128 مگابیتو روش بریزیم. اما هرچی گشتم پیدا نکردم
فریمویر ناندوینو کوانتوم هم تهیه کردم ولی موقع آپلود گیر میکنه
دوستان اگه تجربه ای دارن در این زمینه چه موفق چه ناموفق اعلام کنن که بتونیم این چالشو پاس کنیم
سپاس از همراهیتون:x