/* -------------------------------------------------------- */
/* Macros for setting device configuration registers */
/* -------------------------------------------------------- */
/* Register FBS (0xf80000) */
#define _FBS(x) __attribute__((section("__FBS.sec,code"))) int _FBS = (x);
/*
** Only one invocation of FBS should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FBS.
** Multiple options may be combined, as shown:
**
** _FBS( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
** Boot Segment Program Memory:
** BSS_HIGH_LARGE_BOOT_CODE High Security Lar Boot Flash
** BSS_LARGE_FLASH_HIGH High Security Lar Boot Flash
** BSS_HIGH_MEDIUM_BOOT_CODE High Security Med Boot Flash
** BSS_MEDIUM_FLASH_HIGH High Security Med Boot Flash
** BSS_HIGH_SMALL_BOOT_CODE High Security Small Boot Flash
** BSS_SMALL_FLASH_HIGH High Security Small Boot Flash
** BSS_LARGE_FLASH_STD Standard Security Lar Boot Flash
** BSS_STRD_LARGE_BOOT_CODE Standard Security Lar Boot Flash
** BSS_MEDIUM_FLASH_STD Standard Security Med Boot Flash
** BSS_STRD_MEDIUM_BOOT_CODE Standard Security Med Boot Flash
** BSS_SMALL_FLASH_STD Standard Security Small Boot Flash
** BSS_STRD_SMALL_BOOT_CODEStandard Security Small Boot Flash
** BSS_NO_BOOT_CODE No Boot Segment Program Memory
** BSS_NO_FLASH No Boot Segment Program Memory
**
** Write Protect :
** BWRP_WRPROTECT_ON Enabled
** BWRP_WRPROTECT_OFF Disabled
**
*/
#define BSS_HIGH_LARGE_BOOT_CODE 0xFFF1
#define BSS_LARGE_FLASH_HIGH 0xFFF1
#define BSS_HIGH_MEDIUM_BOOT_CODE 0xFFF3
#define BSS_MEDIUM_FLASH_HIGH 0xFFF3
#define BSS_HIGH_SMALL_BOOT_CODE 0xFFF5
#define BSS_SMALL_FLASH_HIGH 0xFFF5
#define BSS_LARGE_FLASH_STD 0xFFF9
#define BSS_STRD_LARGE_BOOT_CODE 0xFFF9
#define BSS_MEDIUM_FLASH_STD 0xFFFB
#define BSS_STRD_MEDIUM_BOOT_CODE 0xFFFB
#define BSS_SMALL_FLASH_STD 0xFFFD
#define BSS_STRD_SMALL_BOOT_CODE 0xFFFD
#define BSS_NO_BOOT_CODE 0xFFFF
#define BSS_NO_FLASH 0xFFFF
#define BWRP_WRPROTECT_ON 0xFFFE
#define BWRP_WRPROTECT_OFF 0xFFFF
/* Register FGS (0xf80004) */
#define _FGS(x) __attribute__((section("__FGS.sec,code"))) int _FGS = (x);
/*
** Only one invocation of FGS should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FGS.
** Multiple options may be combined, as shown:
**
** _FGS( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
** Code Protect:
** GSS_HIGH high security protect on
** GSS_STD standard security code protect on
** GSS_OFF code protect off
**
** Code Protect:
** GCP_ON Enabled
** GCP_OFF Disabled
**
** Write Protect:
** GWRP_ON Enabled
** GWRP_OFF Disabled
**
*/
#define GSS_HIGH 0xFFFB
#define GSS_STD 0xFFFD
#define GSS_OFF 0xFFFF
#define GCP_ON 0xFFFD
#define GCP_OFF 0xFFFF
#define GWRP_ON 0xFFFE
#define GWRP_OFF 0xFFFF
/* Register FOSCSEL (0xf80006) */
#define _FOSCSEL(x) __attribute__((section("__FOSCSEL.sec,code"))) int _FOSCSEL = (x);
/*
** Only one invocation of FOSCSEL should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FOSCSEL.
** Multiple options may be combined, as shown:
**
** _FOSCSEL( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
** Oscillator Source Selection:
** FNOSC_FRC Fast RC oscillator
** FNOSC_FRCPLL Fast RC oscillator w/ divide and PLL
** FNOSC_PRI Primary oscillator (XT, HS, EC)
** FNOSC_PRIPLL Primary oscillator (XT, HS, EC) w/ PLL
** FNOSC_SOSC Secondary oscillator
** FNOSC_LPRC Low power RC oscillator
** FNOSC_FRCDIV16 Fast RC oscillator w/ divide by 16
** FNOSC_LPRCDIVN Low power Fast RC oscillator w/divide by N
**
** Two-speed Oscillator Startup :
** IESO_OFF Disabled
** IESO_ON Enabled
**
*/
#define FNOSC_FRC 0xFFF8
#define FNOSC_FRCPLL 0xFFF9
#define FNOSC_PRI 0xFFFA
#define FNOSC_PRIPLL 0xFFFB
#define FNOSC_SOSC 0xFFFC
#define FNOSC_LPRC 0xFFFD
#define FNOSC_FRCDIV16 0xFFFE
#define FNOSC_LPRCDIVN 0xFFFF
#define IESO_OFF 0xFF7F
#define IESO_ON 0xFFFF
/* Register FOSC (0xf80008) */
#define _FOSC(x) __attribute__((section("__FOSC.sec,code"))) int _FOSC = (x);
/*
** Only one invocation of FOSC should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FOSC.
** Multiple options may be combined, as shown:
**
** _FOSC( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
** Clock switching and clock monitor:
** FCKSM_CSECME Both enabled
** FCKSM_CSECMD Only clock switching enabled
** FCKSM_CSDCMD Both disabled
**
** Single configuration for remappable I/O:
** IOL1WAY_OFF Disabled
** IOL1WAY_ON Enabled
**
** OSC2 Pin function:
** OSCIOFNC_ON Digital I/O
** OSCIOFNC_OFF OSC2 is clock O/P
**
** Oscillator Selection:
** POSCMD_EC External clock
** POSCMD_XT XT oscillator
** POSCMD_HS HS oscillator
** POSCMD_NONE Primary disabled
**
*/
#define FCKSM_CSECME 0xFF3F
#define FCKSM_CSECMD 0xFF7F
#define FCKSM_CSDCMD 0xFFBF
#define IOL1WAY_OFF 0xFFDF
#define IOL1WAY_ON 0xFFFF
#define OSCIOFNC_ON 0xFFFB
#define OSCIOFNC_OFF 0xFFFF
#define POSCMD_EC 0xFFFC
#define POSCMD_XT 0xFFFD
#define POSCMD_HS 0xFFFE
#define POSCMD_NONE 0xFFFF
/* Register FWDT (0xf8000a) */
#define _FWDT(x) __attribute__((section("__FWDT.sec,code"))) int _FWDT = (x);
/*
** Only one invocation of FWDT should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FWDT.
** Multiple options may be combined, as shown:
**
** _FWDT( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
** Watchdog Timer:
** FWDTEN_OFF Disabled
** FWDTEN_ON Enabled
**
** Windowed WDT:
** WINDIS_ON Enabled
** WINDIS_OFF Disabled
**
** Watchdog prescaler:
** WDTPRE_PR32 1:32
** WDTPRE_PR128 1:128
**
** Watchdog postscaler:
** WDTPOST_PS1 1:1
** WDTPOST_PS2 1:2
** WDTPOST_PS4 1:4
** WDTPOST_PS8 1:8
** WDTPOST_PS16 1:16
** WDTPOST_PS32 1:32
** WDTPOST_PS64 1:64
** WDTPOST_PS128 1:128
** WDTPOST_PS256 1:256
** WDTPOST_PS512 1:512
** WDTPOST_PS1024 1:1,024
** WDTPOST_PS2048 1:2,048
** WDTPOST_PS4096 1:4,096
** WDTPOST_PS8192 1:8,192
** WDTPOST_PS16384 1:16,384
** WDTPOST_PS32768 1:32,768
**
*/
#define FWDTEN_OFF 0xFF7F
#define FWDTEN_ON 0xFFFF
#define WINDIS_ON 0xFFBF
#define WINDIS_OFF 0xFFFF
#define WDTPRE_PR32 0xFFEF
#define WDTPRE_PR128 0xFFFF
#define WDTPOST_PS1 0xFFF0
#define WDTPOST_PS2 0xFFF1
#define WDTPOST_PS4 0xFFF2
#define WDTPOST_PS8 0xFFF3
#define WDTPOST_PS16 0xFFF4
#define WDTPOST_PS32 0xFFF5
#define WDTPOST_PS64 0xFFF6
#define WDTPOST_PS128 0xFFF7
#define WDTPOST_PS256 0xFFF8
#define WDTPOST_PS512 0xFFF9
#define WDTPOST_PS1024 0xFFFA
#define WDTPOST_PS2048 0xFFFB
#define WDTPOST_PS4096 0xFFFC
#define WDTPOST_PS8192 0xFFFD
#define WDTPOST_PS16384 0xFFFE
#define WDTPOST_PS32768 0xFFFF
/* Register FPOR (0xf8000c) */
#define _FPOR(x) __attribute__((section("__FPOR.sec,code"))) int _FPOR = (x);
/*
** Only one invocation of FPOR should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FPOR.
** Multiple options may be combined, as shown:
**
** _FPOR( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
** Power-on Reset Value:
** FPWRT_PWR1 Disabled
** FPWRT_PWR2 2ms
** FPWRT_PWR4 4ms
** FPWRT_PWR8 8ms
** FPWRT_PWR16 16ms
** FPWRT_PWR32 32ms
** FPWRT_PWR64 64ms
** FPWRT_PWR128 128ms
**
** Alternate I2C pins:
** ALTI2C_ON I2C mapped to ASDA1/ASCL1
** ALTI2C_OFF I2C mapped to SDA1/SCL1
**
*/
#define FPWRT_PWR1 0xFFF8
#define FPWRT_PWR2 0xFFF9
#define FPWRT_PWR4 0xFFFA
#define FPWRT_PWR8 0xFFFB
#define FPWRT_PWR16 0xFFFC
#define FPWRT_PWR32 0xFFFD
#define FPWRT_PWR64 0xFFFE
#define FPWRT_PWR128 0xFFFF
#define ALTI2C_ON 0xFFEF
#define ALTI2C_OFF 0xFFFF
/* Register FICD (0xf8000e) */
#define _FICD(x) __attribute__((section("__FICD.sec,code"))) int _FICD = (x);
/*
** Only one invocation of FICD should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FICD.
** Multiple options may be combined, as shown:
**
** _FICD( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
** Background Debug Enable Bit:
** BKBUG_OFF Device will Reset in Debug mode
** BKBUG_ON Device will Reset in user mode
**
** Debugger/Emulator Enable Bit:
** COE_OFF Reset in clip-on operational mode
** COE_ON Reset in operational mode
**
** JTAG Enable Bit:
** JTAGEN_OFF JTAG is disabled
** JTAGEN_ON JTAG is enabled
**
** ICD communication channel select bits:
** ICS_NONE Reserved
** ICS_PGD3 communicate on PGC3/EMUC3 and PGD3/EMUD3
** ICS_PGD2 communicate on PGC2/EMUC2 and PGD2/EMUD2
** ICS_PGD1 communicate on PGC1/EMUC1 and PGD1/EMUD1
**
*/
#define BKBUG_OFF 0xFF7F
#define BKBUG_ON 0xFFFF
#define COE_OFF 0xFFBF
#define COE_ON 0xFFFF
#define JTAGEN_OFF 0xFFDF
#define JTAGEN_ON 0xFFFF
#define ICS_NONE 0xFFFC
#define ICS_PGD3 0xFFFD
#define ICS_PGD2 0xFFFE
#define ICS_PGD1 0xFFFF
/* Register FUID0 (0xf80010) */
#define _FUID0(x) __attribute__((section("__FUID0.sec,code"))) int _FUID0 = (x);
/*
** Only one invocation of FUID0 should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FUID0.
** Multiple options may be combined, as shown:
**
** _FUID0( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
*/
/* Register FUID1 (0xf80012) */
#define _FUID1(x) __attribute__((section("__FUID1.sec,code"))) int _FUID1 = (x);
/*
** Only one invocation of FUID1 should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FUID1.
** Multiple options may be combined, as shown:
**
** _FUID1( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
*/
/* Register FUID2 (0xf80014) */
#define _FUID2(x) __attribute__((section("__FUID2.sec,code"))) int _FUID2 = (x);
/*
** Only one invocation of FUID2 should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FUID2.
** Multiple options may be combined, as shown:
**
** _FUID2( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
*/
/* Register FUID3 (0xf80016) */
#define _FUID3(x) __attribute__((section("__FUID3.sec,code"))) int _FUID3 = (x);
/*
** Only one invocation of FUID3 should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FUID3.
** Multiple options may be combined, as shown:
**
** _FUID3( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
*/
#endif