- 06 Dec, 2023 13 commits
-
-
iabdalkader authored
This is usually called on soft-reboot, a NIC can implement this to do any necessary cleaning up (such as invalidating root pointers). Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
-
Damien George authored
Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
This adds tests for, eg, -inf + inf which should be nan. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
This commit fixes all known floating-point bugs with the pico-sdk. There are two things going on here: - Use a custom pico float component so that the pico-sdk doesn't include its math functions, and then provide our own from lib/libm. - Provide a wrapper for __aeabi_fadd to fix the infinity addition bug. Prior to this commit, the following tests failed on the rp2 port: cmath_fun float_parse math_domain math_domain_special math_fun_special. With this commit, all these tests pass. Thanks to @projectgus for how to approach this fix. Signed-off-by: Damien George <damien@micropython.org>
-
Scott Zhao authored
The installation instructions for ESP32 TinyPICO board contained a typo that used a non-standard baud rate 912600 instead of 921600. This made the upload command fail on some Windows computers. Signed-off-by: Scott Zhao <zhaomh1998@outlook.com>
-
Thomas Wenrich authored
The user memory area - accessible by machine.RTC.memory() -- will now survive most reboot causes. A power-on reset (also caused by the EN pin on some boards) will clean the memory. When this happens, the magic number not found in the user memory will cause initialization. After other resets (triggered by watchdogs, machine.reset(), ...), the user is responsible to check and validate the contents of the user area. This new behaviour can be changed by enabling MICROPY_HW_RTC_MEM_INIT_ALWAYS: in that case the RTC memory is always cleared on boot. Signed-off-by: Thomas Wenrich <twenrich@gmail.com>
-
Damien George authored
Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
The amount of free IRAM in ESP32 SPIRAM builds is very small and went over the limit due to commit 30b0ee34. This commit enables further optimisations to reduce IRAM usage. Signed-off-by: Damien George <damien@micropython.org>
-
Angus Gratton authored
CCaches are scoped per-job. Uses https://github.com/hendrikmuhs/ccache-action to get desired behaviour (updating the cache on each run). Signed-off-by: Angus Gratton <angus@redyak.com.au>
-
Angus Gratton authored
This is for consistency with the previous commit that uses this approach for esp32. Signed-off-by: Angus Gratton <angus@redyak.com.au>
-
Angus Gratton authored
Allows splitting the esp32 job into multiple parts without too much boilerplate. The matrix is parameterised using the name of the function to call in tools/ci.sh, to minimise the dependency on GitHub Actions. This can get esp32 build times down around 3m if IDF is cached already. If the cache is cold, the cache preparation step on each job can double up against each other. However, restructuring the workflow to not do this seems either complex or requires copy-pasting the entire cache step. Signed-off-by: Angus Gratton <angus@redyak.com.au>
-
Angus Gratton authored
Cache is keyed on the ESP-IDF version used in CI, so there shouldn't be any cache invalidation issues when ESP-IDF version changes. Restoring from cache takes approx 15s, compared to 2-3m to perform these steps (ESP-IDF tools install, ESP-IDF clone, ESP-IDF submodule clone) the first time. Cache size is approx 1.6GB, the git clone is tweaked as much as possible to keep the size down. Signed-off-by: Angus Gratton <angus@redyak.com.au>
-
MikeTeachman authored
Configures the I2S PLL to produce a frequency that the I2S clock generator can use to create an optimal SCK frequency. The I2S PLL configuration table is automatically generated at build time. Fixes issue #10280. Signed-off-by: Mike Teachman <mike.teachman@gmail.com>
-
- 04 Dec, 2023 3 commits
-
-
Damien George authored
This was broken by commit 48b5a7b0. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
This board has MICROPY_VFS enabled, which should take precedence over MICROPY_MBFS (and did prior to 22d9116c). Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
This should have been enabled in 48b5a7b0 but was missed. Signed-off-by: Damien George <damien@micropython.org>
-
- 03 Dec, 2023 1 commit
-
-
Carlosgg authored
Signed-off-by: Carlos Gil <carlosgilglez@gmail.com>
-
- 01 Dec, 2023 6 commits
-
-
Damien George authored
All ports using this common configuration already enable time/date validation, so this commit is a no-op change. Signed-off-by: Damien George <damien@micropython.org>
-
Carlosgg authored
To match other ports. Signed-off-by: Carlos Gil <carlosgilglez@gmail.com>
-
Damien George authored
Also move MICROPY_PY_PENDSV_ENTER/REENTER/EXIT to mphalport.h, for ports where these are not already there. This helps separate the hardware implementation of these macros from the MicroPython configuration (eg for renesas-ra and stm32, the IRQ static inline helper functions can now be moved to irq.h). Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
MICROPY_BEGIN_ATOMIC_SECTION/MICROPY_END_ATOMIC_SECTION belong more to the MicroPython HAL rather than build configuration settings, so move their default configuration to py/mphal.h, and require all users of these macros to include py/mphal.h (here, py/objexcept.c and py/scheduler.c). This helps ports separate configuration from their HAL implementations, and can improve build times (because mpconfig.h is included everywhere, whereas mphal.h is not). Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Or this port may end up accidentally including unwanted headers from stm32. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Signed-off-by: Damien George <damien@micropython.org>
-
- 30 Nov, 2023 17 commits
-
-
Damien George authored
Changes: - os.uname() is removed to save space; sys.version and sys.implementation can be used instead. - os.sync() now uses the common extmod version and syncs by calling the FAT FS sync function, which eventually calls sflash_disk_flush(). Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Tested on a WIPY. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
The os.dupterm() function has changed on this port, it now matches the semantics used by all other ports (except it's restricted to accept only machine.UART objects). Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
To make this a little more consistent with other ports. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Now that the MICROPY_BEGIN_ATOMIC_SECTION/MICROPY_END_ATOMIC_SECTION macros act the same as disable_irq/enable_irq, it's possible to use the common extmod implementation of these machine functions. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
By disabling ets_loop_iter when the atomic section is active. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
This commit changes the cc3200 port to use the common machine implementation of machine.disable_irq() and machine.enable_irq(). This eliminates its dependency on the stm32 port's code. The behaviour of cc3200 for these functions is changed: - disable_irq() now returns an (opaque) integer rather than a bool - enable_irq(state) must be passed and argument, which is the return value of disable_irq() rather than a bool Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
The ports esp32, mimxrt, rp2 and samd all shared exactly the same implementation of machine.disable_irq() and machine.enable_irq(), implemented in terms of MICROPY_{BEGIN,END}_ATOMIC_SECTION. This commit factors these implementations into extmod/modmachine.c. The cc3200, esp8266, nrf, renesas-ra and stm32 ports do not yet use this common implementation. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Minor changes for consistency are: - nrf gains: unique_id(), freq() [they do nothing] - samd: deepsleep() now resets after calling lightsleep() - esp32: lightsleep()/deepsleep() no longer take kw arg "sleep", instead it's positional to match others. also, passing 0 here will now do a 0ms sleep instead of acting like nothing was passed. reset_cause() no longer takes any args (before it would just ignore them) - mimxrt: freq() with an argument and lightsleep() both raise NotImplementedError Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
And use it in qemu-arm, unix and windows ports to enable PinBase. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
And use it in all ports. The ports are unchanged, except esp8266 which now just returns None from this function instead of the time elapsed (to match other ports), and qemu-arm which gains this function. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
This is a code factoring to have the dict for the machine module in one location, and all the ports use that same dict. The machine.soft_reset() function implementation is also factored because it's the same for all ports that did already implement it. Eventually more functions/bindings can be factored. All ports remain functionally the same, except: - cc3200 port: gains soft_reset, mem8, mem16, mem32, Signal; loses POWER_ON (which was a legacy constant, replaced long ago by PWRON_RESET) - nrf port: gains Signal - qemu-arm port: gains soft_reset - unix port: gains soft_reset - zephyr port: gains soft_reset, mem8, mem16, mem32 Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
MICROPY_HW_ENABLE_HW_I2C and MICROPY_PY_MACHINE_I2C are equivalent, so just use the latter. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Prior to this change, if a board did not define any hardware I2C pins, via MICROPY_HW_I2Cx_SCL, then machine.I2C would alias to machine.SoftI2C. That doesn't really make sense, and SoftI2C should always be used if there is no hardware implementation. So this commit makes it so that machine.I2C is only available if at least one set of I2C hardware pins are defined via the MICROPY_HW_I2Cx_SCL/SDA macros. For all boards that define at least one set of I2C hardware pins (which is most of them) this commit is a no-op. The only boards that change are: LEGO_HUB_NO6, LEGO_HUB_NO7, STM32H7B3I_DK. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
MICROPY_PY_MACHINE_SPI is defined in mpconfigport.h to be equal to MICROPY_PY_MACHINE_HW_SPI, so they are equivalent options. The former one is preferred because it's used by all other ports. The default in mpconfigport.h is to enable this option, and all boards that enable SPI have this removed from their mpconfigboard.h file so they pick up the default. Signed-off-by: Damien George <damien@micropython.org>
-