bump esp32c3 pac (#878)

This commit is contained in:
onsdagens 2024-01-10 21:00:54 +01:00 committed by GitHub
parent fbcc364759
commit 7cbe054e41
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 17 deletions

View file

@ -31,7 +31,7 @@ features = ["rtic-macros/test-template"]
name = "rtic" name = "rtic"
[dependencies] [dependencies]
esp32c3 = { version = "0.17.0", optional = true} esp32c3 = { version = "0.20.0", optional = true}
riscv = {version = "0.10.1", optional = true} riscv = {version = "0.10.1", optional = true}
cortex-m = { version = "0.7.0", optional = true } cortex-m = { version = "0.7.0", optional = true }
bare-metal = "1.0.0" bare-metal = "1.0.0"

View file

@ -15,14 +15,14 @@ where
f(); f();
unsafe { unsafe {
(*INTERRUPT_CORE0::ptr()) (*INTERRUPT_CORE0::ptr())
.cpu_int_thresh .cpu_int_thresh()
.write(|w| w.cpu_int_thresh().bits(1)); .write(|w| w.cpu_int_thresh().bits(1));
} }
} else { } else {
//read current thresh //read current thresh
let initial = unsafe { let initial = unsafe {
(*INTERRUPT_CORE0::ptr()) (*INTERRUPT_CORE0::ptr())
.cpu_int_thresh .cpu_int_thresh()
.read() .read()
.cpu_int_thresh() .cpu_int_thresh()
.bits() .bits()
@ -31,7 +31,7 @@ where
//write back old thresh //write back old thresh
unsafe { unsafe {
(*INTERRUPT_CORE0::ptr()) (*INTERRUPT_CORE0::ptr())
.cpu_int_thresh .cpu_int_thresh()
.write(|w| w.cpu_int_thresh().bits(initial)); .write(|w| w.cpu_int_thresh().bits(initial));
} }
} }
@ -62,7 +62,7 @@ pub unsafe fn lock<T, R>(ptr: *mut T, ceiling: u8, f: impl FnOnce(&mut T) -> R)
} else { } else {
let current = unsafe { let current = unsafe {
(*INTERRUPT_CORE0::ptr()) (*INTERRUPT_CORE0::ptr())
.cpu_int_thresh .cpu_int_thresh()
.read() .read()
.cpu_int_thresh() .cpu_int_thresh()
.bits() .bits()
@ -70,13 +70,13 @@ pub unsafe fn lock<T, R>(ptr: *mut T, ceiling: u8, f: impl FnOnce(&mut T) -> R)
unsafe { unsafe {
(*INTERRUPT_CORE0::ptr()) (*INTERRUPT_CORE0::ptr())
.cpu_int_thresh .cpu_int_thresh()
.write(|w| w.cpu_int_thresh().bits(ceiling + 1)) .write(|w| w.cpu_int_thresh().bits(ceiling + 1))
} //esp32c3 lets interrupts with prio equal to threshold through so we up it by one } //esp32c3 lets interrupts with prio equal to threshold through so we up it by one
let r = f(&mut *ptr); let r = f(&mut *ptr);
unsafe { unsafe {
(*INTERRUPT_CORE0::ptr()) (*INTERRUPT_CORE0::ptr())
.cpu_int_thresh .cpu_int_thresh()
.write(|w| w.cpu_int_thresh().bits(current)) .write(|w| w.cpu_int_thresh().bits(current))
} }
r r
@ -91,19 +91,19 @@ pub fn pend(int: Interrupt) {
match int { match int {
Interrupt::FROM_CPU_INTR0 => peripherals Interrupt::FROM_CPU_INTR0 => peripherals
.SYSTEM .SYSTEM
.cpu_intr_from_cpu_0 .cpu_intr_from_cpu_0()
.write(|w| w.cpu_intr_from_cpu_0().bit(true)), .write(|w| w.cpu_intr_from_cpu_0().bit(true)),
Interrupt::FROM_CPU_INTR1 => peripherals Interrupt::FROM_CPU_INTR1 => peripherals
.SYSTEM .SYSTEM
.cpu_intr_from_cpu_1 .cpu_intr_from_cpu_1()
.write(|w| w.cpu_intr_from_cpu_1().bit(true)), .write(|w| w.cpu_intr_from_cpu_1().bit(true)),
Interrupt::FROM_CPU_INTR2 => peripherals Interrupt::FROM_CPU_INTR2 => peripherals
.SYSTEM .SYSTEM
.cpu_intr_from_cpu_2 .cpu_intr_from_cpu_2()
.write(|w| w.cpu_intr_from_cpu_2().bit(true)), .write(|w| w.cpu_intr_from_cpu_2().bit(true)),
Interrupt::FROM_CPU_INTR3 => peripherals Interrupt::FROM_CPU_INTR3 => peripherals
.SYSTEM .SYSTEM
.cpu_intr_from_cpu_3 .cpu_intr_from_cpu_3()
.write(|w| w.cpu_intr_from_cpu_3().bit(true)), .write(|w| w.cpu_intr_from_cpu_3().bit(true)),
_ => panic!("Unsupported software interrupt"), //should never happen, checked at compile time _ => panic!("Unsupported software interrupt"), //should never happen, checked at compile time
} }
@ -117,19 +117,19 @@ pub fn unpend(int: Interrupt) {
match int { match int {
Interrupt::FROM_CPU_INTR0 => peripherals Interrupt::FROM_CPU_INTR0 => peripherals
.SYSTEM .SYSTEM
.cpu_intr_from_cpu_0 .cpu_intr_from_cpu_0()
.write(|w| w.cpu_intr_from_cpu_0().bit(false)), .write(|w| w.cpu_intr_from_cpu_0().bit(false)),
Interrupt::FROM_CPU_INTR1 => peripherals Interrupt::FROM_CPU_INTR1 => peripherals
.SYSTEM .SYSTEM
.cpu_intr_from_cpu_1 .cpu_intr_from_cpu_1()
.write(|w| w.cpu_intr_from_cpu_1().bit(false)), .write(|w| w.cpu_intr_from_cpu_1().bit(false)),
Interrupt::FROM_CPU_INTR2 => peripherals Interrupt::FROM_CPU_INTR2 => peripherals
.SYSTEM .SYSTEM
.cpu_intr_from_cpu_2 .cpu_intr_from_cpu_2()
.write(|w| w.cpu_intr_from_cpu_2().bit(false)), .write(|w| w.cpu_intr_from_cpu_2().bit(false)),
Interrupt::FROM_CPU_INTR3 => peripherals Interrupt::FROM_CPU_INTR3 => peripherals
.SYSTEM .SYSTEM
.cpu_intr_from_cpu_3 .cpu_intr_from_cpu_3()
.write(|w| w.cpu_intr_from_cpu_3().bit(false)), .write(|w| w.cpu_intr_from_cpu_3().bit(false)),
_ => panic!("Unsupported software interrupt"), _ => panic!("Unsupported software interrupt"),
} }
@ -152,10 +152,10 @@ pub fn enable(int: Interrupt, prio: u8, cpu_int_id: u8) {
.write_volatile(cpu_interrupt_number as u32); .write_volatile(cpu_interrupt_number as u32);
//map peripheral interrupt to CPU interrupt //map peripheral interrupt to CPU interrupt
(*INTERRUPT_CORE0::ptr()) (*INTERRUPT_CORE0::ptr())
.cpu_int_enable .cpu_int_enable()
.modify(|r, w| w.bits((1 << cpu_interrupt_number) | r.bits())); //enable the CPU interupt. .modify(|r, w| w.bits((1 << cpu_interrupt_number) | r.bits())); //enable the CPU interupt.
let intr = INTERRUPT_CORE0::ptr(); let intr = INTERRUPT_CORE0::ptr();
let intr_prio_base = (*intr).cpu_int_pri_0.as_ptr(); let intr_prio_base = (*intr).cpu_int_pri_0().as_ptr();
intr_prio_base intr_prio_base
.offset(cpu_interrupt_number) .offset(cpu_interrupt_number)