2023-07-31 | Pigweed Live

40 views
Skip to first unread message

chadn...@google.com

unread,
Jul 31, 2023, 5:22:16 PM7/31/23
to
2023-07-31 | Pigweed Live
Landed recently
Coming soon
  • Automated changelog – see the WIP above!
  • pw_toolchain
    • New modular hermetic toolchains for Bazel projects (pwrev/157634)
  • pw_sync
    • Borrowable support for Mutex and TimedMutex (pwrev/153575)
    • Improved ConditionVariable support for backends beyond pw_sync_stl
  • pw_system
    • Device and console will properly terminate reading threads and avoid repeated errors when serial device is disconnected
Agenda
Pigweed sensors design -
  • ChromeOS team is working on upstreaming much of the CHRE code to Zephyr
  • We’ve realized there’s a sensor interface that isn’t specific to Zephyr or any RTOS that could be pulled out into a Pigweed module
  • Essentially a pub-sub model
  • Two demos as part of the pitch to Zephyr
  • Zephyr uses a version of the Linux io_uring for managing async tasks. This proposes to use pw_async instead with a similar model, with the benefit that you can push the task itself to the queue instead of metadata describing a task. But there is risk in allowing the execution of arbitrary tasks instead of a finite set of defined tasks.
  • Zephyr relies heavily on linker scripts, and the proposal includes an optional linker section to create an iterable of sensor objects. But linker scripts are not very portable, e.g., probably won’t work on Windows. Could borrow the service registration vector concept from pw_rpc.
  • Comments? Leave them in the doc
Comms 2.0 trailhead SEED -
  • SEEDRendered version
  • Pigweed has great stuff at the application layer, but to use it you have to cobble together the lower layers
  • The SEED proposes a sockets API (conceptually similar to POSIX sockets) backed up by various network layer options that the socket user doesn’t need to worry about
  • This could replace the channel API in pw_rpc – would use sockets instead
  • Backup up the sockets with TCP/IP makes a lot of sense, and systems that have a full TCP/IP stack can use it. But that stack is too big for many embedded systems and provides features that are not relevant to them. In those cases, a custom TCP/IP-like network stack could be used instead.
  • Comments? Leave them as comments in the CL
 
Sent
Reply all
Reply to author
Forward
0 new messages