v3.8.0¶
v3.8.0 aktualizuje rdzeń do wersji MicroPython 1.13, zamraża duży zestaw bibliotek pomocniczych w oprogramowaniu układowym, dodaje Portenta Ethernet (z przykładami sieciowymi), obsługę HDMI CEC w module lcd, konfigurację szybkości transmisji / punktu próbkowania dla pyb.CAN oraz falę poprawek niskiego poboru mocy i HAL dla H7. Moduły time / utime zostały scalone, a obsługa DMA dla F4 pyb.DAC została wyłączona — przeczytaj poniżej o zmianach niekompatybilnych wstecznie.
Najważniejsze zmiany¶
MicroPython 1.13 — dołączony rdzeń MicroPython został zaktualizowany.
Zamrożone biblioteki —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,pid,ssd1306i inne są teraz zamrożone w oprogramowaniu układowym.Portenta Ethernet — obsługa Ethernet wraz z przykładami HTTP / SSL / peer-to-peer.
HDMI CEC — nowe API CEC w module
lcd(Pure Thermal).pyb.CAN— taktowanie bitów na podstawie słów kluczowychbaudrate/sampling_point.Niekompatybilne wstecznie: moduły
time/utimezostały scalone, a funkcje DMA dla F4pyb.DACzostały wyłączone — zobacz zmiany niekompatybilne wstecznie.
Nowe funkcje¶
Zamrożony manifest —
uasyncio,mqtt,rpc,rtsp,modbus,bno055,mutex,pid,ssd1306,tb6612ivl53l1xsą teraz zamrożone w oprogramowaniu układowym na OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta.Portenta Ethernet — włączono Ethernet z przykładami
http_client,http_client_sslipeer_to_peer.HDMI CEC — dodano API HDMI CEC do modułu
lcd(Pure Thermal).pyb.CAN— konstruktor /init()wyprowadza teraz taktowanie bitów ze słów kluczowychbaudrateisampling_point(ręczna postać z preskalerem nadal działa); przykłady CAN odpowiednio zaktualizowano.
Inne zmiany i ulepszenia¶
Baner REPL zawiera teraz ciąg wersji HAL; przykład Audio FFT zaktualizowano pod nowsze API
ulab.
Poprawki błędów¶
Kamera i sensory:
Naprawiono zegar sensora OV2640 oraz skalowanie częstotliwości PCLK OV5640 na urządzeniach STM32H7 rev Y; przywracanie magistrali I2C FIR ze stanu utraty arbitrażu poprzez impulsowanie SCL oraz ponawianie inicjalizacji AMG8833 po miękkim resecie F7.
Zasilanie i liczniki czasu:
Naprawiono wejście w tryb niskiego poboru mocy H7 (stop/standby) — skalowanie napięcia dla rev V, ponowne włączanie oscylatora/PLL przy wybudzeniu, niski pobór mocy SDRAM z zachowaniem zawartości DRAM, wyłączanie Systick przy wejściu w tryb stop oraz włączanie DBGMCU tylko w buildach debugowych. Naprawiono stan HAL
machine.Timerpo aktualizacji HAL dla H7 oraz cofnięto zmianę priorytetu przerwań odczytu/zapisu SD.
Wyświetlacz i łączność:
Naprawiono konfigurację rozmiaru danych 8/16-bit dla F4 SPI LCD (błędna definicja
MCU_SERIES), zwracanie błędu przy niepowodzeniu inicjalizacji magistrali SPI WINC1500 zamiast cichego kontynuowania oraz użyto statycznego uchwytu SPI, aby uniknąć konfliktów magistrali SPI WINC1500. Naprawiono błąd w mechanizmie GC-collect MicroPython.
System:
unittests.pynie oznacza już zestawu jako nieudany, gdy test jest wyłączony lub niedostępny; usunięto uszkodzone przykładycamera_lcddla nakładki Thermopile.
Sprzęt i obsługa płytek¶
OpenMV Pure Thermal — płytkę zaktualizowano i przemianowano (
OPENMVPURETHERMAL→OPENMVPT), z HDMI CEC.OpenMV 2 — włączono sterownik kamery OV2640.
Arduino Portenta H7 — obsługa Ethernet.
Niekompatybilne zmiany API¶
Widoczne dla użytkownika zmiany niekompatybilne wstecznie w API między v3.7.0 a v3.8.0. Zakres: moduły C Pythona w modules/ oraz biblioteki Pythona w scripts/libraries/.
Każda zmiana jest oznaczona swoim wpływem:
minor — wąskie API; dotyczy tylko skryptów, które go używały.
behavior — to samo API, inne wyniki; ponownie sprawdź dostrojone skrypty.
Zmiany są pogrupowane według wpływu w tej kolejności. Jeśli chcesz po prostu przenieść swój kod, przejdź do listy kontrolnej migracji na końcu. Każdy skrót commita prowadzi do jego diffu na GitHubie.
moduły time / utime scalone (minor)¶
Moduły time i utime zostały scalone, a klasa clock OpenMV przeniesiona do utime. Wszystkie dołączone przykłady zaktualizowano do import utime / clock = utime.clock(). Skrypty polegające na import time dla klasy clock powinny zamiast tego importować utime.
Commity: 20587f308
funkcje DMA dla F4 pyb.DAC wyłączone (minor)¶
Na płytkach opartych o F4 funkcje pyb.DAC wymagające DMA zostały wyłączone, ponieważ sterta F4 znajduje się w CCM, która nie jest dostępna dla DMA. Skrypty F4 używające zapisów do buforów DMA DAC muszą unikać tych funkcji.
Commity: d61f236f2
MicroPython zaktualizowany do 1.13 (behavior)¶
Dołączony rdzeń MicroPython został zaktualizowany do 1.13. Zachowanie biblioteki standardowej i języka jest zgodne z bazowym MicroPython 1.13; ponownie sprawdź skrypty zależne od zachowania micropython / modułów standardowych specyficznego dla danej wersji.
Commity: fb0a5e26d
obsługiwane częstotliwości cpufreq zależą od rewizji (behavior)¶
Dodano więcej częstotliwości CPU i uzależniono je od rewizji krzemu: cpufreq.get_supported_frequencies() zwraca teraz na H7 listę zależną od rewizji (50/100/200/400 MHz na rev X/Y, 60/120/240/480 MHz na rev V). Skrypty, które na stałe wpisywały częstotliwość ze starej, ustalonej listy, powinny w czasie działania odpytywać listę obsługiwanych częstotliwości.
Commity: 825dd0742
Lista kontrolna migracji¶
Dla czystego przeniesienia do v3.8.0 typowa praca to:
Zmień
import timenaimport utimetam, gdzie używasz klasyclock(scalenie time/utime).Na płytkach F4 przestań używać funkcji buforów DMA
pyb.DAC(zmiana F4 DAC).Ponownie zweryfikuj skrypty zależne od zachowania MicroPython specyficznego dla danej wersji względem 1.13 (aktualizacja MicroPython) i odpytuj
cpufreq.get_supported_frequencies()w czasie działania zamiast wpisywać częstotliwość na stałe (zmiana cpufreq).
Wszystkie pozostałe skrypty działają bez zmian.