summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-01-17docs/esp32: Update tutorial flashing steps to match deploy.md.Angus Gratton
Includes fixing the flashing address for newer SoCs, as reported in discussion https://github.com/orgs/micropython/discussions/16417 Also removes some redundant or out of date information, and adds links to the Espressif esptool docs which are quite comprehensive. Information about ESP32_GENERIC variants is moved to the board page, as it only applies to that board. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2025-01-17tools/autobuild,esp32: Template the generation of esp32 port deploy.md.Angus Gratton
Allows two source files (ports/esp32/boards/deploy.md and deploy_nativeusb.md for boards with only native USB) for all esp32 installation steps, with templated chip name and flash offset inserted via string formatting. The new files add more text to explain the esptool.py port auto-detection, remove the unnecessary -z feature (already enabled by default), and add a bit of troubleshooting and port detection info. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2025-01-17stm32/boards: Update Arduino boards to reserve timers and fix USB PID.iabdalkader
Reserve timers used for the camera, and fix USB PID because 0x055F is reserved for MicroPython. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-01-17stm32/boards/ARDUINO_NICLA_VISION: Fix CAN pin assignment.Angus Gratton
The only STM32H747 pins with CAN function that are also broken out on the board are PB8 and PB9. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2025-01-17stm32/fdcan: Fix extended CAN ID filtering for stm32g4.Angus Gratton
The memory bank addresses used for these are independent, can (and must) enable both. Also looks like no need to shrink these if FDCAN2 is added, the Reference Manual is a bit unclear but looks like the peripheral's RAM multiplies out for each additional controller. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2025-01-17stm32/can: Fix clearing filters on CAN3 (bxCAN).Angus Gratton
HAL argument is ignored for CAN1, CAN2 but needed for CAN3. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2025-01-17stm32/pyb_can: Include requested CAN baudrate in matching error.Angus Gratton
This is redundant for bxCAN, but for CAN-FD with BRS it's otherwise unclear which set of parameters (baudrate & sample_point or brs_baudrate & brs_sample_point) failed to match. This makes finding a valid combination extra annoying. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2025-01-17stm32/pyb_can: Make pyb.CAN baud calculation a little more forgiving.Angus Gratton
Not every baudrate or sample point combination has an exact match, but getting within 1% on sample point and .1% on baud rate should always be good enough. Because the search goes from shorter bit periods (lowest brp) and increases, the first match which meets this criteria should still mostly be the best available. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2025-01-17stm32/pyb_can: Fix CAN-FD BRS baud initialisation.Angus Gratton
Was initialising using the Classic CAN bs1/bs2 value, incorrectly. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2025-01-17stm32/boards: Support 'FDCAN' in board pin CSVs.Angus Gratton
Previously micros with the 'FDCAN' peripheral (as opposed to the older 'CAN' peripheral) needed to rename these pins in the CSVs for the CAN driver to work. The following CSVs in MicroPython still had FDCAN in them: $ rg -t csv -l FDCAN boards boards/stm32h7b3_af.csv boards/stm32h743_af.csv boards/stm32h573_af.csv boards/stm32h723_af.csv boards/stm32g0b1_af.csv Confirmed that this allows CAN to work on NUCLEO_H723ZG board, and that at least one board based on each of the other chips can still compile. Some of these boards could possibly have MICROPY_HW_ENABLE_CAN set and work, now. Signed-off-by: Angus Gratton <angus@redyak.com.au>
2025-01-17lib/mbedtls: Update to mbedtls v3.6.2.Glenn Strauss
Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
2025-01-16docs/reference/isr_rules: Describe issue with hard ISRs and globals.peterhinch
Signed-off-by: Damien George <damien@micropython.org>
2025-01-16stm32/boards: Reserve SPI bus when it's used for external flash storage.iabdalkader
Reserve SPI flash bus used for storage or XIP. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-01-16stm32/spi: Retain the state of special SPI buses on soft reboot.iabdalkader
Reserved and static SPI buses must remain initialized during a soft reboot as they may be used for SPI flash storage or XIP. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-01-16stm32/mpconfigboard_common: Add MICROPY_HW_SPI_IS_STATIC macro.iabdalkader
A board should make this return true if the specified SPI instances should not be deinitialized on soft-reboot. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-01-16qemu/boards/SABRELITE.mk: Remove exception for omitted tests.Alessandro Gatti
This commit re-introduces `tests/extmod/vfs_rom.py` and `tests/float/math_domain.py` to the test suite, as the issues that made them fail have now been addressed. Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2025-01-16py/asmarm: Fix halfword loads with larger offsets.Alessandro Gatti
This commit fixes code generation for loading halfwords using an offset greater than 255. The old code blindly encoded the offset into a `LDRH Rd, [Rn, #imm]` opcode, but only the lowest 8 bits would be put into the opcode itself. This commit instead generates a two-opcodes sequence, a constant load into R8, and then `LDRH Rd, [Rn, R8]`. This fixes `tests/extmod/vfs_rom.py` for the qemu/SABRELITE board. Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2025-01-16py/asmarm: Fix locals address loading code generation with large imm.Alessandro Gatti
This commit fixes code generation for loading a local's address if its index is greater than 63. The old code blindly encoded the offset into an `ADD Rd, Rn, #imm` opcode, but only the lowest 8 bits would be put into the opcode itself. This commit instead generates a two-opcodes sequence, a constant load into R8, and then an `ADD Rd, Rn, R8` opcode. This fixes `tests/float/math_domain.py` for the qemu/SABRELITE board. Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2025-01-16qemu/Makefile: Increase GC heap size to 140KiB.Alessandro Gatti
This commit increases the GC heap size from 120KiB to 140KiB, as it is needed to make the full test suite pass on SABRELITE when ran through the armv6 native emitter. This is needed as the code output by the armv6 native emitter is limited to 4-bytes opcodes and thus takes more space than other ARM emitters. To keep things aligned, the RV32 port also got its heap size increased even though it is not needed on that platform right now. Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2025-01-16qemu: Disable native emitter for the MICROBIT board.Alessandro Gatti
The Micro:Bit machine definition in Qemu has soft MMU support enabled, which is currently not compatible with the way MicroPython generates code that needs to call back into non-emitted code. As a stop-gap solution, the native code emitter for the MICROBIT board is turned off. Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2025-01-16qemu/mcu/arm: Dump exception cause and registers on machine error.Alessandro Gatti
When a CPU exception is raised when emulating a Thumb-capable processor, the default exception handler would simply enter in an endless loop without providing any further information. This commit adds a more complete exception handler that dumps to STDOUT the exception cause and the status of the registers at the moment of the exception. Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2025-01-16tools/pyboard.py: Wait a bit before accessing the PTY serial port.Alessandro Gatti
Some PTY targets, namely `NETDUINO2` and `MICROBIT` under Qemu, take a bit more time to present a REPL than usual. The pyboard tool is a bit too impatient and would bail out before any of those targets had a chance to respond to the raw REPL request. Co-authored-by: Damien George <damien@micropython.org> Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2025-01-15tools/autobuild: Don't allow a board to change its ID.Damien George
All board IDs are now the board directory name. Signed-off-by: Damien George <damien@micropython.org>
2025-01-15esp32/boards: Remove remaining "id" entries from board.json.Damien George
This entry was originally used to override the firmware filenames generated by the build server, but these days all filenames should match the board directory name. So, remove the "id" entry and let the default be used. This is a follow-up to 1a99f74063569df0927e1ada0256059fcdef128c (these three boards were added after that change). Signed-off-by: Damien George <damien@micropython.org>
2025-01-15rp2/boards/SPARKFUN_THINGPLUS_RP2350: Add SparkFun Thing Plus RP2350.Dryw Wade
Signed-off-by: Dryw Wade <dryw.wade@sparkfun.com>
2025-01-15tests/extmod/re_sub.py: Fix test execution on Python 3.13.Alessandro Gatti
This commit fixes a test failure for `extmod/re_sub.py` where the code, whilst being correct, would not make the test pass due to a newer Python version than expected. On Python 3.13, running `tests/extmod/re_sub.py` would yield a deprecation warning about `re.sub` not providing the match count as a keyword parameter. This warning would be embedded in the expected test result and thus the test would always fail. Co-authored-by: stijn <stijn@ignitron.net> Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2025-01-14tests/multi_net: Update TLS test certificates and keys.Damien George
They expired in early January 2025. Signed-off-by: Damien George <damien@micropython.org>
2025-01-14tests/README: Update TLS certificate generation instructions.Damien George
Fix the command that converts `ec_key.pem` to `ec_key.der`, and increase the certificate validity to 10 years. Signed-off-by: Damien George <damien@micropython.org>
2025-01-14github/workflows: Use ubuntu-22.04 for unix qemu CI.Damien George
To use an older version of libffi. Signed-off-by: Damien George <damien@micropython.org>
2025-01-14github/workflows: Use Python 3.11 for unix settrace jobs.Damien George
GitHub Actions has updated ubuntu-latest to 24.04, which now defaults CPython to 3.12, which has a known regression with settrace. Fix that by explicitly using CPython 3.11. Signed-off-by: Damien George <damien@micropython.org>
2025-01-11rp2/boards/SPARKFUN_PROMICRO_RP2350: Add SparkFun Pro Micro RP2350.Dryw Wade
Signed-off-by: Dryw Wade <dryw.wade@sparkfun.com>
2025-01-11rp2/machine_bitstream: Tweak MP_HAL_BITSTREAM_NS_OVERHEAD for RP2350.Dryw Wade
See https://github.com/micropython/micropython/issues/16190#issuecomment-2466155919 Signed-off-by: Dryw Wade <dryw.wade@sparkfun.com>
2025-01-11rp2/mphalport: Fix mp_hal_pin_low/high() for pin>=32.Dryw Wade
Fixes issue #16190. Signed-off-by: Dryw Wade <dryw.wade@sparkfun.com>
2025-01-06tools/ci.sh: Run test_full for qemu port CI.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2025-01-06qemu/Makefile: Add test_full target to run a comprehensive test suite.Damien George
The tests now include `--via-mpy` and `--via-mpy --emit native`, which will test more cases of the native emitter under both ARM and RISC-V. Signed-off-by: Damien George <damien@micropython.org>
2025-01-06qemu/boards: Exclude Thumb2 tests and tests failing with native emitter.Damien George
The `asmbcc`, `asmbitops`, `asmconst` and `asmit` tests fail to compile with mpy-cross on armv6 architecture (used by SABRELITE), so explicitly exclude them. The `math_domain` and `vfs_rom` tests fail when compiled to native machine code, so also exclude those unconditionally. Signed-off-by: Damien George <damien@micropython.org>
2025-01-06tests/extmod/vfs_rom.py: Import errno for test.Damien George
It's needed by the test. This previously passed because the compiler (actually parser) optimises away errno constants. Signed-off-by: Damien George <damien@micropython.org>
2025-01-06tests/run-tests.py: Implement getcwd on __FS hook filesystem.Damien George
This method is needed by tests like `extmod/vfs_rom.py`. Signed-off-by: Damien George <damien@micropython.org>
2025-01-06py/asmarm: Allow function state to be larger than 255.Damien George
Co-authored-by: Alessandro Gatti <a.gatti@frob.it> Signed-off-by: Damien George <damien@micropython.org>
2025-01-06py/asmarm: Fix asm_arm_ldrh_reg_reg_offset to emit correct machine code.Damien George
Prior to this fix, the assembler generated `LDRH Rd, [Rn, #imm]!`, so the second `LDRH` from the same origin would load from the wrong base. Co-authored-by: Alessandro Gatti <a.gatti@frob.it> Signed-off-by: Damien George <damien@micropython.org>
2025-01-06tests/run-tests.py: Set __main__ module to __injected_test.Damien George
When using unittest (for example) with injected mpy files, not only does the name of the main test module need to be `__main__`, but also the `__main__` module should correspond to this injected module. Otherwise the unittest test won't be detected. Signed-off-by: Damien George <damien@micropython.org>
2025-01-02py/obj: Make literals unsigned in float get/new functions.Yoctopuce
Fixes gcc warning when -Wsign-conversion is on. Signed-off-by: Yoctopuce <dev@yoctopuce.com>
2025-01-02py/obj: Cast float literals to 64-bit to prevent overflow warning.Yoctopuce
Fixes compilation warning C4307: '+': integral constant overflow. Signed-off-by: Yoctopuce <dev@yoctopuce.com>
2025-01-02extmod/moddeflate: Add missing size_t cast.Yoctopuce
To prevent compiler warnings. Signed-off-by: Yoctopuce <dev@yoctopuce.com>
2025-01-02extmod/modsocket: Add missing static in private function definitions.Yoctopuce
Signed-off-by: Yoctopuce <dev@yoctopuce.com>
2025-01-02shared/timeutils: Add missing mp_uint_t casts.Yoctopuce
To prevent compiler warnings. Signed-off-by: Yoctopuce <dev@yoctopuce.com>
2025-01-02stm32/mboot: Add mboot version string.Victor Rajewski
Adds a configurable version string to a known location at the end of mboot flash section. Also stores the options mboot was built with, eg usb and which filesystems are supported. A board can override the defaults, or disable the version string entirely by setting MBOOT_VERSION_ALLOCATED_BYTES=0. Signed-off-by: Victor Rajewski <victor@allumeenergy.com.au>
2025-01-02tests/run-tests.py: Detect inlineasm support and add tests if needed.Alessandro Gatti
This commit implements a method to detect at runtime if inline assembler support is enabled, and if so which platform it targets. This allows clean test runs even on modified version of ARM-based ports where inline assembler support is disabled, running inline assembler tests on ports that have such feature not enabled by default and manually enabled, and allows to always run the correct inlineasm tests for ports that support more than one architecture (esp32, qemu, rp2). Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2025-01-02rp2/mpconfigport: Enable RV32 inline assembly support.Alessandro Gatti
This commit enables by default inline assembly support for the RP2 target when it is operating in RISC-V mode. This brings the feature set when in RISC-V mode to parity with what's available in ARM mode. Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2025-01-02qemu/main: Make GC heap size configurable on a per-arch basis.Alessandro Gatti
In certain circumstances depending on the code size, the `deflate_decompress` test fails on both ARM and RV32 with a memory allocation failure error. The issue is mitigated by having a larger GC heap, in this case around 20 KBytes more than the original 100 KBytes default. This commit makes the GC heap size configurable on a per-arch basis, with both ARM and RV32 using the enlarged 120 KBytes heap. Signed-off-by: Alessandro Gatti <a.gatti@frob.it>