v3.8.0¶
v3.8.0 werkt de kern bij naar MicroPython 1.13, bevriest een grote set hulpbibliotheken in de firmware, voegt Portenta Ethernet toe (met netwerkvoorbeelden), HDMI CEC-ondersteuning aan de lcd-module, configuratie van baudrate/sampling-point voor pyb.CAN, en een reeks H7 low-power- en HAL-fixes. De modules time / utime werden samengevoegd en de F4 pyb.DAC DMA werd uitgeschakeld — lees hieronder de wijzigingen die niet achterwaarts compatibel zijn.
Hoogtepunten¶
MicroPython 1.13 — de meegeleverde MicroPython-kern is bijgewerkt.
Bevroren bibliotheken —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,pid,ssd1306en meer zijn nu bevroren in de firmware.Portenta Ethernet — Ethernet-ondersteuning plus HTTP-/SSL-/peer-to-peer-voorbeelden.
HDMI CEC — nieuwe CEC-API in de
lcd-module (Pure Thermal).pyb.CAN— bittiming uit de sleutelwoordenbaudrate/sampling_point.Niet achterwaarts compatibel: de modules
time/utimewerden samengevoegd en de F4pyb.DACDMA-functies werden uitgeschakeld — zie de wijzigingen die niet achterwaarts compatibel zijn.
Nieuwe functies¶
Bevroren manifest —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,mutex,pid,ssd1306,tb6612envl53l1xzijn nu bevroren in de firmware op OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta.Portenta Ethernet — Ethernet ingeschakeld met de voorbeelden
http_client,http_client_sslenpeer_to_peer.HDMI CEC — een HDMI CEC-API toegevoegd aan de
lcd-module (Pure Thermal).pyb.CAN— de constructor /init()leidt de bittiming nu af uit de sleutelwoordenbaudrateensampling_point(de handmatige prescaler-vorm werkt nog steeds); de CAN-voorbeelden zijn dienovereenkomstig bijgewerkt.
Overige wijzigingen en verbeteringen¶
De REPL-banner bevat nu de HAL-versietekst; het Audio FFT-voorbeeld is bijgewerkt voor de nieuwere
ulab-API.
Bugfixes¶
Camera en sensoren:
De OV2640-sensorklok en de OV5640 PCLK-frequentieschaling op STM32H7 rev Y-apparaten gerepareerd; herstel de FIR I2C-bus uit een arbitrage-verloren toestand door SCL te pulsen, en probeer de AMG8833-init opnieuw bij een F7 soft-reset.
Voeding en timers:
De H7 low-power (stop/standby)-toegang gerepareerd — voltageschaling voor rev V, het opnieuw inschakelen van de oscillator/PLL bij het ontwaken, SDRAM low-power met DRAM-retentie, het uitschakelen van Systick bij stop-toegang, en het alleen inschakelen van DBGMCU in debug-builds. De HAL-status van de
machine.Timergerepareerd na de H7 HAL-update en de wijziging van de SD-lees-/schrijf-IRQ-prioriteit teruggedraaid.
Display en connectiviteit:
De F4 SPI LCD 8/16-bits datagrootteconfiguratie gerepareerd (verkeerde
MCU_SERIES-definitie), een fout teruggegeven bij een mislukte WINC1500 SPI-bus-init in plaats van stilzwijgend door te gaan, en een statische SPI-handle gebruikt om WINC1500 SPI-busconflicten te vermijden. Een MicroPython GC-collect-bug gerepareerd.
Systeem:
unittests.pymarkeert de suite niet langer als mislukt wanneer een test is uitgeschakeld of niet beschikbaar; de defecte Thermopile-shieldcamera_lcd-voorbeelden verwijderd.
Hardware- en boardondersteuning¶
OpenMV Pure Thermal — board bijgewerkt en hernoemd (
OPENMVPURETHERMAL→OPENMVPT), met HDMI CEC.OpenMV 2 — OV2640-camerastuurprogramma ingeschakeld.
Arduino Portenta H7 — Ethernet-ondersteuning.
Niet achterwaarts compatibele API-wijzigingen¶
Voor gebruikers zichtbare API-breuken tussen v3.7.0 en v3.8.0. Bereik: Python C-modules in modules/ en Python-bibliotheken in scripts/libraries/.
Elke wijziging is gemarkeerd met de impact ervan:
minor — beperkte API; treft alleen scripts die deze gebruikten.
behavior — dezelfde API, andere resultaten; controleer afgestelde scripts opnieuw.
Wijzigingen zijn in die volgorde per impact gegroepeerd. Als je alleen je code wilt porteren, spring dan naar de migratiechecklist aan het einde. Elke commit-hash linkt naar zijn diff op GitHub.
Modules time / utime samengevoegd (minor)¶
De modules time en utime werden samengevoegd en de OpenMV clock-klasse verplaatste naar utime. Alle meegeleverde voorbeelden zijn bijgewerkt naar import utime / clock = utime.clock(). Scripts die voor de clock-klasse op import time vertrouwden, moeten in plaats daarvan utime importeren.
Commits: 20587f308
F4 pyb.DAC DMA-functies uitgeschakeld (minor)¶
Op F4-gebaseerde boards werden pyb.DAC-functies die DMA vereisen uitgeschakeld, omdat de F4-heap zich in CCM bevindt, dat niet DMA-toegankelijk is. F4-scripts die DAC DMA-bufferschrijfacties gebruikten, moeten die functies vermijden.
Commits: d61f236f2
MicroPython bijgewerkt naar 1.13 (behavior)¶
De meegeleverde MicroPython-kern is bijgewerkt naar 1.13. Het gedrag van de standaardbibliotheek en de taal volgt upstream MicroPython 1.13; controleer scripts opnieuw die afhankelijk zijn van versiespecifiek micropython- / standaardmodulegedrag.
Commits: fb0a5e26d
De door cpufreq ondersteunde frequenties zijn revisieafhankelijk (behavior)¶
Er zijn meer CPU-frequenties toegevoegd en bewust gemaakt van de siliciumrevisie: cpufreq.get_supported_frequencies() geeft nu een revisieafhankelijke lijst terug op de H7 (50/100/200/400 MHz op rev X/Y, 60/120/240/480 MHz op rev V). Scripts die een frequentie uit de oude vaste lijst hard codeerden, moeten de ondersteunde lijst tijdens runtime opvragen.
Commits: 825dd0742
Migratiechecklist¶
Voor een schone overgang naar v3.8.0 is het typische werk:
Wijzig
import timeinimport utimewaar je declock-klasse gebruikt (de time/utime-samenvoeging).Stop op F4-boards met het gebruik van
pyb.DACDMA-bufferfuncties (de F4 DAC-wijziging).Valideer scripts die afhankelijk zijn van versiespecifiek MicroPython-gedrag opnieuw tegen 1.13 (de MicroPython-upgrade) en vraag
cpufreq.get_supported_frequencies()tijdens runtime op in plaats van hard te coderen (de cpufreq-wijziging).
Alle andere scripts draaien ongewijzigd.