v3.8.0

يُحدِّث الإصدار v3.8.0 النواة إلى MicroPython 1.13، ويُجمِّد مجموعة كبيرة من المكتبات المساعدة داخل البرنامج الثابت، ويضيف دعم Portenta Ethernet (مع أمثلة للشبكات)، ودعم HDMI CEC إلى وحدة lcd، وضبط معدل الباود/نقطة أخذ العينات لـ pyb.CAN، إضافةً إلى موجة من إصلاحات الطاقة المنخفضة وطبقة HAL لشريحة H7. وقد تم دمج وحدتي time / utime وتعطيل DMA لـ pyb.DAC على F4 — اقرأ التغييرات الجذرية أدناه.

أبرز النقاط

  • MicroPython 1.13 — تم تحديث نواة MicroPython المُرفقة.

  • المكتبات المُجمَّدة — أصبحت uasyncio وmqtt وrpc وrtsp وmodbus وbno055 وpid وssd1306 وغيرها مُجمَّدة الآن داخل البرنامج الثابت.

  • Portenta Ethernet — دعم Ethernet إضافةً إلى أمثلة HTTP / SSL / من النظير إلى النظير.

  • HDMI CEC — واجهة برمجة CEC جديدة في وحدة lcd (Pure Thermal).

  • pyb.CAN — توقيت البتات من الكلمتين المفتاحيتين baudrate / sampling_point.

  • تغيير جذري: تم دمج وحدتي time / utime وتعطيل دوال DMA لـ pyb.DAC على F4 — راجع التغييرات الجذرية.

ميزات جديدة

  • البيان المُجمَّد — أصبحت uasyncio وmqtt وrpc وrtsp وmodbus وbno055 وmutex وpid وssd1306 وtb6612 وvl53l1x مُجمَّدة الآن داخل البرنامج الثابت على OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta.

  • Portenta Ethernet — تم تمكين Ethernet مع أمثلة http_client وhttp_client_ssl وpeer_to_peer.

  • HDMI CEC — تمت إضافة واجهة برمجة HDMI CEC إلى وحدة lcd (Pure Thermal).

  • pyb.CAN — أصبح المُنشئ / init() يشتق توقيت البتات الآن من الكلمتين المفتاحيتين baudrate وsampling_point (لا تزال صيغة المقسِّم اليدوي تعمل)؛ وتم تحديث أمثلة CAN وفقًا لذلك.

تغييرات وتحسينات أخرى

  • أصبحت لافتة REPL تتضمن الآن سلسلة إصدار HAL؛ وتم تحديث مثال Audio FFT لواجهة برمجة ulab الأحدث.

إصلاحات الأخطاء

الكاميرا والمستشعرات:

  • تم إصلاح ساعة مستشعر OV2640 وتدريج تردد PCLK لمستشعر OV5640 على أجهزة STM32H7 إصدار Y؛ واستعادة ناقل FIR I2C من حالة فقدان التحكيم عن طريق نبض SCL، وإعادة محاولة تهيئة AMG8833 عند إعادة التعيين البرمجي لشريحة F7.

الطاقة والمؤقتات:

  • تم إصلاح الدخول في وضع الطاقة المنخفضة (stop/standby) لشريحة H7 — تدريج الجهد للإصدار V، وإعادة تمكين المُذبذب/PLL عند الاستيقاظ، وطاقة منخفضة لذاكرة SDRAM مع الاحتفاظ بـ DRAM، وتعطيل Systick عند الدخول في وضع stop، وتمكين DBGMCU فقط في بنيات التصحيح. وتم إصلاح حالة طبقة HAL لـ machine.Timer بعد تحديث طبقة HAL لشريحة H7 وعكس تغيير أولوية مقاطعة قراءة/كتابة SD.

العرض والاتصال:

  • تم إصلاح ضبط حجم بيانات 8/16 بت لشاشة LCD عبر SPI على F4 (تعريف MCU_SERIES خاطئ)، وإرجاع خطأ عند فشل تهيئة ناقل SPI لـ WINC1500 بدلًا من المتابعة بصمت، واستخدام مَقبِض SPI ثابت لتجنب تعارضات ناقل SPI لـ WINC1500. كما تم إصلاح خطأ في جمع المهملات (GC) في MicroPython.

