#rtc #aarch64 #arceos #driver #pl031

无std arm_pl031

基于PL031的aarch64系统实时时钟(RTC)驱动程序

4个版本

0.2.1 2024年7月24日
0.2.0 2024年7月22日
0.1.1 2024年7月15日
0.1.0 2024年7月15日

#325硬件支持

Download history 247/week @ 2024-07-12 350/week @ 2024-07-19 292/week @ 2024-07-26 210/week @ 2024-08-02 129/week @ 2024-08-09

1,007 每月下载次数

GPL-3.0-or-later OR Apache-2…

9KB
100

arm_pl031

Crates.io

基于PL031的aarch64系统实时时钟(RTC)驱动程序。

示例

use arm_pl031::Rtc;

let rtc = unsafe { Rtc::new(0x901_0000 as _) };
let epoch_time = rtc.get_unix_timestamp();

base_addr 需要的是可用于mmio的设备虚拟地址,例如可以从设备树中获取

/ {
	interrupt-parent = <0x8002>;
	model = "linux,dummy-virt";
	#size-cells = <0x02>;
	#address-cells = <0x02>;
	compatible = "linux,dummy-virt";

	pl031@9010000 {
		clock-names = "apb_pclk";
		clocks = <0x8000>;
		interrupts = <0x00 0x02 0x04>;
		reg = <0x00 0x9010000 0x00 0x1000>;
		compatible = "arm,pl031\0arm,primecell";
	};

    ...
}

lib.rs:

基于PL031的aarch64系统实时时钟(RTC)驱动程序。

依赖

~1MB
~18K SLoC