Add grabber module #270
No reviewers
Labels
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: M-Labs/artiq-zynq#270
Loading…
Reference in New Issue
No description provided.
Delete Branch "esavkin/artiq-zynq:264-fix-grabber"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Waits for testing
@ -229,6 +230,7 @@ class GenericMaster(SoCCore):
pads=data_pads,
clk_freq=clk_freq)
self.csr_devices.append("gt_drtio")
self.config["CLOCK_FREQUENCY"] = int(description["rtio_frequency"])
clk_freq
, actually can also introduce that to standalone@ -11,10 +11,13 @@ extern crate alloc;
#[cfg(feature = "target_kasli_soc")]
use core::cell::RefCell;
use embedded_hal::blocking::delay::DelayMs;
Also should be behind has_grabber, otherwise will warn about unused import
@ -60,0 +64,4 @@
async fn grabber_thread(mut timer: GlobalTimer) {
loop {
grabber::tick();
timer.delay_ms(200);
I believe this should be a countdown like in
812aea33b3/src/runtime/src/rtio_mgt.rs (L425)
, otherwise this task will never yield. Will need to double check. If timing is not an issue and grabber tick can be done anytime, it could be a yield like the io expander task above.Seems to work fine according to the customer, after replacing the delay with an
async
-friendly version.Just replace
timer.delay(200)
with:then remove DelayMs import, and add
libasync::delay
andlibboard_zynq::time::Milliseconds
. Remember to use cargo fmt too.This will have to be integrated in release-7 too.
I'm thinking if to cut down on tasks, we could integrate the expander service together with the grabber tick. But that's beyond of the scope of getting grabber to work.
26a2bfacf5
to92b702da1b
WIP: Add grabber moduleto Add grabber module92b702da1b
to7ffa897ae5
@ -139,6 +140,7 @@ class GenericStandalone(SoCCore):
]
fix_serdes_timing_path(platform)
self.submodules.bootstrap = GTPBootstrapClock(self.platform, description["rtio_frequency"])
and use clk_freq here, since you just defined it :)
7ffa897ae5
tob768d5648c