367: dma: don't swap buffers r=jordens a=jordens
* This uses a new closure-based method to the DMA HAL implementation which
gives access to the inactive buffer directly.
* It removes changing addresses, the third buffer for DBM, the inactive
address poisoning, and allows the cancellation of the redundant repeat
memory barriers and compiler fences.
* This is now around 20 instructions per buffer down from about 100 cycles
before.
* Also introduces a new `SampleBuffer` type alias.
* The required unpacking of the resources structure is a bit annoying
but could probably abstraced away.
* Reduced pounder capture rate to the batch rate using the prescaler.
* Removes the Pounder Timestamper DMA (close#260)
TODO:
* [x] Tested that dual-iir still works
* [x] Tested that DMA overflows are signaled as panics (batch size 1 at full rate)
* [x] Adapt `lockin`
* [x] Tested on FLS without pounder timestamp DMA.
Co-authored-by: Robert Jördens <rj@quartiq.de>
* master:
adapt to new heapless/serde-json-core after const-generics
Bump serde-json-core from 0.3.0 to 0.4.0
build(deps): bump heapless from 0.6.1 to 0.7.1
setup: cleanup
itcm: add some comments, make it safe
build(deps): bump ndarray from 0.15.1 to 0.15.2
Updating dependencies
Updating the embedded-nal
Removing spurious settings updates
deps: add rationales for git dependencies
itcm: implement in rust and execute during setup()
remove duplicate linker option
gha: install gcc
fmt
dependencies: align with master
bump cortex-m-rt to 0.6.13+git
memory.x: remove comment about old cortex-m-rt
enable itcm/dtcm explicitly
load process into itcm
371: rj/pounder fixes r=jordens a=jordens
- pounder: simplify attenuator spi interface
- deps: use mcp23017 release
- attenuators: use robust latching sequence
- rf_power: fix measurement
- pounder io extender: hack around some bug
- pounder: fix attenuator indices (latch and shiftreg)
- pounder: enum for gpio ext pins
- ad9959: refactor pad()
One big issue was the apparently broken mcp23017 `digital_write`. I couldn't get it to work.
For now, and since (a) we aren't handling the other pins in any configurable way, and (b) the readback-style modification is slow let's just to whole-port writes of constants.
Co-authored-by: Robert Jördens <rj@quartiq.de>
* master:
adapt to new heapless/serde-json-core after const-generics
Bump serde-json-core from 0.3.0 to 0.4.0
build(deps): bump heapless from 0.6.1 to 0.7.1
setup: cleanup
itcm: add some comments, make it safe
build(deps): bump ndarray from 0.15.1 to 0.15.2
Updating dependencies
Updating the embedded-nal
deps: add rationales for git dependencies
itcm: implement in rust and execute during setup()
remove duplicate linker option
gha: install gcc
fmt
dependencies: align with master
bump cortex-m-rt to 0.6.13+git
memory.x: remove comment about old cortex-m-rt
enable itcm/dtcm explicitly
load process into itcm
* master:
adapt to new heapless/serde-json-core after const-generics
Bump serde-json-core from 0.3.0 to 0.4.0
build(deps): bump heapless from 0.6.1 to 0.7.1
372: rj/const gen r=ryan-summers a=jordens
- build(deps): bump heapless from 0.6.1 to 0.7.1
- Bump serde-json-core from 0.3.0 to 0.4.0
- adapt to new heapless/serde-json-core after const-generics
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Robert Jördens <rj@quartiq.de>
Before the discriminant was used despite being a compiler implementaiton
detail. This now fixes the discriminant to match byte index in the attenuator
shift register and latch-enable index of the gpio extender.