الصنف Flash -- الوصول إلى وحدة تخزين الفلاش المدمجة¶
يوفر الصنف Flash وصولاً مباشراً على مستوى الكتل إلى شريحة فلاش QSPI الخارجية الخاصة بـ RP2040. يطبّق المشغّل واجهة vfs.AbstractBlockDev بحيث يمكن تمريره إلى vfs.mount() لإعدادات أنظمة الملفات المخصّصة.
تحتفظ معظم البرامج النصية بالبيانات عبر نظام الملفات المركّب تلقائياً عند / ولا تنشئ Flash مباشرة أبداً. أنشئ كائناً يدوياً عندما تحتاج إلى:
تركيب نظام ملفات غير افتراضي (مثل التغليف بـ
vfs.VfsFat) على قسم مخصّص.قراءة أو كتابة مناطق البرنامج الثابت أو كتل بيانات المصنع التي لا يملكها نظام الملفات.
تطبيق صيغة تخزين مخصّصة على الفلاش تتجاوز طبقة نظام الملفات.
البانيات (Constructors)¶
- class rp2.Flash Flash¶
إرجاع كائن جهاز الكتل المفرد
Flashالمدعوم بشريحة فلاش QSPI الخاصة بـ RP2040. أول كتلة مكشوفة هي تلك التي تلي مباشرة منطقة البرنامج الثابت، بحيث لا يرى المستدعون سوى المنطقة المؤهلة لنظام الملفات من الشريحة.الطرائق (Methods)¶
- readblocks(block_num: int, buf: bytearray) None¶
- readblocks(block_num: int, buf: bytearray, offset: int) None
قراءة بايتات من الفلاش إلى
buf. نقطة الدخول القياسية لجهاز الكتل وفقvfs.AbstractBlockDevالتي تستخدمها طبقة نظام الملفات.الصيغة البسيطة (
readblocks(block_num, buf)): قراءة كتل كاملة بدءاً من فهرس الكتلةblock_num. يجب أن يكونlen(buf)مضاعفاً لحجم كتلة الفلاش.الصيغة الموسّعة (
readblocks(block_num, buf, offset)): قراءةlen(buf)بايتاً -- ليس بالضرورة عدداً صحيحاً من الكتل -- بدءاً من البايتoffsetداخل الكتلةblock_num. تستخدمها littlefs وأنظمة الملفات الأخرى القابلة للعنونة على مستوى البايت.
- writeblocks(block_num: int, buf: bytes) None¶
- writeblocks(block_num: int, buf: bytes, offset: int) None
كتابة بايتات من
bufإلى الفلاش. نقطة الدخول القياسية لجهاز الكتل وفقvfs.AbstractBlockDevالتي تستخدمها طبقة نظام الملفات.الصيغة البسيطة (
writeblocks(block_num, buf)): كتابة كتل كاملة بدءاً من فهرس الكتلةblock_num. يجب أن يكونlen(buf)مضاعفاً لحجم كتلة الفلاش. تُمحى كل كتلة متأثرة تلقائياً قبل الكتابة عليها.الصيغة الموسّعة (
writeblocks(block_num, buf, offset)): كتابةlen(buf)بايتاً -- ليس بالضرورة عدداً صحيحاً من الكتل -- بدءاً من البايتoffsetداخل الكتلةblock_num. لا يُجرى أي محو ضمني -- يجب على المستدعي التأكد من أن الكتل المتأثرة قد مُحيت عبر استدعاء سابق لـioctl(6, block_num).
- ioctl(cmd: int, arg: int) int | None¶
نقطة دخول التحكم القياسية وفق
vfs.AbstractBlockDev. تُستدعى من طبقة نظام الملفات عند التركيب/الفصل وعند كل مزامنة. قيمcmdالمعروفة:1-- التهيئة. يُرجع0عند النجاح.2-- إلغاء التهيئة. يُرجع0عند النجاح.3-- مزامنة عمليات الكتابة المعلّقة. يُرجع0.4-- إرجاع عدد كتل الفلاش المرئية لنظام الملفات.5-- إرجاع حجم الكتلة بالبايت (عادةً حجم قطاع الفلاش،4096).6-- محو الكتلة عند الفهرسarg. مطلوب قبل استخدام الصيغة الموسّعة لـwriteblocks.7-- إرجاع ما إذا كان الجهاز يدعم أمر محو الكتلة (1على RP2040).
لا يستخدم المستدعون المباشرون هذه الطريقة عادةً -- يرسل مشغّل نظام الملفات الرموز القياسية تلقائياً بمجرد تركيب
Flash.