X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Fcortex-m3%2Fio%2Fsam3_flash.h;h=44cae6a53464eb0838be2cce086e78a1c842fade;hb=577a9116e32fac33614a21b15d8d1443c3ac420b;hp=611e61da5b7ad592a5a0ca3960ef8d27f1b573be;hpb=b55c83ad3a417562b26985e29d7a3f7496520ec4;p=bertos.git diff --git a/bertos/cpu/cortex-m3/io/sam3_flash.h b/bertos/cpu/cortex-m3/io/sam3_flash.h index 611e61da..44cae6a5 100644 --- a/bertos/cpu/cortex-m3/io/sam3_flash.h +++ b/bertos/cpu/cortex-m3/io/sam3_flash.h @@ -30,16 +30,22 @@ * * --> * - * \brief ATSAM3 enhanced embedded flash controller definitions. + * \brief Atmel SAM3 enhanced embedded flash controller definitions. */ #ifndef SAM3_FLASH_H #define SAM3_FLASH_H /** - * EEFC base register address. + * EEFC base registers addresses. */ -#define EEFC_BASE 0x400E0A00 +/*\{*/ +#define EEFC0_BASE 0x400E0A00 +#ifdef CPU_CM3_SAM3X + #define EEFC1_BASE 0x400E0C00 +#endif +/*\}*/ + /** * EFC register offsets. @@ -55,10 +61,17 @@ * EEFC registers. */ /*\{*/ -#define EEFC_FMR (*((reg32_t *)(EEFC_BASE + EEFC_FMR_OFF))) ///< Flash Mode Register -#define EEFC_FCR (*((reg32_t *)(EEFC_BASE + EEFC_FCR_OFF))) ///< Flash Command Register -#define EEFC_FSR (*((reg32_t *)(EEFC_BASE + EEFC_FSR_OFF))) ///< Flash Status Register -#define EEFC_FRR (*((reg32_t *)(EEFC_BASE + EEFC_FRR_OFF))) ///< Flash Result Register +#define EEFC0_FMR (*((reg32_t *)(EEFC0_BASE + EEFC_FMR_OFF))) ///< Flash Mode Register +#define EEFC0_FCR (*((reg32_t *)(EEFC0_BASE + EEFC_FCR_OFF))) ///< Flash Command Register +#define EEFC0_FSR (*((reg32_t *)(EEFC0_BASE + EEFC_FSR_OFF))) ///< Flash Status Register +#define EEFC0_FRR (*((reg32_t *)(EEFC0_BASE + EEFC_FRR_OFF))) ///< Flash Result Register + +#ifdef CPU_CM3_SAM3X + #define EEFC1_FMR (*((reg32_t *)(EEFC1_BASE + EEFC_FMR_OFF))) ///< Flash Mode Register + #define EEFC1_FCR (*((reg32_t *)(EEFC1_BASE + EEFC_FCR_OFF))) ///< Flash Command Register + #define EEFC1_FSR (*((reg32_t *)(EEFC1_BASE + EEFC_FSR_OFF))) ///< Flash Status Register + #define EEFC1_FRR (*((reg32_t *)(EEFC1_BASE + EEFC_FRR_OFF))) ///< Flash Result Register +#endif /*\}*/ @@ -67,34 +80,34 @@ * Defines for bit fields in EEFC_FMR register. */ /*\{*/ -#define EEFC_FMR_FRDY BV(0) ///< Ready Interrupt Enable -#define EEFC_FMR_FWS_S 8 -#define EEFC_FMR_FWS_M (0xf << EEFC_FMR_FWS_S) ///< Flash Wait State -#define EEFC_FMR_FWS(value) (EEFC_FMR_FWS_M & ((value) << EEFC_FMR_FWS_S)) -#define EEFC_FMR_FAM BV(24) ///< Flash Access Mode +#define EEFC_FMR_FRDY 0 ///< Ready Interrupt Enable +#define EEFC_FMR_FWS_SHIFT 8 +#define EEFC_FMR_FWS_MASK (0xf << EEFC_FMR_FWS_SHIFT) ///< Flash Wait State +#define EEFC_FMR_FWS(value) (EEFC_FMR_FWS_MASK & ((value) << EEFC_FMR_FWS_SHIFT)) +#define EEFC_FMR_FAM 24 ///< Flash Access Mode /*\}*/ /** * Defines for bit fields in EEFC_FCR register. */ /*\{*/ -#define EEFC_FCR_FCMD_M 0xff ///< Flash Command -#define EEFC_FCR_FCMD(value) (EEFC_FCR_FCMD_M & (value)) -#define EEFC_FCR_FARG_S 8 -#define EEFC_FCR_FARG_M (0xffff << EEFC_FCR_FARG_S) ///< Flash Command Argument -#define EEFC_FCR_FARG(value) (EEFC_FCR_FARG_M & ((value) << EEFC_FCR_FARG_S)) -#define EEFC_FCR_FKEY_S 24 -#define EEFC_FCR_FKEY_M (0xff << EEFC_FCR_FKEY_S) ///< Flash Writing Protection Key -#define EEFC_FCR_FKEY(value) (EEFC_FCR_FKEY_M & ((value) << EEFC_FCR_FKEY_S)) +#define EEFC_FCR_FCMD_MASK 0xff ///< Flash Command +#define EEFC_FCR_FCMD(value) (EEFC_FCR_FCMD_MASK & (value)) +#define EEFC_FCR_FARG_SHIFT 8 +#define EEFC_FCR_FARG_MASK (0xffff << EEFC_FCR_FARG_SHIFT) ///< Flash Command Argument +#define EEFC_FCR_FARG(value) (EEFC_FCR_FARG_MASK & ((value) << EEFC_FCR_FARG_SHIFT)) +#define EEFC_FCR_FKEY_SHIFT 24 +#define EEFC_FCR_FKEY_MASK (0xff << EEFC_FCR_FKEY_SHIFT) ///< Flash Writing Protection Key +#define EEFC_FCR_FKEY(value) (EEFC_FCR_FKEY_MASK & ((value) << EEFC_FCR_FKEY_SHIFT)) /*\}*/ /** * Defines for bit fields in EEFC_FSR register. */ /*\{*/ -#define EEFC_FSR_FRDY BV(0) ///< Flash Ready Status -#define EEFC_FSR_FCMDE BV(1) ///< Flash Command Error Status -#define EEFC_FSR_FLOCKE BV(2) ///< Flash Lock Error Status +#define EEFC_FSR_FRDY 0 ///< Flash Ready Status +#define EEFC_FSR_FCMDE 1 ///< Flash Command Error Status +#define EEFC_FSR_FLOCKE 2 ///< Flash Lock Error Status /*\}*/ #endif /* SAM3_FLASH_H */