-
Notifications
You must be signed in to change notification settings - Fork 46
Open
Description
Hi,
I'm writing an ULP program and need a way to wakeup the main CPU. I ported over the Espressif C lib wakeup function like so:
const DR_REG_RTCCNTL_BASE: u32 = 0x60008000;
const RTC_CNTL_STATE0_REG: u32 = 0x60008018; // DR_REG_RTCCNTL_BASE + 0x18
const RTC_CNTL_SW_CPU_INT: u32 = 1; // BIT(0)
fn wakeup_main_processor() {
unsafe {
let reg_ptr = RTC_CNTL_STATE0_REG as *mut u32;
let current_value = reg_ptr.read_volatile();
reg_ptr.write_volatile(current_value | RTC_CNTL_SW_CPU_INT);
}
}
That works. Figured it's nicer to work with PAC instead, but State0 of rtc_cntl is not in esp32s3_ulp I think. It IS in esp32s3 PAC, but I'm already using esp32s3_ulp for other stuff and can't disable it, and the two PACs don't play nicely together.
Can I make the 2 PAC's work together? Or is there some other direct way to wake up the main cpu using ESP32S3_ULP? Thanks
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Todo