mirror of
https://github.com/esp-rs/esp-hal.git
synced 2025-09-27 04:10:28 +00:00

* Minimal infrastructure * Implemented dig reg backup. * usb bbpll * Removed default feature. * OS adapter tweaks * Fixed S2 and implemented PhyController * Added manual deinit. * Fixed linker scripts and migrated esp-radio to esp-phy * Fixed warnings. * Fixed NPL * Tried fixing NPL again * Fixed ieee802154 * Fixed reading chip version of S3. * fmt * Added changelog entry * Added changelog for esp-radio * Deleted chip specific common adapters. * Added docs and unstable * Migrated cal data load/store to esp-phy * Fixed PHY cal CI error * Removed instability * Removed feature from esp-phy * fmt * Fixed esp-sync docs. * Removed log with CONFIG * Removed nonreentrantmutex from common adapter * Disable reset for radio blocks where required. * Fixed cfg_if for s2 * fmt * Added bt_bb_v2_init_cmplx to phy_provides.x * Added CHANGELOG * Moved EXTERN and fixed comment. * Fixed lint * Fixed common adapter again. * Docs and Readme. * Fixed ref count. * This time pls. * Added MAC time update CB for esp-radio * fixed field init * Fixed inconsistency in metadata * Removed useless changelog entry * Fixed S2. * Swaped addr_of for &raw mut * Properly initialize NVS * Fixed lint * Fixed C6 * Fixed remaining issues * Fixed CI * Added link * Updated esp-wifi-sys in esp-phy * Address reviews * Renamed PHY lock * Moved syscon let in common_adapter * Fmt * Remove critical_section * Don't steal when not necessary * Added esp-phy changelog to workflow * Add cargo metadata for esp-phy * Added reference to #4015 * Refixed Cargo.toml --------- Co-authored-by: Dániel Buga <bugadani@gmail.com>
78 lines
1.8 KiB
Rust
78 lines
1.8 KiB
Rust
use esp_hal::ram;
|
|
|
|
/// **************************************************************************
|
|
/// Name: phy_enter_critical
|
|
///
|
|
/// Description:
|
|
/// Enter critical state
|
|
///
|
|
/// Input Parameters:
|
|
/// None
|
|
///
|
|
/// Returned Value:
|
|
/// CPU PS value
|
|
///
|
|
/// *************************************************************************
|
|
#[ram]
|
|
#[unsafe(no_mangle)]
|
|
unsafe extern "C" fn __esp_phy_enter_critical() -> u32 {
|
|
trace!("phy_enter_critical");
|
|
|
|
unsafe { crate::ESP_PHY_LOCK.acquire().inner() }
|
|
}
|
|
|
|
/// **************************************************************************
|
|
/// Name: phy_exit_critical
|
|
///
|
|
/// Description:
|
|
/// Exit from critical state
|
|
///
|
|
/// Input Parameters:
|
|
/// level - CPU PS value
|
|
///
|
|
/// Returned Value:
|
|
/// None
|
|
///
|
|
/// *************************************************************************
|
|
#[ram]
|
|
#[unsafe(no_mangle)]
|
|
unsafe extern "C" fn __esp_phy_exit_critical(level: u32) {
|
|
trace!("phy_exit_critical {}", level);
|
|
|
|
unsafe {
|
|
let token = esp_sync::RestoreState::new(level);
|
|
crate::ESP_PHY_LOCK.release(token);
|
|
}
|
|
}
|
|
|
|
/// **************************************************************************
|
|
/// Name: esp_dport_access_reg_read
|
|
///
|
|
/// Description:
|
|
/// Read regitser value safely in SMP
|
|
///
|
|
/// Input Parameters:
|
|
/// reg - Register address
|
|
///
|
|
/// Returned Value:
|
|
/// Register value
|
|
///
|
|
/// *************************************************************************
|
|
#[ram]
|
|
#[unsafe(no_mangle)]
|
|
unsafe extern "C" fn __esp_phy_esp_dport_access_reg_read(reg: u32) -> u32 {
|
|
unsafe {
|
|
// trace!("esp_dport_access_reg_read {:x} => {:x}", reg, res);
|
|
(reg as *mut u32).read_volatile()
|
|
}
|
|
}
|
|
|
|
#[ram]
|
|
#[unsafe(no_mangle)]
|
|
unsafe extern "C" fn __esp_phy_rtc_get_xtal() -> u32 {
|
|
use esp_hal::clock::Clock;
|
|
|
|
let xtal = esp_hal::clock::RtcClock::xtal_freq();
|
|
xtal.mhz()
|
|
}
|