النظام:

  • لم يعد unittests.py يضع علامة فشل على المجموعة عند تعطيل اختبار أو عدم توفره؛ وتمت إزالة أمثلة camera_lcd المعطلة الخاصة بدرع Thermopile.

دعم العتاد واللوحات

  • OpenMV Pure Thermal — تم تحديث اللوحة وإعادة تسميتها (OPENMVPURETHERMALOPENMVPT)، مع دعم HDMI CEC.

  • OpenMV 2 — تم تمكين برنامج تشغيل كاميرا OV2640.

  • Arduino Portenta H7 — دعم Ethernet.

تغييرات جذرية في واجهة البرمجة

تغييرات جذرية مرئية للمستخدم في واجهة البرمجة بين v3.7.0 وv3.8.0. النطاق: وحدات Python بلغة C في modules/ ومكتبات Python في scripts/libraries/.

كل تغيير موسوم بتأثيره:

  • طفيف — واجهة برمجة ضيقة؛ يؤثر فقط على البرامج النصية التي استخدمتها.

  • سلوكي — واجهة البرمجة نفسها، لكن نتائج مختلفة؛ أعد فحص البرامج النصية المضبوطة.

التغييرات مُجمَّعة حسب التأثير بهذا الترتيب. إذا كنت تريد فقط نقل شيفرتك، فانتقل إلى قائمة فحص الترحيل في النهاية. يرتبط كل تجزئة تنفيذ (hash) بفرقها (diff) على GitHub.

دمج وحدتي time / utime (طفيف)

تم دمج وحدتي time وutime ونُقل صنف clock الخاص بـ OpenMV إلى utime. وتم تحديث جميع الأمثلة المُرفقة إلى import utime / clock = utime.clock(). أما البرامج النصية التي اعتمدت على import time للوصول إلى صنف clock فينبغي أن تستورد utime بدلًا من ذلك.

عمليات التنفيذ: 20587f308

تعطيل دوال DMA لـ pyb.DAC على F4 (طفيف)

على اللوحات المعتمدة على F4، تم تعطيل دوال pyb.DAC التي تتطلب DMA لأن كومة (heap) F4 تقع في CCM، التي لا يمكن الوصول إليها عبر DMA. ويجب على البرامج النصية لـ F4 التي استخدمت كتابات مخزن DMA لـ DAC أن تتجنب تلك الدوال.

عمليات التنفيذ: d61f236f2

تحديث MicroPython إلى 1.13 (سلوكي)

تم تحديث نواة MicroPython المُرفقة إلى 1.13. ويتبع سلوك المكتبة القياسية واللغة إصدار MicroPython 1.13 من المصدر الأصلي؛ أعد فحص البرامج النصية التي تعتمد على سلوك micropython / الوحدات القياسية الخاص بإصدار معين.

عمليات التنفيذ: fb0a5e26d

الترددات المدعومة في cpufreq تعتمد على المراجعة (سلوكي)

تمت إضافة المزيد من ترددات المعالج وجُعلت مدركة لمراجعة السيليكون: أصبحت cpufreq.get_supported_frequencies() ترجع الآن قائمة تعتمد على المراجعة على شريحة H7 (50/100/200/400 ميغاهرتز على الإصدارين X/Y، و60/120/240/480 ميغاهرتز على الإصدار V). أما البرامج النصية التي رمزت بشكل ثابت ترددًا من القائمة الثابتة القديمة فينبغي أن تستعلم عن القائمة المدعومة في وقت التشغيل.

عمليات التنفيذ: 825dd0742

قائمة فحص الترحيل

من أجل نقل نظيف إلى v3.8.0، العمل المعتاد هو:

  1. غيّر import time إلى import utime حيثما تستخدم صنف clock (دمج time/utime).

  2. على لوحات F4، توقف عن استخدام دوال مخزن DMA لـ pyb.DAC (تغيير DAC على F4).

  3. أعد التحقق من البرامج النصية التي تعتمد على سلوك MicroPython الخاص بإصدار معين مقابل 1.13 (ترقية MicroPython) واستعلم عن cpufreq.get_supported_frequencies() في وقت التشغيل بدلًا من الترميز الثابت (تغيير cpufreq).

تعمل جميع البرامج النصية الأخرى دون تغيير.