7 पॉइंट द्वारा pazzk 2025-12-30 | 7 टिप्पणियां | WhatsApp पर शेयर करें

ESP32 आधारित firmware विकसित करते समय,
Flash Encryption और PSRAM को साथ में उपयोग करने वाले वातावरण में
Interrupt Watchdog Reset होने की समस्या आई, और यह लेख उस समस्या को हल करने की प्रक्रिया को व्यवस्थित करता है.

ESP32 IoT·embedded वातावरण में व्यापक रूप से इस्तेमाल होने वाला MCU है,
और RTOS आधारित TLS network communication, filesystem, OTA update आदि प्रदान करता है,
जिससे network connectivity की आवश्यकता वाले embedded applications को एक single chip पर लागू किया जा सकता है.

7 टिप्पणियां

 
pathfinder 2025-12-30

दिलचस्प सामग्री अच्छी लगी।
लेकिन DMA एरिया में भी cache इस्तेमाल करने की वजह क्या है?
लगता है कि इससे समस्या होना आसान होगा।

 
pazzk 2025-12-31

DMA कैश का सीधे इस्तेमाल नहीं करता, लेकिन क्योंकि यह DMA और CPU दोनों के बीच साझा की जाने वाली मेमोरी है, इसलिए cache coherence का ध्यान रखना ज़रूरी है।

 
pathfinder 2026-01-01

MMU नहीं है, लेकिन MPU से memory region और उनकी properties तय की जा सकती हैं.
एक बार इसे review कर लें तो अच्छा रहेगा

 
pazzk 2026-01-02

कुछ high-end MCU में, जैसा आपने कहा, MPU के ज़रिए केवल access permissions ही नहीं बल्कि cache से जुड़ी properties भी region unit के आधार पर सेट की जा सकती हैं। इसके लिए ST का यह material अच्छा reference होगा: https://community.st.com/t5/stm32-mcus/…

हालाँकि, इस लेख में इस्तेमाल किए गए ESP32-S3 में general-purpose CPU या कुछ MCU की तरह memory region के हिसाब से cacheable / non-cacheable properties को MPU या किसी समान mechanism से सेट करने का तरीका उपलब्ध नहीं है।

ESP32-S3 के मामले में external memory (Flash/PSRAM) को cache/MMU के माध्यम से access करने के लिए डिज़ाइन किया गया है (TRM 4.3.3 External Memory), और access permission control PMS(Permission Management System) के माध्यम से होता है (TRM Chapter 15), लेकिन यह सुविधा access protection के लिए है; यह cache के रास्ते access करना है या नहीं, या access path itself को बदलने का काम नहीं करती।

TRM(Technical Reference Manual) लिंक: https://documentation.espressif.com/esp32-s3_technical_reference_manua….

 
pathfinder 2026-01-02

मैंने ग़लती से मान लिया था कि यह निश्चित रूप से arm core होगा
आपके विनम्र जवाब के लिए धन्यवाद

 
pathfinder 2025-12-31

आपने जो cache consistency की बात की, उसकी वजह से हर बार cache invalidate करना पड़ता होगा, तो फिर इसे सीधे non-cacheable क्षेत्र में इस्तेमाल क्यों नहीं किया गया, यही जानने की उत्सुकता थी।

 
pazzk 2026-01-01

आह, generic कंप्यूटरों से अलग, ESP32 जैसे MCU में ऐसा MMU नहीं होता जो runtime पर page unit के हिसाब से memory properties बदल सके, और cacheable / non-cacheable होना पहले से तय memory region unit के आधार पर निर्धारित होता है, इसलिए जैसा आपने कहा वैसा इस्तेमाल करना संभव नहीं है (internal SRAM पूरी तरह non-cacheable है, और PSRAM पूरी तरह cacheable memory के रूप में fixed है).

अच्छा सवाल पूछने के लिए धन्यवाद!