رأيي بالمختصرالمفيد
نعم، هذه النقاشات يستحق أن يُفتح لها مواضيع ويُبنى عليه محتوى جاد
وليس فقط نقاش نظري.
لماذا هذا المجال “محتكر” ليس لأنه مستحيل، بل لأن
الشركات الغربية تمتلك توثيق داخلي غير منشور وأدوات Debug وبروتوكولات خاصة أغلب المحتوى المتاح
يشرح الاستخدام وليس البناء، في عالمنا العربي التركيز غالبًا على “كيف أفلش” وليس “كيف صُنعت الأداة التي تفلّش”
وهنا بالضبط تأتي قيمة هذا الطرح.
وهنا يطرح السؤال ماذا تعني “مبرمجة فلاشات ”؟
اي نحن نتكلم عن الهاردوير والسوفتوير والبروتوكولات
-الهاردوير
اختيار MCU مناسب + رخيص و متوفر ويدعم:
SPI -I²C -UART- USB
أمثلة: STM32 او RP2040
-اما بالنسبة للبروتوكولات هنا الجوهر الحقيقي
SPI Flash
NAND / NOR
eMMC / UFS (حتى لو نظريًا بالبداية)
بروتوكولات ISP
JTAG / SWD
Reverse Engineering للـ pinouts
-السوفتوير (الجزء الذي لا غنى عنه والذي يربط الاجزاء مع بعضها )
Firmware داخل المبرمجة(نواة المبرمجة)
PC Software الذي يتم من خلاله إرسال أوامر قراءة/كتابة والتحقق من CRC والمسح وكذالك التعامل مع:
IDs/Protection bits/Bad blocks الخ..
*** كسر فكرة “هذه التقنيات كانت دائما حكرا علي الغرب”
أقولها لك بدون مجاملة هذه التقنيات ليست سحرًا… بل تراكم معرفة والتراكم يبدأ بنقاشات ثم تجارب ثم أخطاء ثم مشاركة وأي مجتمع لا يناقش هذه الأمور بعمق
سيظل “مستخدم أدوات” لا “صانع أدوات”.
وأبسط مبرمجة فلاش يمكن بناؤها هي مبرمجة SPI Flash بسيطة (NOR Flash)
وليس NAND، ولا eMMC، ولا UFS.
لماذا SPI Flash؟
لأنها منتشرة جدًا (BIOS – أجهزة – راوترات – شاشات) بروتوكولها واضح ومُوثق ولا تحتاج سرعات عالية اوخطوط كثيرة اوتحكم معقد بالتواقيت
فهي مثالية للتعلّم من الصفر.
يعني 6 أسلاك فقط ولا يوجد Bus معقد ولا خطوط تحكم غامضة.
مثال لمعالج المبرمجة(MCU)STM32 (مثال: STM32F103 أو F401)توثيق ضخم مجتمع كبير.
أي مبرمجة فلاش احترافية في السوق بدأت داخليًا بـ SPI… حتى لو لم تُعلن ذلك.
الخلاصة أبسط مبرمجة فلاش = MCU + SPI + Flash NOR + أوامر Datasheet
ومنها تتعلم وتفهم وتبني فوقها ويصبح عندك تراكم معرفي .
بالنسبة لبرمجة الـ MCU ستحتاج البرمجة بلغة C وهي اللغة القياسية لعالم المتحكمات الدقيقة.
لأنّها قريبة جدًا من الهاردوير وتتحكم بالذاكرة والـ registers وسريعة و يمكن التنبؤ بتصرفها
ومدعومة من كل الشركات تقريبًا.
لو فتحت أي Firmware لمبرمجة احترافية ستجده مكتوبًا بـ C (أو C مع لمسة ASM)