1. 10 Jul, 2020 1 commit
  2. 09 Jul, 2020 1 commit
  3. 08 Jul, 2020 7 commits
  4. 01 Jul, 2020 11 commits
    • Glenn Ruben Bakke's avatar
      nrf/Makefile: Disable ROM text compression when compiling for debug. · c2317a3a
      Glenn Ruben Bakke authored
      When compiling for debug (-O0) the .text segment cannot fit the flash
      region when MICROPY_ROM_TEXT_COMPRESSION=1, because the compiler does not
      optimise away the large if-else chain used to select the correct compressed
      string.
      
      This commit enforces MICROPY_ROM_TEXT_COMPRESSION=0 when compiling for
      debug (DEBUG=1).
      c2317a3a
    • Glenn Ruben Bakke's avatar
      nrf/bluetooth/ble_uart: Swap end character on cooked strings. · f22f7b28
      Glenn Ruben Bakke authored
      Changing line ending character of cooked strings makes rshell/pyboard.py
      work correctly over Bluetooth socat/pts devices.
      f22f7b28
    • Glenn Ruben Bakke's avatar
      nrf/bluetooth/ble_uart: Fix random advertisement name. · 5996bf72
      Glenn Ruben Bakke authored
      The storage space of the advertisement name is not declared static, leading
      to a random advertisement name.  This commit fixes the issue by declaring
      it static.
      5996bf72
    • Glenn Ruben Bakke's avatar
      nrf/bluetooth/ble_uart: Add mp_hal_stdio_poll function. · ab0c14db
      Glenn Ruben Bakke authored
      This adds support for enabling MICROPY_PY_SYS_STDFILES when running UART
      over Bluetooth (NUS).
      ab0c14db
    • Glenn Ruben Bakke's avatar
      nrf/bluetooth: Handle data length update request. · fc1f22a0
      Glenn Ruben Bakke authored
      The Bluetooth link gets disconnected when connecting from a PC after 30-40
      seconds.  This commit adds handling of the data length update request.  The
      data length parameter pointer is set to NULL in the reply,  letting the
      SoftDevice automatically set values and use them in the data length update
      procedure.
      fc1f22a0
    • Glenn Ruben Bakke's avatar
      nrf/bluetooth/ble_uart: Fix implicit declaration of function. · 9dfb4ae6
      Glenn Ruben Bakke authored
      mp_keyboard_interrupt() triggers a compiler error because the function is
      implicitly declared.  This commit adds "py/runtime.h" to the includes.
      
      Fixes issue #5732.
      9dfb4ae6
    • Jim Mussared's avatar
      unix: Enable uasyncio on dev variant. · 40502813
      Jim Mussared authored
      40502813
    • Jim Mussared's avatar
      unix: Make manifest selection match other ports. · 27abac95
      Jim Mussared authored
      Changes are:
      - The default manifest.py is moved to the variants directory (it's in
        "boards" in other ports).
      - The coverage variant now uses a custom manifest in its variant directory
        to add frzmpy/frzstr.
      - The frzmpy/frzstr tests are moved to variants/coverage/.
      27abac95
    • Andrew Leech's avatar
      Revert "tools/pydfu.py: Respect longer timeouts requested by DFU dev..." · 07f181a2
      Andrew Leech authored
      This reverts commit 4d6f60d4.
      
      This implementation used the timeout as a maximum amount of time needed for
      the operation, when actually the spec and other tools suggest that it's the
      minumum delay needed between subsequent USB transfers.
      07f181a2
    • Andrew Leech's avatar
      stm32/mboot: Disable polling mode by default and use IRQ mode instead. · 494bcad8
      Andrew Leech authored
      Polling mode will cause failures with the mass-erase command due to USB
      timeouts, because the USB IRQs are not being serviced.  Swiching from
      polling to IRQ mode fixes this because the USB IRQs can be serviced between
      page erases.
      
      Note that when the flash is being programmed or erased the MCU is halted
      and cannot respond to USB IRQs, because mboot runs from flash, as opposed
      to the built-in bootloader which is in system ROM.  But the maximum delay
      in responding to an IRQ is the time taken to erase a single page, about
      100ms for large pages, and that is short enough that the USB does not
      timeout on the host side.
      
      Recent tests have shown that in the current mboot code IRQ mode is pretty
      much the same speed as polling mode (within timing error), code size is
      slightly reduced in IRQ mode, and IRQ mode idles at about half of the power
      consumption as polling mode.
      494bcad8
    • Andrew Leech's avatar
      stm32/mboot: Remove the use of timeout in DFU_GETSTATUS. · 95ec0deb
      Andrew Leech authored
      This is treated more like a "delay before continuing" in the spec and
      official tools and does not appear to be really needed.  In particular,
      downloading firmware is much slower with non-zero timeouts because the host
      must pause by the timeout between sending each DFU_GETSTATUS to poll for
      download/erase complete.
      95ec0deb
  5. 30 Jun, 2020 11 commits
  6. 29 Jun, 2020 2 commits
    • Damien George's avatar
    • Andrew Leech's avatar
      stm32/usbd_cdc_interface: Remove full==size-1 limitation on tx ringbuf. · e4fcd216
      Andrew Leech authored
      Before this commit the USB VCP TX ring-buffer used the basic implementation
      where it can only be filled to a maximum of buffer size-1.  For a 1024 size
      buffer this means the largest packet that can be sent is 1023.  Once a
      packet of this size is sent the next byte copied in goes to the final byte
      in the buffer, so must be sent as a 1 byte packet before the read pointer
      can be wrapped around to the beginning.  So in large streaming transfers,
      watching the USB sniffer you basically get alternating 1023 byte packets
      then 1 byte packets.
      
      This commit changes the ring-buffer implementation to a scheme that doesn't
      have the full-size limitation, and the USB VCP driver can now achieve a
      constant stream of full-sized packets.  This scheme introduces a
      restriction on the size of the buffer: it must be a power of 2, and the
      maximum size is half of the size of the index (in this case the index is
      16-bit, so the maximum size would be 32767 bytes rounded to 16384 for a
      power-of-2).  But this is not a big limitation because the size of the
      ring-buffer prior to this commit was restricted to powers of 2 because it
      was using a mask-based method to wrap the indices.
      
      For an explanation of the new scheme see
      https://www.snellman.net/blog/archive/2016-12-13-ring-buffers/
      
      The RX buffer could likely do with a similar change, though as it's not
      read from in chunks like the TX buffer it doesn't present the same issue,
      all that's lost is one byte capacity of the buffer.
      
      USB VCP TX throughput is improved by this change, potentially doubling the
      speed in certain cases.
      e4fcd216
  7. 26 Jun, 2020 7 commits