revl + timer
Brunet Yorick <[email protected]>
| Newsgroups | dev.linux.lists.xenomai |
|---|---|
| Message-ID | <ZR1P278MB1040F902CEB569D53789E125D2A52@ZR1P278MB1040.CHEP278.PROD.OUTLOOK.COM> |
Hello,
I originally posted this question in the matrix channel but got no answer. I try with the mailing list.
I have been using `libevl` for some time. I am now testing `revl` as I want to move forward Rust.
As a first step before going on the embedded board, I'm using "qemu virt64".
First, I noticed that https://gitlab.com/Xenomai/xenomai4/revl/-/blob/master/Cargo.toml?ref\_type=heads doesn't refer a valid `evl-sys` as it points to the main branch and not a tag. I had to clone `revl v0.6.2` and change manually Cargo.toml to
```
-evl-sys = { version = "0.32", git = "https://gitlab.com/Xenomai/xenomai4/evl-sys" }
+evl-sys = { tag = "v0.36.1", git = "https://gitlab.com/Xenomai/xenomai4/evl-sys" }
```
(or v0.32.1)
Then I tried to use the timer with
```
let timer = timer::Timer::new(clock::STEADY_CLOCK).expect("[ERROR] timer create failed\n");
let now = clock::STEADY_CLOCK.now();
let period = Nanoseconds(1_000_000_000_u64);
let first_expiry = now + period;
timer.arm_periodic(first_expiry, period).expect("[ERROR] timer arm failed\n");
loop {
match timer.wait() {
[...]
}
}
```
or
```
let timeout = clock::STEADY_CLOCK.now() + Seconds(1_u32);
assert!(clock::STEADY_CLOCK.sleep_until(timeout).is_ok());
```
Both cases fail, either on the `timer.wait()` or `sleep_until()`.
My system is composed of:
- uboot
- buildroot (I included the libevl r59, revl v0.6.2, and evl-sys v0.36.1 packages but I'm not sure that it was necessary)
- linux-evl v6.18.29-evl2-rebase
rustc 1.97.1 (8bab26f4f 2026-07-14)
The Cargo.toml of my project is:
```
[package]
name = "evl-periodic_task-rs"
version = "0.1.0"
edition = "2024"
[dependencies]
revl = { path = "../../../../revl" } <--- points to v0.6.2 with changes presented above
libc = "0.2.189"
embedded-time = "0.12.1"
```
Do you have any idea on the issue ?
How can I retrieve more logs from EVL?
Thanks !
Yorick