16 #ifdef __MSP430_HAS_SYS__
21 void SysCtl_enableDedicatedJTAGPins (
void)
23 HWREG8(SYS_BASE + OFS_SYSCTL_L) |= SYSJTAGPIN;
26 uint8_t SysCtl_getBSLEntryIndication (
void)
28 if (
HWREG8(SYS_BASE + OFS_SYSCTL_L) & SYSBSLIND){
29 return (SYSCTL_BSLENTRY_INDICATED) ;
31 return (SYSCTL_BSLENTRY_NOTINDICATED) ;
35 void SysCtl_enablePMMAccessProtect (
void)
37 HWREG8(SYS_BASE + OFS_SYSCTL_L) |= SYSPMMPE;
40 void SysCtl_enableRAMBasedInterruptVectors (
void)
42 HWREG8(SYS_BASE + OFS_SYSCTL_L) |= SYSRIVECT;
45 void SysCtl_disableRAMBasedInterruptVectors (
void)
47 HWREG8(SYS_BASE + OFS_SYSCTL_L) &= ~(SYSRIVECT);
50 void SysCtl_enableBSLProtect (
void)
52 HWREG16(SYS_BASE + OFS_SYSBSLC) |= SYSBSLPE;
55 void SysCtl_disableBSLProtect (
void)
57 HWREG16(SYS_BASE + OFS_SYSBSLC) &= ~(SYSBSLPE);
60 void SysCtl_enableBSLMemory (
void)
62 HWREG16(SYS_BASE + OFS_SYSBSLC) &= ~(SYSBSLOFF);
65 void SysCtl_disableBSLMemory (
void)
67 HWREG16(SYS_BASE + OFS_SYSBSLC) |= SYSBSLOFF;
70 void SysCtl_setRAMAssignedToBSL (uint8_t BSLRAMAssignment)
72 HWREG8(SYS_BASE + OFS_SYSBSLC_L) &= ~(SYSBSLR);
73 HWREG8(SYS_BASE + OFS_SYSBSLC_L) |= BSLRAMAssignment;
76 void SysCtl_setBSLSize (uint8_t BSLSizeSelect)
78 HWREG8(SYS_BASE + OFS_SYSBSLC_L) &= ~(SYSBSLSIZE0 + SYSBSLSIZE1);
79 HWREG8(SYS_BASE + OFS_SYSBSLC_L) |= BSLSizeSelect;
82 void SysCtl_initJTAGMailbox (uint8_t mailboxSizeSelect,
83 uint8_t autoClearInboxFlagSelect)
85 HWREG8(SYS_BASE + OFS_SYSJMBC_L) &= ~(JMBCLR1OFF + JMBCLR0OFF + JMBMODE);
86 HWREG8(SYS_BASE + OFS_SYSJMBC_L) |=
87 mailboxSizeSelect + autoClearInboxFlagSelect;
90 uint8_t SysCtl_getJTAGMailboxFlagStatus (uint8_t mailboxFlagMask)
92 return (
HWREG8(SYS_BASE + OFS_SYSJMBC_L) & mailboxFlagMask);
95 void SysCtl_clearJTAGMailboxFlagStatus (uint8_t mailboxFlagMask)
97 HWREG8(SYS_BASE + OFS_SYSJMBC_L) &= ~(mailboxFlagMask);
100 uint16_t SysCtl_getJTAGInboxMessage16Bit (uint8_t inboxSelect)
102 return (
HWREG16(SYS_BASE + OFS_SYSJMBI0 + inboxSelect) );
105 uint32_t SysCtl_getJTAGInboxMessage32Bit (
void)
107 uint32_t JTAGInboxMessageLow =
HWREG16(SYS_BASE + OFS_SYSJMBI0);
108 uint32_t JTAGInboxMessageHigh =
HWREG16(SYS_BASE + OFS_SYSJMBI1);
110 return ( (JTAGInboxMessageHigh << 16) + JTAGInboxMessageLow );
113 void SysCtl_setJTAGOutgoingMessage16Bit (uint8_t outboxSelect,
114 uint16_t outgoingMessage)
116 HWREG16(SYS_BASE + OFS_SYSJMBO0 + outboxSelect) = outgoingMessage;
119 void SysCtl_setJTAGOutgoingMessage32Bit (uint32_t outgoingMessage)
121 HWREG16(SYS_BASE + OFS_SYSJMBO0) = (outgoingMessage);
122 HWREG16(SYS_BASE + OFS_SYSJMBO1) = (outgoingMessage >> 16);