v3.8.0¶
v3.8.0 uppdaterar kärnan till MicroPython 1.13, fryser in en stor uppsättning hjälpbibliotek i den fasta programvaran, lägger till Portenta Ethernet (med nätverksexempel), HDMI CEC-stöd i lcd-modulen, konfiguration av baudhastighet/samplingspunkt för pyb.CAN, samt en våg av strömsnåla H7-rättningar och HAL-fixar. Modulerna time / utime slogs samman och DMA för F4 pyb.DAC inaktiverades — läs de brytande ändringarna nedan.
Höjdpunkter¶
MicroPython 1.13 — den medföljande MicroPython-kärnan uppdaterades.
Infrysta bibliotek —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,pid,ssd1306med flera är nu infrysta i den fasta programvaran.Portenta Ethernet — Ethernet-stöd plus exempel för HTTP / SSL / peer-to-peer.
HDMI CEC — nytt CEC-API i
lcd-modulen (Pure Thermal).pyb.CAN— bittiming från nyckelordenbaudrate/sampling_point.Brytande: modulerna
time/utimeslogs samman och DMA-funktionerna för F4pyb.DACinaktiverades — se de brytande ändringarna.
Nya funktioner¶
Infryst manifest —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,mutex,pid,ssd1306,tb6612ochvl53l1xär nu infrysta i den fasta programvaran på OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta.Portenta Ethernet — aktiverade Ethernet med exemplen
http_client,http_client_sslochpeer_to_peer.HDMI CEC — lade till ett HDMI CEC-API i
lcd-modulen (Pure Thermal).pyb.CAN— konstruktorn /init()härleder nu bittiming från nyckelordenbaudrateochsampling_point(den manuella prescaler-formen fungerar fortfarande); CAN-exemplen uppdaterades i enlighet med detta.
Övriga ändringar och förbättringar¶
REPL-bannern innehåller nu HAL-versionssträngen; Audio FFT-exemplet uppdaterades för det nyare
ulab-API:et.
Buggrättningar¶
Kamera och sensorer:
Rättade OV2640-sensorns klocka och OV5640:s PCLK-frekvensskalning på STM32H7 rev Y-enheter; återhämtar FIR I2C-bussen från ett förlorat arbitreringstillstånd genom att pulsa SCL, och försöker initiera AMG8833 igen vid en mjuk återställning av F7.
Strömförsörjning och timrar:
Rättade strömsnål inträde på H7 (stop/standby) — spänningsskalning för rev V, återaktivering av oscillator/PLL vid uppvaknande, strömsnålt SDRAM med DRAM-bevarande, inaktivering av Systick vid stop-inträde, och aktivering av DBGMCU endast i felsökningsbyggen. Rättade tillståndet för
machine.Timeri HAL efter H7 HAL-uppdateringen och återställde ändringen av IRQ-prioritet för SD-läsning/skrivning.
Skärm och anslutning:
Rättade konfigurationen av 8/16-bitars datastorlek för F4 SPI LCD (felaktig
MCU_SERIES-definition), returnerade ett fel vid misslyckad initiering av WINC1500 SPI-bussen i stället för att tyst fortsätta, och använde ett statiskt SPI-handtag för att undvika SPI-busskonflikter med WINC1500. Rättade en bugg i MicroPythons GC-collect.
System:
unittests.pymarkerar inte längre sviten som misslyckad när ett test är inaktiverat eller otillgängligt; tog bort de trasigacamera_lcd-exemplen för Thermopile-skölden.
Hårdvaru- och kortstöd¶
OpenMV Pure Thermal — kortet uppdaterades och bytte namn (
OPENMVPURETHERMAL→OPENMVPT), med HDMI CEC.OpenMV 2 — drivrutinen för OV2640-kameran aktiverades.
Arduino Portenta H7 — Ethernet-stöd.
Brytande API-ändringar¶
Användarsynliga API-brott mellan v3.7.0 och v3.8.0. Omfattning: Python C-moduler i modules/ och Python-bibliotek i scripts/libraries/.
Varje ändring är märkt med sin påverkan:
minor — smalt API; påverkar endast skript som använde det.
behavior — samma API, andra resultat; kontrollera finjusterade skript igen.
Ändringarna är grupperade efter påverkan i den ordningen. Om du bara vill porta din kod, hoppa till migreringschecklistan i slutet. Varje commit-hash länkar till sin diff på GitHub.
Modulerna time / utime sammanslagna (minor)¶
Modulerna time och utime slogs samman och OpenMV:s clock-klass flyttades till utime. Alla medföljande exempel uppdaterades till import utime / clock = utime.clock(). Skript som förlitade sig på import time för clock-klassen bör importera utime i stället.
Commits: 20587f308
DMA-funktionerna för F4 pyb.DAC inaktiverade (minor)¶
På F4-baserade kort inaktiverades de pyb.DAC-funktioner som kräver DMA eftersom F4-heapen ligger i CCM, vilket inte är DMA-åtkomligt. F4-skript som använde DAC-skrivningar till DMA-buffert måste undvika dessa funktioner.
Commits: d61f236f2
MicroPython uppdaterad till 1.13 (behavior)¶
Den medföljande MicroPython-kärnan uppdaterades till 1.13. Standardbiblioteks- och språkbeteende följer MicroPython 1.13 uppströms; kontrollera igen skript som beror på versionsspecifikt beteende hos micropython / standardmoduler.
Commits: fb0a5e26d
Frekvenser som stöds av cpufreq är revisionsberoende (behavior)¶
Fler CPU-frekvenser lades till och gjordes medvetna om kiselrevision: cpufreq.get_supported_frequencies() returnerar nu en revisionsberoende lista på H7 (50/100/200/400 MHz på rev X/Y, 60/120/240/480 MHz på rev V). Skript som hårdkodade en frekvens från den gamla fasta listan bör fråga efter den lista som stöds vid körning.
Commits: 825dd0742
Migreringschecklista¶
För en ren portning till v3.8.0 är det typiska arbetet:
Ändra
import timetillimport utimedär du använderclock-klassen (time/utime-sammanslagningen).På F4-kort, sluta använda DMA-buffertfunktionerna för
pyb.DAC(F4 DAC-ändringen).Validera om skript som beror på versionsspecifikt MicroPython-beteende mot 1.13 (MicroPython-uppgraderingen) och fråga efter
cpufreq.get_supported_frequencies()vid körning i stället för att hårdkoda (cpufreq-ändringen).
Alla andra skript körs oförändrade.