1. 13 7月, 2023 1 次提交
  2. 27 6月, 2023 1 次提交
  3. 08 6月, 2023 4 次提交
  4. 27 4月, 2023 1 次提交
  5. 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
  6. 27 10月, 2022 1 次提交
  7. 18 8月, 2022 1 次提交
    • D
      all: Remove MICROPY_PY_IO_FILEIO config option. · 8f4c1080
      Damien George 提交于
      Since commit e65d1e69 there is no longer an
      io.FileIO class, so this option is no longer needed.
      
      This option also controlled whether or not files supported being opened in
      binary mode (eg 'rb'), and could, if disabled, lead to confusion as to why
      opening a file in binary mode silently did the wrong thing (it would just
      open in text mode if MICROPY_PY_IO_FILEIO was disabled).
      
      The various VFS implementations (POSIX, FAT, LFS) were the only places
      where enabling this option made a difference, and in almost all cases where
      one of these filesystems were enabled, MICROPY_PY_IO_FILEIO was also
      enabled.  So it makes sense to just unconditionally enable this feature
      (ability to open a file in binary mode) in all cases, and so just remove
      this config option altogether.  That makes configuration simpler and means
      binary file support always exists (and opening a file in binary mode is
      arguably more fundamental than opening in text mode, so if anything should
      be configurable then it should be the ability to open in text mode).
      Signed-off-by: NDamien George <damien@micropython.org>
      8f4c1080
  8. 26 7月, 2022 1 次提交
  9. 18 7月, 2022 5 次提交
  10. 03 6月, 2022 1 次提交
  11. 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
  12. 18 5月, 2022 1 次提交
  13. 04 5月, 2022 1 次提交
  14. 29 4月, 2022 1 次提交
  15. 14 4月, 2022 1 次提交
  16. 07 4月, 2022 1 次提交
  17. 24 3月, 2022 1 次提交
  18. 09 3月, 2022 2 次提交
  19. 03 2月, 2022 1 次提交
  20. 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
  21. 30 12月, 2021 1 次提交
  22. 13 11月, 2021 1 次提交
  23. 01 11月, 2021 2 次提交
  24. 19 9月, 2021 1 次提交
  25. 16 9月, 2021 2 次提交
    • 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
    • J
  26. 14 9月, 2021 1 次提交
  27. 02 9月, 2021 2 次提交
  28. 20 8月, 2021 1 次提交
  29. 19 8月, 2021 1 次提交