SWRZ062F September 2015 – December 2022 CC1310
Reading From Flash While Performing Clock Switching Between the High-Speed Oscillators (XOSC_HF and RCOSC_HF) Will Cause the System to Hang
A and B
The CC1310 device contains five modules that can read from flash independently of each other. These five modules are:
Clock switching between XOSC_HF and RCOSC_HF can only be initiated by the Cortex-M3. While the Cortex-M3 performs clock switching, no other modules are allowed to read from the flash. The system will hang if any of the other four modules (RF core, I2S, µDMA, or Crypto) are reading from flash during this period.
The user must make sure that the Cortex-M3 does not perform clock switching while any of the other four modules (RF core, I2S, µDMA, or Crypto) are reading from flash.
SimpleLink SDK (TI-RTOS)
Clock switching from RCOSC_HF to XOSC_HF is done by calling Power_setDependency (XOSC_HF). The user must register a notification to be notified when the clock switching is completed. When the notification function is called by the power driver, the clock switching is completed and it is safe for all modules to read from flash again.
Clock switching from XOSC_HF to RCOSC_HF is done by calling Power_releaseDependency (XOSC_HF). When this function returns, the clock switching is completed and it is safe for all modules to read from flash again. The TI-RTOS radio driver never reads from flash, so it is safe to perform clock switching at all times when using this driver. However, it is up to the user to make sure that no clock switching is performed if the RF Core, I2S, µDMA, or Crypto modules are reading from flash.
No RTOS
Clock switching is performed by calling the driverLib API OSCHfSourceSwitch(). When this function returns, it is safe for all modules to read from flash again. It is up to the user to make sure that no clock switching is performed if the RF core, I2S, µDMA, or Crypto modules are read from flash.