Commit Graph

24 Commits

Author SHA1 Message Date
Allen Hill cd68ee7267 misc infra/clangd updates 2026-08-13 17:55:46 -07:00
Allen Hill 0bef565564 Speed up Frame printing to (finally) solve missing AVCLAN bus frames
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-13 17:34:15 -07:00
Allen Hill 66dd441610 Max the UART TX buffer size 2026-08-13 16:48:44 -07:00
Allen Hill 3ea7c2d44a Improve correctness of phy_read_startbit invariants/assumptions 2026-08-13 16:31:03 -07:00
Allen Hill 95dae572a0 Tighten up non-reading TCB0 ISR timing 2026-08-13 16:27:22 -07:00
Allen Hill 994759dd39 Free up some ram 2026-08-13 16:24:55 -07:00
Allen Hill eab535db98 fixup 7871e92 2026-08-03 13:30:14 -07:00
Allen Hill 7871e92dbe Fix Debug builds 2026-07-31 17:53:31 -07:00
Allen Hill a99fe56aae Fix intermittent, early boot short start bit errors 2026-07-21 13:22:19 -07:00
Allen Hill 5208e083f3 Redesign (simplify) top-level avclan interface to use expected/nullable unique_ptr
- Peripheral::read/send now return `expected<unique_ptr<Frame>, Error>`
for a unified success/error interface.
- Peripheral::route returns `expected<unique_ptr<Frame>, Error>` to
distinguish intent: (intentional) non-response vs unable to respond
- Other functions with optional message semantics (handle,poll,react)
return a unique_ptr whose ownership-state indicates response intent
(i.e. send new message)

Bundled necessary changes:
- Switch Frame allocation from global to local (enabled via member
  function new/delete)
- Add new header-library tl::expected to shim avr-libstdcpp

Unrelated: Defensive `continue` added after `route`, to reduce Bus
activity check latency

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 14:47:47 -07:00
Allen Hill b194a6df2c Improve/expand C phy docs 2026-07-08 13:51:38 -07:00
Allen Hill 2ed6066609 Fix miscellaneous bugs identified by Claude
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 13:15:59 -07:00
Allen Hill e50bde197d Complete the switch to jnk0le uart lib
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 12:49:01 -07:00
Allen Hill 9fd8c5636e Finalize C <=> C++ interface 2026-07-06 19:39:49 -07:00
Allen Hill e92d61adca Remove redundant conditional 2026-07-06 16:26:28 -07:00
Allen Hill 1c0124edcc Shift avclan_bit_t to avclan.h 2026-07-06 13:55:13 -07:00
Allen Hill a0c6601cda Unify Send/Read error enums 2026-07-06 13:36:53 -07:00
Allen Hill 66bbf8639e Parameterise Peripheral by its Devices and add CDChanger as one 2026-06-27 10:29:34 -07:00
Allen Hill d98cc8acad Add C++ Bus class for the physical layer interface 2026-06-25 20:40:10 -07:00
Allen Hill 1877bb0658 Add C++ Peripheral class 2026-06-25 18:16:38 -07:00
Allen Hill 02b370dd06 Port Queue to C++
Some knock-on changes to keep a simple design:
- Bake the data array into AVCLAN_frame_t
- Bundle the response/reaction with AVCLAN_frame_t
    - (Needed to maintain correct/simple ownership semantics with the
      cache and outgoing/incoming queues)
- Switch status frame update ticks to use a regular
  cache-originating/owned frame
2026-06-25 14:28:19 -07:00
Allen Hill 77ff4652fd Prep for C++ port 2026-06-23 18:29:49 -07:00
Allen Hill c895034bb2 Update copyright headers to use SPDX id's 2026-06-23 17:51:29 -07:00
Allen Hill 0b0c9335f9 Decouple hardware specific code from generic, agnostic code 2026-06-23 17:29:52 -07:00