1. 13 7月, 2023 2 次提交
  2. 08 6月, 2023 4 次提交
  3. 27 4月, 2023 1 次提交
  4. 26 4月, 2023 1 次提交
    • J
      extmod/btstack: Fix indicate/notify queuing. · 256f47e2
      Jim Mussared 提交于
      This adds a mechanism to track a pending notify/indicate operation that
      is deferred due to the send buffer being full. This uses a tracked alloc
      that is passed as the content arg to the callback.
      
      This replaces the previous mechanism that did this via the global pending
      op queue, shared with client read/write ops.
      Signed-off-by: NJim Mussared <jim.mussared@gmail.com>
      256f47e2
  5. 28 2月, 2023 1 次提交
    • J
      extmod/modnetwork: Add network.hostname() and network.country(). · a3773026
      Jim Mussared 提交于
      This provides a standard interface to setting the global networking config
      for all interfaces and interface types.
      
      For ports that already use either a static hostname (mimxrt, rp2) they will
      now use the configured value. The default is configured by the port
      (or optionally the board).
      
      For interfaces that previously supported .config(hostname), this is still
      supported but now implemented using the global network.hostname.
      
      Similarly, pyb.country and rp2.country are now deprecated, but the methods
      still exist (and forward to network.hostname).
      
      Because ESP32/ESP8266 do not use extmod/modnetwork.c they are not affected
      by this commit.
      Signed-off-by: NJim Mussared <jim.mussared@gmail.com>
      a3773026
  6. 16 2月, 2023 1 次提交
    • R
      shared/runtime/softtimer: Use consistently the same clock source. · de1f1dd1
      robert-hh 提交于
      Before, both uwTick and mp_hal_ticks_ms() were used as clock source.  That
      assumes, that these two are synchronous and start with the same value,
      which may be not the case for all ports.  If the lag between uwTick and
      mp_hal_ticks_ms() is larger than the timer interval, the timer would either
      rush up until the times are synchronous, or not start until uwTick wraps
      over.
      
      As suggested by @dpgeorge, MICROPY_SOFT_TIMER_TICKS_MS is now used in
      softtimer.c, which has to be defined in a port's mpconfigport.h with
      the variable that holds the SysTick counter.
      
      Note that it's not possible to switch everything in softtimer.c to use
      mp_hal_ticks_ms() because the logic in SysTick_Handler that schedules
      soft_timer_handler() uses (eg on mimxrt) the uwTick variable directly
      (named systick_ms there), and mp_hal_ticks_ms() uses a different source
      timer.  Thus it is made fully configurable.
      de1f1dd1
  7. 15 12月, 2022 1 次提交
    • J
      extmod/modnetwork: Use a type protocol to implement NIC functions. · 5f8f32f9
      Jim Mussared 提交于
      This was previously implemented by adding additional members to the
      mp_obj_type_t defined for each NIC, which is difficult to do cleanly with
      the new object type slots mechanism. The way this works is also not
      supported on GCC 8.x and below.
      
      Instead replace it with the type protocol, which is a much simpler way of
      achieving the same thing.
      
      This affects the WizNet (in non-LWIP mode) and Nina NIC drivers.
      
      This work was funded through GitHub Sponsors.
      Signed-off-by: NJim Mussared <jim.mussared@gmail.com>
      5f8f32f9
  8. 27 10月, 2022 1 次提交
  9. 11 10月, 2022 1 次提交
    • J
      extmod: Make extmod.mk self-contained. · d6d87225
      Jim Mussared 提交于
      This makes it so that all a port needs to do is set the relevant variables
      and "include extmod.mk" and doesn't need to worry about adding anything to
      OBJ, CFLAGS, SRC_QSTR, etc.
      
      Make all extmod variables (src, flags, etc) private to extmod.mk.
      
      Also move common/shared, extmod-related fragments (e.g. wiznet, cyw43,
      bluetooth) into extmod.mk.
      
      Now that SRC_MOD, CFLAGS_MOD, CXXFLAGS_MOD are unused by both extmod.mk
      (and user-C-modules in a previous commit), remove all uses of them from
      port makefiles.
      Signed-off-by: NJim Mussared <jim.mussared@gmail.com>
      d6d87225
  10. 26 8月, 2022 1 次提交
  11. 26 7月, 2022 1 次提交
  12. 18 7月, 2022 6 次提交
  13. 07 6月, 2022 1 次提交
  14. 03 6月, 2022 1 次提交
  15. 25 5月, 2022 1 次提交
    • D
      ports: Use default VFS config for import_stat and builtin_open. · 6e71cde6
      Damien George 提交于
      For ports with MICROPY_VFS and MICROPY_PY_IO enabled their configuration
      can now be simplified to use the defaults for mp_import_stat and
      mp_builtin_open.
      
      This commit makes no functional change, except for the following minor
      points:
      - the built-in "open" is removed from the minimal port (it previously did
        nothing)
      - the duplicate built-in "input" is removed from the esp32 port
      - qemu-arm now delegates to VFS import/open
      Signed-off-by: NDamien George <damien@micropython.org>
      6e71cde6
  16. 18 5月, 2022 2 次提交
  17. 05 5月, 2022 1 次提交
  18. 14 4月, 2022 1 次提交
  19. 07 4月, 2022 1 次提交
  20. 24 3月, 2022 1 次提交
  21. 09 3月, 2022 2 次提交
  22. 03 2月, 2022 1 次提交
  23. 07 1月, 2022 1 次提交
    • D
      mimxrt,stm32: Enable MICROPY_PY_USSL_FINALISER. · 1892d037
      Damien George 提交于
      This is needed because these ports allocate mbedtls data on the MicroPython
      heap, and SSL socket objects must be fully cleaned up when they are garbage
      collected, to free this memory allocated by mbedtls.  As part of this,
      gc_sweep_all() will now ensure that the MP_STATE_PORT(mbedtls_memory)
      linked-list is fully deallocated on soft reset.
      Signed-off-by: NDamien George <damien@micropython.org>
      1892d037
  24. 30 12月, 2021 1 次提交
  25. 13 11月, 2021 1 次提交
  26. 01 11月, 2021 2 次提交
  27. 19 9月, 2021 1 次提交
  28. 16 9月, 2021 1 次提交
    • J
      all: Remove MICROPY_OPT_CACHE_MAP_LOOKUP_IN_BYTECODE. · b326edf6
      Jim Mussared 提交于
      This commit removes all parts of code associated with the existing
      MICROPY_OPT_CACHE_MAP_LOOKUP_IN_BYTECODE optimisation option, including the
      -mcache-lookup-bc option to mpy-cross.
      
      This feature originally provided a significant performance boost for Unix,
      but wasn't able to be enabled for MCU targets (due to frozen bytecode), and
      added significant extra complexity to generating and distributing .mpy
      files.
      
      The equivalent performance gain is now provided by the combination of
      MICROPY_OPT_LOAD_ATTR_FAST_PATH and MICROPY_OPT_MAP_LOOKUP_CACHE (which has
      been enabled on the unix port in the previous commit).
      
      It's hard to provide precise performance numbers, but tests have been run
      on a wide variety of architectures (x86-64, ARM Cortex, Aarch64, RISC-V,
      xtensa) and they all generally agree on the qualitative improvements seen
      by the combination of MICROPY_OPT_LOAD_ATTR_FAST_PATH and
      MICROPY_OPT_MAP_LOOKUP_CACHE.
      
      For example, on a "quiet" Linux x64 environment (i3-5010U @ 2.10GHz) the
      change from CACHE_MAP_LOOKUP_IN_BYTECODE, to LOAD_ATTR_FAST_PATH combined
      with MAP_LOOKUP_CACHE is:
      
      diff of scores (higher is better)
      N=2000 M=2000       bccache -> attrmapcache      diff      diff% (error%)
      bm_chaos.py        13742.56 ->   13905.67 :   +163.11 =  +1.187% (+/-3.75%)
      bm_fannkuch.py        60.13 ->      61.34 :     +1.21 =  +2.012% (+/-2.11%)
      bm_fft.py         113083.20 ->  114793.68 :  +1710.48 =  +1.513% (+/-1.57%)
      bm_float.py       256552.80 ->  243908.29 : -12644.51 =  -4.929% (+/-1.90%)
      bm_hexiom.py         521.93 ->     625.41 :   +103.48 = +19.826% (+/-0.40%)
      bm_nqueens.py     197544.25 ->  217713.12 : +20168.87 = +10.210% (+/-3.01%)
      bm_pidigits.py      8072.98 ->    8198.75 :   +125.77 =  +1.558% (+/-3.22%)
      misc_aes.py        17283.45 ->   16480.52 :   -802.93 =  -4.646% (+/-0.82%)
      misc_mandel.py     99083.99 ->  128939.84 : +29855.85 = +30.132% (+/-5.88%)
      misc_pystone.py    83860.10 ->   82592.56 :  -1267.54 =  -1.511% (+/-2.27%)
      misc_raytrace.py   21490.40 ->   22227.23 :   +736.83 =  +3.429% (+/-1.88%)
      
      This shows that the new optimisations are at least as good as the existing
      inline-bytecode-caching, and are sometimes much better (because the new
      ones apply caching to a wider variety of map lookups).
      
      The new optimisations can also benefit code generated by the native
      emitter, because they apply to the runtime rather than the generated code.
      The improvement for the native emitter when LOAD_ATTR_FAST_PATH and
      MAP_LOOKUP_CACHE are enabled is (same Linux environment as above):
      
      diff of scores (higher is better)
      N=2000 M=2000        native -> nat-attrmapcache  diff      diff% (error%)
      bm_chaos.py        14130.62 ->   15464.68 :  +1334.06 =  +9.441% (+/-7.11%)
      bm_fannkuch.py        74.96 ->      76.16 :     +1.20 =  +1.601% (+/-1.80%)
      bm_fft.py         166682.99 ->  168221.86 :  +1538.87 =  +0.923% (+/-4.20%)
      bm_float.py       233415.23 ->  265524.90 : +32109.67 = +13.756% (+/-2.57%)
      bm_hexiom.py         628.59 ->     734.17 :   +105.58 = +16.796% (+/-1.39%)
      bm_nqueens.py     225418.44 ->  232926.45 :  +7508.01 =  +3.331% (+/-3.10%)
      bm_pidigits.py      6322.00 ->    6379.52 :    +57.52 =  +0.910% (+/-5.62%)
      misc_aes.py        20670.10 ->   27223.18 :  +6553.08 = +31.703% (+/-1.56%)
      misc_mandel.py    138221.11 ->  152014.01 : +13792.90 =  +9.979% (+/-2.46%)
      misc_pystone.py    85032.14 ->  105681.44 : +20649.30 = +24.284% (+/-2.25%)
      misc_raytrace.py   19800.01 ->   23350.73 :  +3550.72 = +17.933% (+/-2.79%)
      
      In summary, compared to MICROPY_OPT_CACHE_MAP_LOOKUP_IN_BYTECODE, the new
      MICROPY_OPT_LOAD_ATTR_FAST_PATH and MICROPY_OPT_MAP_LOOKUP_CACHE options:
      - are simpler;
      - take less code size;
      - are faster (generally);
      - work with code generated by the native emitter;
      - can be used on embedded targets with a small and constant RAM overhead;
      - allow the same .mpy bytecode to run on all targets.
      
      See #7680 for further discussion.  And see also #7653 for a discussion
      about simplifying mpy-cross options.
      Signed-off-by: NJim Mussared <jim.mussared@gmail.com>
      b326edf6