1. 27 Apr, 2022 4 commits
    • Earle F. Philhower, III's avatar
      Update to major version 2.0.0 · 541e23d6
      Earle F. Philhower, III authored
      541e23d6
    • Earle F. Philhower, III's avatar
      Make default CPU speed 133MHz (#557) · 65fe1767
      Earle F. Philhower, III authored
      The chip supports 133MHz and the other Pico core already defaults to
      the higher speed, so make 133 the default.
      
      It can still be changed through the menus and will stay at 125 unless
      pre-existing users change it so they will see no difference.
      65fe1767
    • Earle F. Philhower, III's avatar
      Fix memory corruption introducted in FreeRTOS port (#556) · cfc91804
      Earle F. Philhower, III authored
      To remove compiler warning the valid core macro was modified to only check
      that the core passed in was < # of total cores.  Unfortunately there are
      parts of the FreeRTOS code where the passed in core # is -1.  The upstream
      catches this and returns FALSE, but my hacked version returned TRUE.  This
      caused interesting memory corruption errors and crashes when the
      current task block[-1] was updated.
      
      Undo the change and fix the 1 spot where a warning happens instead.
      
      Undo the forced compiler -O0 for port.c, it was only masking the fault.
      cfc91804
    • Earle F. Philhower, III's avatar
      Additional FreeRTOS adjustments (#555) · 88d213a3
      Earle F. Philhower, III authored
      Use low power WFE when idle.
      
      Set PORT.C to built `-O0` always because it seems to occasinally end
      up with interrupts disabled in task code, causing the SYSTICK never to
      fire and killing task switching.
      
      No need for dynamic exceptions.  We don't move the execbase.
      88d213a3
  2. 26 Apr, 2022 2 commits
  3. 25 Apr, 2022 4 commits
    • Andy2No's avatar
      Update SimpleTone.ino (#552) · 797abb5a
      Andy2No authored
      Adds code to define which pins are used, moving them from the defaults, which are the same as the only three analogue input pins, and adding comments to explain how to change them.
      
      The original didn't give any clues about which pins were used, which isn't ideal for a beginner - it was necessary to look at the code for the library, to work that out.
      
      The new code redundantly defines a pWS pin number (as pBCLK+1), which isn't used in the example, but is meant as a reminder to the person using it, of how to wire up WS.
      797abb5a
    • Earle F. Philhower, III's avatar
    • Earle F. Philhower, III's avatar
    • Earle F. Philhower, III's avatar
      Add FreeRTOS support thanks to @hfellner (#533) · bda630e4
      Earle F. Philhower, III authored
      Using all the work from @hfellner and others, add FreeRTOS
      SMP support.
      
      Allow idling cores through the FreeRTOS FIFO queue to
      allow for file system and EEPROM support.
      
      Make delay a weak function so FreeRTOS can override.
      
      Add cycle count support under FreeRTOS using a PIO SM.
      
      Use a task-based approach for handling the USB periodic work
      instead of the IRQ-based one in the main core.
      
      Set 8 prio levels so it fits in 3 bits nicely (0..7).
      bda630e4
  4. 24 Apr, 2022 3 commits
  5. 22 Apr, 2022 3 commits
  6. 17 Apr, 2022 2 commits
  7. 16 Apr, 2022 1 commit
  8. 10 Apr, 2022 1 commit
  9. 09 Apr, 2022 1 commit
  10. 30 Mar, 2022 1 commit
  11. 29 Mar, 2022 1 commit
  12. 17 Mar, 2022 1 commit
  13. 16 Mar, 2022 2 commits
    • randomllama's avatar
    • Earle F. Philhower, III's avatar
      Avoid "chunkiness" of UART FIFO availability (#511) · 53043830
      Earle F. Philhower, III authored
      * Avoid "chunkiness" of UART FIFO availability
      
      The UART FIFO will generate an IRQ to transfer data into the SerialUART
      FIFOs either every 4 received bytes, or every 4 idle byte times.  This
      causes the ::available count to report "0" until either of those two
      cases happen, causing a potentially delay in data becoming available to
      the app.
      
      Change the code to pull data from the HW FIFO on a read/available/peek.
      Use a non-blocking mutex and IRQ disabling to safely empty the FIFO from
      user space.  The mutex added to the IRQ is non-blocking and will be
      a single CAS the vast majority of the time, so it should not impact the
      Serial performance.
      
      Fixes #464 and others where `setPollingMode()` was needed as a workaround.
      
      Make sure we have all mutexes locked before we disable the port and free
      the queue to avoid evil cases.
      
      Only init the mutexes once, on object creation.
      
      In polled mode, don't bother acquiring/releasing the fifo mutex.
      
      When begin() is called on an already running port, call end() to clean
      up the old data/etc. before making a new queue/config.  This avoids a
      memory leak and potential write-after-free case.
      53043830
  14. 14 Mar, 2022 1 commit
  15. 06 Mar, 2022 1 commit
  16. 05 Mar, 2022 1 commit
  17. 24 Feb, 2022 3 commits
  18. 23 Feb, 2022 2 commits
  19. 22 Feb, 2022 1 commit
  20. 20 Feb, 2022 4 commits
  21. 19 Feb, 2022 1 commit