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 / peer-to-peer
HDMI CEC — API สำหรับ CEC ใหม่ในโมดูล
lcd(Pure Thermal)pyb.CAN— กำหนด bit timing จากคีย์เวิร์ดbaudrate/sampling_pointการเปลี่ยนแปลงที่ทำให้โค้ดเสียหาย: โมดูล
time/utimeถูกรวมเข้าด้วยกัน และฟังก์ชัน DMA ของpyb.DACบน F4 ถูกปิดใช้งาน — ดูการเปลี่ยนแปลงที่ทำให้โค้ดเสียหาย
ฟีเจอร์ใหม่¶
Frozen manifest —
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_peerHDMI CEC — เพิ่ม HDMI CEC API ในโมดูล
lcd(Pure Thermal)pyb.CAN— คอนสตรักเตอร์ /init()ตอนนี้ดึง bit timing จากคีย์เวิร์ดbaudrateและsampling_point(รูปแบบ prescaler แบบ manual ยังคงใช้งานได้) และอัปเดตตัวอย่าง CAN ตามนั้น
การเปลี่ยนแปลงและการปรับปรุงอื่น ๆ¶
แบนเนอร์ REPL ตอนนี้แสดงสตริงเวอร์ชัน HAL และตัวอย่าง Audio FFT ได้รับการอัปเดตสำหรับ API
ulabเวอร์ชันใหม่
การแก้ไขบัก¶
กล้องและเซนเซอร์:
แก้ไขความถี่สัญญาณนาฬิกา OV2640 และการปรับขนาดความถี่ PCLK ของ OV5640 บนอุปกรณ์ STM32H7 rev Y; กู้คืนบัส I2C สำหรับ FIR จากสถานะ arbitration-lost โดยการส่งพัลส์ SCL และลองเริ่ม AMG8833 ใหม่เมื่อ F7 soft-reset
พลังงานและตัวจับเวลา:
แก้ไขการเข้าสู่โหมดพลังงานต่ำ (stop/standby) ของ H7 — การปรับแรงดันสำหรับ rev V การเปิดใช้งาน oscillator/PLL อีกครั้งเมื่อตื่น SDRAM แบบพลังงานต่ำพร้อมการเก็บข้อมูล DRAM การปิดใช้งาน Systick เมื่อเข้า stop และการเปิดใช้งาน DBGMCU เฉพาะในบิลด์ debug แก้ไขสถานะ HAL ของ
machine.Timerหลังการอัปเดต H7 HAL และย้อนกลับการเปลี่ยนลำดับความสำคัญของ IRQ สำหรับการอ่าน/เขียน SD
จอแสดงผลและการเชื่อมต่อ:
แก้ไขการกำหนดค่าขนาดข้อมูล 8/16 บิตของ F4 SPI LCD (ค่า
MCU_SERIESdefine ผิด) คืนค่าข้อผิดพลาดเมื่อเริ่มต้น WINC1500 SPI bus ล้มเหลวแทนที่จะดำเนินการต่อแบบเงียบ และใช้ static SPI handle เพื่อหลีกเลี่ยงความขัดแย้งของ WINC1500 SPI bus แก้ไขบัก GC-collect ของ MicroPython
ระบบ:
unittests.pyจะไม่ทำเครื่องหมายว่า suite ล้มเหลวเมื่อการทดสอบถูกปิดใช้งานหรือไม่พร้อมใช้งาน และลบตัวอย่างcamera_lcdของ Thermopile-shield ที่เสียออก
ฮาร์ดแวร์และการรองรับบอร์ด¶
OpenMV Pure Thermal — บอร์ดได้รับการอัปเดตและเปลี่ยนชื่อ (
OPENMVPURETHERMAL→OPENMVPT) พร้อม HDMI CECOpenMV 2 — เปิดใช้งานไดรเวอร์กล้อง OV2640
Arduino Portenta H7 — รองรับ Ethernet
การเปลี่ยนแปลง API ที่ทำให้โค้ดเสียหาย¶
การเปลี่ยนแปลง API ที่มองเห็นได้โดยผู้ใช้ระหว่าง v3.7.0 และ v3.8.0 ขอบเขต: Python C-modules ใน modules/ และ Python libraries ใน scripts/libraries/
การเปลี่ยนแปลงแต่ละรายการได้รับการระบุด้วยผลกระทบ:
minor — API แคบ ส่งผลกระทบเฉพาะสคริปต์ที่ใช้งาน
behavior — API เดิม ผลลัพธ์ต่างกัน ตรวจสอบสคริปต์ที่ปรับแต่งแล้วอีกครั้ง
การเปลี่ยนแปลงถูกจัดกลุ่มตามผลกระทบในลำดับนั้น หากคุณต้องการพอร์ตโค้ด ให้ข้ามไปที่ รายการตรวจสอบการย้าย ที่ท้ายเอกสาร แต่ละ commit hash เชื่อมโยงไปยัง diff บน GitHub
รวมโมดูล time / utime (minor)¶
โมดูล time และ utime ถูกรวมเข้าด้วยกัน และคลาส clock ของ OpenMV ถูกย้ายไปยัง utime ตัวอย่างที่รวมมาทั้งหมดได้รับการอัปเดตเป็น import utime / clock = utime.clock() สคริปต์ที่พึ่งพา import time สำหรับคลาส clock ควรนำเข้า utime แทน
Commits: 20587f308
ปิดใช้งานฟังก์ชัน DMA ของ pyb.DAC บน F4 (minor)¶
บนบอร์ดที่ใช้ F4 ฟังก์ชันของ pyb.DAC ที่ต้องใช้ DMA ถูกปิดใช้งาน เนื่องจาก F4 heap อยู่ใน CCM ซึ่งไม่สามารถเข้าถึง DMA ได้ สคริปต์ F4 ที่ใช้การเขียน DAC DMA-buffer ต้องหลีกเลี่ยงฟังก์ชันเหล่านั้น
Commits: d61f236f2
อัปเดต MicroPython เป็น 1.13 (behavior)¶
แกนหลัก MicroPython ที่รวมมาได้รับการอัปเดตเป็น 1.13 พฤติกรรมของไลบรารีมาตรฐานและภาษาเป็นไปตาม upstream MicroPython 1.13 ตรวจสอบสคริปต์ที่พึ่งพาพฤติกรรมเฉพาะเวอร์ชันของ micropython / โมดูลมาตรฐานอีกครั้ง
Commits: fb0a5e26d
ความถี่ที่รองรับของ cpufreq ขึ้นอยู่กับ revision (behavior)¶
เพิ่มความถี่ CPU เพิ่มเติมและทำให้รับรู้ silicon revision: cpufreq.get_supported_frequencies() ตอนนี้คืนรายการที่ขึ้นอยู่กับ revision บน H7 (50/100/200/400 MHz บน rev X/Y, 60/120/240/480 MHz บน rev V) สคริปต์ที่ hard-code ความถี่จากรายการคงที่เดิมควร query รายการที่รองรับในขณะ runtime
Commits: 825dd0742
รายการตรวจสอบการย้าย¶
สำหรับการพอร์ตที่ราบรื่นไปยัง v3.8.0 งานทั่วไปคือ:
เปลี่ยน
import timeเป็นimport utimeในที่ที่คุณใช้คลาสclock(การรวม time/utime)บนบอร์ด F4 หยุดใช้ฟังก์ชัน DMA-buffer ของ
pyb.DAC(การเปลี่ยนแปลง F4 DAC)ตรวจสอบสคริปต์ที่พึ่งพาพฤติกรรมเฉพาะเวอร์ชัน MicroPython กับ 1.13 อีกครั้ง (การอัปเกรด MicroPython) และ query
cpufreq.get_supported_frequencies()ในขณะ runtime แทนการ hard-code (การเปลี่ยนแปลง cpufreq)
สคริปต์อื่น ๆ ทั้งหมดทำงานได้โดยไม่มีการเปลี่ยนแปลง