EFM32 Wonder Gecko Software Documentation
efm32wg-doc-5.1.2
|
Flash controller (MSC) peripheral API.
Copyright 2016 Silicon Laboratories, Inc. http://www.silabs.com
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Labs has no obligation to support this Software. Silicon Labs is providing the Software "AS IS", with no express or implied warranties of any kind, including, but not limited to, any implied warranties of merchantability or fitness for any particular purpose or warranties against infringement of any proprietary rights of a third party.
Silicon Labs will not be liable for any consequential, incidental, or special damages, or any other relief, or for any claim by any third party, arising from your use of this Software.
Definition in file em_msc.h.
#include "em_device.h"
#include <stdint.h>
#include <stdbool.h>
#include "em_bus.h"
#include "em_ramfunc.h"
Go to the source code of this file.
Data Structures | |
struct | MSC_ExecConfig_TypeDef |
Macros | |
#define | EM_MSC_RUN_FROM_FLASH |
By compiling with the define EM_MSC_RUN_FROM_FLASH, the functions performing erase or write operations will remain in and execute from Flash. This is useful for targets that don't want to allocate RAM space to hold the flash functions. Without this define, code for Flash operations will be copied into RAM at startup. More... | |
#define | MSC_EXECCONFIG_DEFAULT |
#define | MSC_PROGRAM_TIMEOUT 10000000ul |
The timeout used while waiting for the flash to become ready after a write. This number indicates the number of iterations to perform before issuing a timeout. More... | |
#define | MSC_RAMFUNC_DECLARATOR |
Expands to SL_RAMFUNC_DECLARATOR if EM_MSC_RUN_FROM_FLASH is undefined and to nothing if EM_MSC_RUN_FROM_FLASH is defined. | |
#define | MSC_RAMFUNC_DEFINITION_BEGIN |
Expands to SL_RAMFUNC_DEFINITION_BEGIN if EM_MSC_RUN_FROM_FLASH is undefined and to nothing if EM_MSC_RUN_FROM_FLASH is defined. | |
#define | MSC_RAMFUNC_DEFINITION_END |
Expands to SL_RAMFUNC_DEFINITION_END if EM_MSC_RUN_FROM_FLASH is undefined and to nothing if EM_MSC_RUN_FROM_FLASH is defined. | |
Enumerations | |
enum | MSC_BusStrategy_Typedef { mscBusStrategyCPU = MSC_READCTRL_BUSSTRATEGY_CPU, mscBusStrategyDMA = MSC_READCTRL_BUSSTRATEGY_DMA, mscBusStrategyDMAEM1 = MSC_READCTRL_BUSSTRATEGY_DMAEM1, mscBusStrategyNone = MSC_READCTRL_BUSSTRATEGY_NONE } |
enum | MSC_Status_TypeDef { mscReturnOk = 0, mscReturnInvalidAddr = -1, mscReturnLocked = -2, mscReturnTimeOut = -3, mscReturnUnaligned = -4 } |
Functions | |
__STATIC_INLINE void | MSC_BusStrategy (mscBusStrategy_Typedef mode) |
Configure which unit should get priority on system bus. More... | |
void | MSC_Deinit (void) |
Disables the flash controller for writing. | |
__STATIC_INLINE void | MSC_EnableAutoCacheFlush (bool enable) |
Enable or disable instruction cache flushing when writing to flash. More... | |
__STATIC_INLINE void | MSC_EnableCache (bool enable) |
Enable or disable instruction cache functionality. More... | |
__STATIC_INLINE void | MSC_EnableCacheIRQs (bool enable) |
Enable or disable instruction cache functionality in IRQs. More... | |
MSC_RAMFUNC_DECLARATOR MSC_Status_TypeDef | MSC_ErasePage (uint32_t *startAddress) |
Erases a page in flash memory. More... | |
void | MSC_ExecConfigSet (MSC_ExecConfig_TypeDef *execConfig) |
Set MSC code execution configuration. More... | |
__STATIC_INLINE void | MSC_FlushCache (void) |
Flush the contents of the instruction cache. | |
__STATIC_INLINE int32_t | MSC_GetCacheMeasurement (void) |
Stops measuring the hit rate. More... | |
void | MSC_Init (void) |
Enables the flash controller for writing. More... | |
__STATIC_INLINE void | MSC_IntClear (uint32_t flags) |
Clear one or more pending MSC interrupts. More... | |
__STATIC_INLINE void | MSC_IntDisable (uint32_t flags) |
Disable one or more MSC interrupts. More... | |
__STATIC_INLINE void | MSC_IntEnable (uint32_t flags) |
Enable one or more MSC interrupts. More... | |
__STATIC_INLINE uint32_t | MSC_IntGet (void) |
Get pending MSC interrupt flags. More... | |
__STATIC_INLINE uint32_t | MSC_IntGetEnabled (void) |
Get enabled and pending MSC interrupt flags. Useful for handling more interrupt sources in the same interrupt handler. More... | |
__STATIC_INLINE void | MSC_IntSet (uint32_t flags) |
Set one or more pending MSC interrupts from SW. More... | |
MSC_RAMFUNC_DECLARATOR MSC_Status_TypeDef | MSC_MassErase (void) |
Erase entire flash in one operation. More... | |
__STATIC_INLINE void | MSC_StartCacheMeasurement (void) |
Starts measuring cache hit ratio. More... | |
MSC_RAMFUNC_DECLARATOR MSC_Status_TypeDef | MSC_WriteWord (uint32_t *address, void const *data, uint32_t numBytes) |
Writes data to flash memory. This function is interrupt safe, but slower than MSC_WriteWordFast(), which writes to flash with interrupts disabled. Write data must be aligned to words and contain a number of bytes that is divisable by four. More... | |
MSC_RAMFUNC_DECLARATOR MSC_Status_TypeDef | MSC_WriteWordFast (uint32_t *address, void const *data, uint32_t numBytes) |
Writes data to flash memory. This function is faster than MSC_WriteWord(), but it disables interrupts. Write data must be aligned to words and contain a number of bytes that is divisable by four. More... | |