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 — تم تحديث اللوحة وإعادة تسميتها (
OPENMVPURETHERMAL←OPENMVPT)، مع دعم 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، العمل المعتاد هو:
غيّر
import timeإلىimport utimeحيثما تستخدم صنفclock(دمج time/utime).على لوحات F4، توقف عن استخدام دوال مخزن DMA لـ
pyb.DAC(تغيير DAC على F4).أعد التحقق من البرامج النصية التي تعتمد على سلوك MicroPython الخاص بإصدار معين مقابل 1.13 (ترقية MicroPython) واستعلم عن
cpufreq.get_supported_frequencies()في وقت التشغيل بدلًا من الترميز الثابت (تغيير cpufreq).
تعمل جميع البرامج النصية الأخرى دون تغيير.