شعار زيفيرنت

بالقرب من المعدن

التاريخ:

يتم عالقة البرامج الثابتة بين الأجهزة والبرامج. ماذا أعني؟ يتنافس مصممو المتحكمات الدقيقة على عدد الأجهزة الطرفية المثيرة للاهتمام والمفيدة التي يمكنهم إضافتها إلى الرقائق، وجميعها مختلفة عن قصد. وفي الوقت نفسه، يريد مصممو البرمجيات الابتعاد عن تعقيدات وخصوصيات الأجهزة الطرفية، لأن التعليمات البرمجية تريد أن تكون عامة ومحمولة. مصممو البرامج والأجهزة هم Montagues وCapulets، ونحن عالقون في مرمى النيران.

أنا في منتصف تصميم يستفيد ربما من واحدة من أكثر الأجهزة الطرفية لوحدات التحكم الدقيقة تميزًا - وهي أجهزة PIO الخاصة بـ RP2040. إن الجمع بين هذه العناصر ووحدات تحكم الوصول المباشر للذاكرة (DMA) الخاصة بالرقاقة يسمح ببعض المعالجة ذات النطاق الترددي العالي إلى حد ما، دون تعطل وحدات المعالجة المركزية (CPUs). ولكن لأنني أريد أن يكون هذا الرمز قابلاً للاستخدام وقابلاً للتوسيع من قبل جمهور واسع، فأنا أحاول أيضًا كتابته باستخدام MicroPython. ويعد تكوين وحدات تحكم DMA أمرًا خاصًا جدًا بالنسبة لـ MicroPython.

ولكن هناك فتحة الهروب. في حالتي، إنه من باب المجاملة machine.mem32 وظيفة، والتي تتيح لك القراءة والكتابة مباشرة في ذاكرة الشريحة، بما في ذلك كافة سجلات التكوين المعينة للذاكرة. بالتأكيد، إنه مستوى منخفض إلى حد سخيف، ولكنه يعني أن أي شيء تقرأ عنه في ورقة بيانات الشريحة، يمكنك القيام به على الفور، ومن خلال الراحة النسبية لبرنامج Micropython. اللغات الأخرى لها PEEK و POKE معادلاتها أيضًا، أو السماح للمجمع المضمن، أو تزويدك بالأدوات اللازمة للاقتراب من المعدن دون الحاجة إلى كتابة بقية التعليمات البرمجية الخاصة بك بمستوى منخفض.

أنا بصراحة عادةً ما أكون مبرمجًا مستقيمًا أو حتى مبرمجًا رابعًا، لكن هذه التجربة المتمثلة في استخدام لغة ذات مستوى أعلى والقدرة في الوقت نفسه على الغوص إلى أدنى مستويات التلاعب بالبت في نفس الوقت كانت بمثابة اكتشاف. إذا كنت تستخدم Micropython فقط، فافتح ورقة بيانات الشريحة الخاصة بك وشاهد ما يمكن أن تقدمه لك. أو إذا كنت تقوم بالبرمجة على مستوى تكوين هذا التسجيل، فاطلع على الفوائد الإضافية التي يمكنك الحصول عليها من لغة ذات مستوى أعلى. أنت يمكن تناول كعكتك وتناولها أيضًا!

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة