1. 24 Aug, 2019 3 commits
    • danukeru's avatar
      feat(serial): Funnel writes through a stream-buffer · 48a84389
      danukeru authored and Rahix's avatar Rahix committed
      
      
      Previously, race-conditions between multiple serial writes could lead to
      memory corruption and weird artifacts like I2C getting stuck.  This
      patch introduces a write-streambuffer which queues all messages.
      Co-authored-by: Rahix's avatarRahix <rahix@rahix.de>
      Signed-off-by: default avatardanukeru <danukeru@foulab.org>
      48a84389
    • swym's avatar
      feat(epicardium): Add ESB module · 9b0fd54f
      swym authored and Rahix's avatar Rahix committed
      usb/epc_usb
      ====
      Contains device-independent USB implementation, services MAXUSB stack
      and is given the actual USB descriptors & callbacks on initialization.
      Handles USB events and configures/deconfigures the device accordingly
      during the USB setup procedure.
      
      usb/mass_storage & cdcacm
      ====
      Contain device-specific implementations, service MAXUSB's device class
      APIs for cdcacm and mass storage.
      Here, mass storage is independent of the underlying storage device.
      
      modules/usb
      ====
      Public apic_usb API, configuration and storage device management.
      Defines the actual USB device descriptors and services the upc_usb API.
      
      If we want to add SD card functionality, this would be the place to add
      it.
      9b0fd54f
    • Rahix's avatar
      fix(serial): Perform serial prints in a critical section · 32681478
      Rahix authored
      
      
      Sometimes during initialization, one `log_msg()` intercepts another one,
      leading to a whole lot of weird issues in other modules (like I2C).  I
      suspect this to be memory corruption of some kind.  The issues can be
      fixed by performing serial prints in a critical section, thus ensuring
      atomicity of prints.  Note that this does not mean log messages will not
      interleave.
      
      The CDC-ACM and BLE-Serial writes cannot be put into a critical section
      and are thus a point where this code can still fail.  For now, however,
      this fix ensures the race-conditions during startup, where USB and BLE
      are not yet running, don't happen anymore.
      Signed-off-by: Rahix's avatarRahix <rahix@rahix.de>
      32681478
  2. 15 Aug, 2019 1 commit
  3. 06 Aug, 2019 1 commit
  4. 03 Aug, 2019 3 commits
  5. 21 Jul, 2019 1 commit
  6. 20 Jul, 2019 2 commits
  7. 11 Jul, 2019 1 commit
  8. 06 Jul, 2019 1 commit
  9. 05 Jul, 2019 1 commit
  10. 04 Jul, 2019 2 commits
  11. 03 Jul, 2019 2 commits