MSP430 DriverLib for MSP430FR2xx_4xx Devices  2.10.00.09
 All Data Structures Functions Variables Modules Pages
sysctl.h
1 //*****************************************************************************
2 //
3 // sysctl.h - Driver for the SYSCTL Module.
4 //
5 //*****************************************************************************
6 
7 #ifndef __MSP430WARE_SYSCTL_H__
8 #define __MSP430WARE_SYSCTL_H__
9 
10 #include "inc/hw_memmap.h"
11 
12 #ifdef __MSP430_HAS_SYS__
13 
14 //*****************************************************************************
15 //
16 // If building with a C++ compiler, make all of the definitions in this header
17 // have a C binding.
18 //
19 //*****************************************************************************
20 #ifdef __cplusplus
21 extern "C"
22 {
23 #endif
24 
25 //*****************************************************************************
26 //
27 // The following are values that can be passed to the BSLRAMAssignment
28 // parameter for functions: SysCtl_setRAMAssignedToBSL().
29 //
30 //*****************************************************************************
31 #define SYSCTL_BSLRAMASSIGN_NORAM (!(SYSBSLR))
32 #define SYSCTL_BSLRAMASSIGN_LOWEST16BYTES (SYSBSLR)
33 
34 //*****************************************************************************
35 //
36 // The following are values that can be passed to the mailboxSizeSelect
37 // parameter for functions: SysCtl_initJTAGMailbox().
38 //
39 //*****************************************************************************
40 #define SYSCTL_JTAGMBSIZE_16BIT (!(JMBMODE))
41 #define SYSCTL_JTAGMBSIZE_32BIT (JMBMODE)
42 
43 //*****************************************************************************
44 //
45 // The following are values that can be passed to the autoClearInboxFlagSelect
46 // parameter for functions: SysCtl_initJTAGMailbox().
47 //
48 //*****************************************************************************
49 #define SYSCTL_JTAGINBOX0AUTO_JTAGINBOX1AUTO (!(JMBCLR0OFF + JMBCLR1OFF))
50 #define SYSCTL_JTAGINBOX0AUTO_JTAGINBOX1SW (JMBCLR1OFF)
51 #define SYSCTL_JTAGINBOX0SW_JTAGINBOX1AUTO (JMBCLR0OFF)
52 #define SYSCTL_JTAGINBOX0SW_JTAGINBOX1SW (JMBCLR0OFF + JMBCLR1OFF)
53 
54 //*****************************************************************************
55 //
56 // The following are values that can be passed to the mailboxFlagMask parameter
57 // for functions: SysCtl_getJTAGMailboxFlagStatus(), and
58 // SysCtl_clearJTAGMailboxFlagStatus().
59 //
60 //*****************************************************************************
61 #define SYSCTL_JTAGOUTBOX_FLAG0 (JMBOUT0FG)
62 #define SYSCTL_JTAGOUTBOX_FLAG1 (JMBOUT1FG)
63 #define SYSCTL_JTAGINBOX_FLAG0 (JMBIN0FG)
64 #define SYSCTL_JTAGINBOX_FLAG1 (JMBIN1FG)
65 
66 //*****************************************************************************
67 //
68 // The following are values that can be passed to the inboxSelect parameter for
69 // functions: SysCtl_getJTAGInboxMessage16Bit().
70 //
71 //*****************************************************************************
72 #define SYSCTL_JTAGINBOX_0 (0x0)
73 #define SYSCTL_JTAGINBOX_1 (0x2)
74 
75 //*****************************************************************************
76 //
77 // The following are values that can be passed to the outboxSelect parameter
78 // for functions: SysCtl_setJTAGOutgoingMessage16Bit().
79 //
80 //*****************************************************************************
81 #define SYSCTL_JTAGOUTBOX_0 (0x0)
82 #define SYSCTL_JTAGOUTBOX_1 (0x2)
83 
84 //*****************************************************************************
85 //
86 // The following are values that can be passed toThe following are values that
87 // can be returned by the SysCtl_getBSLEntryIndication() function.
88 //
89 //*****************************************************************************
90 #define SYSCTL_BSLENTRY_INDICATED (0x1)
91 #define SYSCTL_BSLENTRY_NOTINDICATED (0x0)
92 
93 //*****************************************************************************
94 //
95 // The following are values that can be passed to the writeEnable parameter for
96 // functions: SysCtl_enableFRAMWrite(); the writeProtect parameter for
97 // functions: SysCtl_protectFRAMWrite().
98 //
99 //*****************************************************************************
100 #define SYSCTL_FRAMWRITEPROTECTION_DATA (DFWP)
101 #define SYSCTL_FRAMWRITEPROTECTION_PROGRAM (PFWP)
102 
103 //*****************************************************************************
104 //
105 // The following are values that can be passed to the dataSource parameter for
106 // functions: SysCtl_setInfraredConfig().
107 //
108 //*****************************************************************************
109 #define SYSCTL_INFRAREDDATASOURCE_CONFIG (0x0)
110 #define SYSCTL_INFRAREDDATASOURCE_IRDATA (IRDSSEL)
111 
112 //*****************************************************************************
113 //
114 // The following are values that can be passed to the mode parameter for
115 // functions: SysCtl_setInfraredConfig().
116 //
117 //*****************************************************************************
118 #define SYSCTL_INFRAREDMODE_ASK (0x0)
119 #define SYSCTL_INFRAREDMODE_FSK (IRMSEL)
120 
121 //*****************************************************************************
122 //
123 // The following are values that can be passed to the polarity parameter for
124 // functions: SysCtl_setInfraredConfig().
125 //
126 //*****************************************************************************
127 #define SYSCTL_INFRAREDPOLARITY_NORMAL (0x0)
128 #define SYSCTL_INFRAREDPOLARITY_INVERTED (IRPSEL)
129 
130 //*****************************************************************************
131 //
132 // Prototypes for the APIs.
133 //
134 //*****************************************************************************
135 
136 //*****************************************************************************
137 //
138 //! \brief Sets the JTAG pins to be exclusively for JTAG until a BOR occurs.
139 //!
140 //! This function sets the JTAG pins to be exclusively used for the JTAG, and
141 //! not to be shared with the GPIO pins. This setting can only be cleared when
142 //! a BOR occurs.
143 //!
144 //!
145 //! \return None
146 //
147 //*****************************************************************************
148 extern void SysCtl_enableDedicatedJTAGPins(void);
149 
150 //*****************************************************************************
151 //
152 //! \brief Returns the indication of a BSL entry sequence from the Spy-Bi-Wire.
153 //!
154 //! This function returns the indication of a BSL entry sequence from the Spy-
155 //! Bi-Wire.
156 //!
157 //!
158 //! \return One of the following:
159 //! - \b SysCtl_BSLENTRY_INDICATED
160 //! - \b SysCtl_BSLENTRY_NOTINDICATED
161 //! \n indicating if a BSL entry sequence was detected
162 //
163 //*****************************************************************************
164 extern uint8_t SysCtl_getBSLEntryIndication(void);
165 
166 //*****************************************************************************
167 //
168 //! \brief Enables PMM Access Protection.
169 //!
170 //! This function enables the PMM Access Protection, which will lock any
171 //! changes on the PMM control registers until a BOR occurs.
172 //!
173 //!
174 //! \return None
175 //
176 //*****************************************************************************
177 extern void SysCtl_enablePMMAccessProtect(void);
178 
179 //*****************************************************************************
180 //
181 //! \brief Enables RAM-based Interrupt Vectors.
182 //!
183 //! This function enables RAM-base Interrupt Vectors, which means that
184 //! interrupt vectors are generated with the end address at the top of RAM,
185 //! instead of the top of the lower 64kB of flash.
186 //!
187 //!
188 //! \return None
189 //
190 //*****************************************************************************
191 extern void SysCtl_enableRAMBasedInterruptVectors(void);
192 
193 //*****************************************************************************
194 //
195 //! \brief Disables RAM-based Interrupt Vectors.
196 //!
197 //! This function disables the interrupt vectors from being generated at the
198 //! top of the RAM.
199 //!
200 //!
201 //! \return None
202 //
203 //*****************************************************************************
205 
206 //*****************************************************************************
207 //
208 //! \brief Enables BSL memory protection.
209 //!
210 //! This function enables protection on the BSL memory, which prevents any
211 //! reading, programming, or erasing of the BSL memory.
212 //!
213 //!
214 //! \return None
215 //
216 //*****************************************************************************
217 extern void SysCtl_enableBSLProtect(void);
218 
219 //*****************************************************************************
220 //
221 //! \brief Disables BSL memory protection.
222 //!
223 //! This function disables protection on the BSL memory.
224 //!
225 //!
226 //! \return None
227 //
228 //*****************************************************************************
229 extern void SysCtl_disableBSLProtect(void);
230 
231 //*****************************************************************************
232 //
233 //! \brief Enables BSL memory.
234 //!
235 //! This function enables BSL memory, which allows BSL memory to be addressed
236 //!
237 //!
238 //! \return None
239 //
240 //*****************************************************************************
241 extern void SysCtl_enableBSLMemory(void);
242 
243 //*****************************************************************************
244 //
245 //! \brief Disables BSL memory.
246 //!
247 //! This function disables BSL memory, which makes BSL memory act like vacant
248 //! memory.
249 //!
250 //!
251 //! \return None
252 //
253 //*****************************************************************************
254 extern void SysCtl_disableBSLMemory(void);
255 
256 //*****************************************************************************
257 //
258 //! \brief Sets RAM assignment to BSL area.
259 //!
260 //! This function allows RAM to be assigned to BSL, based on the selection of
261 //! the BSLRAMAssignment parameter.
262 //!
263 //! \param BSLRAMAssignment is the selection of if the BSL should be placed in
264 //! RAM or not.
265 //! Valid values are:
266 //! - \b SYSCTL_BSLRAMASSIGN_NORAM [Default]
267 //! - \b SYSCTL_BSLRAMASSIGN_LOWEST16BYTES
268 //! \n Modified bits are \b SYSBSLR of \b SYSBSLC register.
269 //!
270 //! \return None
271 //
272 //*****************************************************************************
273 extern void SysCtl_setRAMAssignedToBSL(uint8_t BSLRAMAssignment);
274 
275 //*****************************************************************************
276 //
277 //! \brief Initializes JTAG Mailbox with selected properties.
278 //!
279 //! This function sets the specified settings for the JTAG Mailbox system. The
280 //! settings that can be set are the size of the JTAG messages, and the auto-
281 //! clearing of the inbox flags. If the inbox flags are set to auto-clear, then
282 //! the inbox flags will be cleared upon reading of the inbox message buffer,
283 //! otherwise they will have to be reset by software using the
284 //! SYS_clearJTAGMailboxFlagStatus() function.
285 //!
286 //! \param mailboxSizeSelect is the size of the JTAG Mailboxes, whether 16- or
287 //! 32-bits.
288 //! Valid values are:
289 //! - \b SYSCTL_JTAGMBSIZE_16BIT [Default] - the JTAG messages will take
290 //! up only one JTAG mailbox (i. e. an outgoing message will take up
291 //! only 1 outbox of the JTAG mailboxes)
292 //! - \b SYSCTL_JTAGMBSIZE_32BIT - the JTAG messages will be contained
293 //! within both JTAG mailboxes (i. e. an outgoing message will take
294 //! up both Outboxes of the JTAG mailboxes)
295 //! \n Modified bits are \b JMBMODE of \b SYSJMBC register.
296 //! \param autoClearInboxFlagSelect decides how the JTAG inbox flags should be
297 //! cleared, whether automatically after the corresponding outbox has
298 //! been written to, or manually by software.
299 //! Valid values are:
300 //! - \b SYSCTL_JTAGINBOX0AUTO_JTAGINBOX1AUTO [Default] - both JTAG
301 //! inbox flags will be reset automatically when the corresponding
302 //! inbox is read from.
303 //! - \b SYSCTL_JTAGINBOX0AUTO_JTAGINBOX1SW - only JTAG inbox 0 flag is
304 //! reset automatically, while JTAG inbox 1 is reset with the
305 //! - \b SYSCTL_JTAGINBOX0SW_JTAGINBOX1AUTO - only JTAG inbox 1 flag is
306 //! reset automatically, while JTAG inbox 0 is reset with the
307 //! - \b SYSCTL_JTAGINBOX0SW_JTAGINBOX1SW - both JTAG inbox flags will
308 //! need to be reset manually by the
309 //! \n Modified bits are \b JMBCLR0OFF and \b JMBCLR1OFF of \b SYSJMBC
310 //! register.
311 //!
312 //! \return None
313 //
314 //*****************************************************************************
315 extern void SysCtl_initJTAGMailbox(uint8_t mailboxSizeSelect,
316  uint8_t autoClearInboxFlagSelect);
317 
318 //*****************************************************************************
319 //
320 //! \brief Returns the status of the selected JTAG Mailbox flags.
321 //!
322 //! This function will return the status of the selected JTAG Mailbox flags in
323 //! bit mask format matching that passed into the mailboxFlagMask parameter.
324 //!
325 //! \param mailboxFlagMask is the bit mask of JTAG mailbox flags that the
326 //! status of should be returned.
327 //! Mask value is the logical OR of any of the following:
328 //! - \b SYSCTL_JTAGOUTBOX_FLAG0 - flag for JTAG outbox 0
329 //! - \b SYSCTL_JTAGOUTBOX_FLAG1 - flag for JTAG outbox 1
330 //! - \b SYSCTL_JTAGINBOX_FLAG0 - flag for JTAG inbox 0
331 //! - \b SYSCTL_JTAGINBOX_FLAG1 - flag for JTAG inbox 1
332 //!
333 //! \return A bit mask of the status of the selected mailbox flags.
334 //
335 //*****************************************************************************
336 extern uint8_t SysCtl_getJTAGMailboxFlagStatus(uint8_t mailboxFlagMask);
337 
338 //*****************************************************************************
339 //
340 //! \brief Clears the status of the selected JTAG Mailbox flags.
341 //!
342 //! This function clears the selected JTAG Mailbox flags.
343 //!
344 //! \param mailboxFlagMask is the bit mask of JTAG mailbox flags that the
345 //! status of should be cleared.
346 //! Mask value is the logical OR of any of the following:
347 //! - \b SYSCTL_JTAGOUTBOX_FLAG0 - flag for JTAG outbox 0
348 //! - \b SYSCTL_JTAGOUTBOX_FLAG1 - flag for JTAG outbox 1
349 //! - \b SYSCTL_JTAGINBOX_FLAG0 - flag for JTAG inbox 0
350 //! - \b SYSCTL_JTAGINBOX_FLAG1 - flag for JTAG inbox 1
351 //!
352 //! \return None
353 //
354 //*****************************************************************************
355 extern void SysCtl_clearJTAGMailboxFlagStatus(uint8_t mailboxFlagMask);
356 
357 //*****************************************************************************
358 //
359 //! \brief Returns the contents of the selected JTAG Inbox in a 16 bit format.
360 //!
361 //! This function returns the message contents of the selected JTAG inbox. If
362 //! the auto clear settings for the Inbox flags were set, then using this
363 //! function will automatically clear the corresponding JTAG inbox flag.
364 //!
365 //! \param inboxSelect is the chosen JTAG inbox that the contents of should be
366 //! returned
367 //! Valid values are:
368 //! - \b SYSCTL_JTAGINBOX_0 - return contents of JTAG inbox 0
369 //! - \b SYSCTL_JTAGINBOX_1 - return contents of JTAG inbox 1
370 //!
371 //! \return The contents of the selected JTAG inbox in a 16 bit format.
372 //
373 //*****************************************************************************
374 extern uint16_t SysCtl_getJTAGInboxMessage16Bit(uint8_t inboxSelect);
375 
376 //*****************************************************************************
377 //
378 //! \brief Returns the contents of JTAG Inboxes in a 32 bit format.
379 //!
380 //! This function returns the message contents of both JTAG inboxes in a 32 bit
381 //! format. This function should be used if 32-bit messaging has been set in
382 //! the SYS_initJTAGMailbox() function. If the auto clear settings for the
383 //! Inbox flags were set, then using this function will automatically clear
384 //! both JTAG inbox flags.
385 //!
386 //!
387 //! \return The contents of both JTAG messages in a 32 bit format.
388 //
389 //*****************************************************************************
390 extern uint32_t SysCtl_getJTAGInboxMessage32Bit(void);
391 
392 //*****************************************************************************
393 //
394 //! \brief Sets a 16 bit outgoing message in to the selected JTAG Outbox.
395 //!
396 //! This function sets the outgoing message in the selected JTAG outbox. The
397 //! corresponding JTAG outbox flag is cleared after this function, and set
398 //! after the JTAG has read the message.
399 //!
400 //! \param outboxSelect is the chosen JTAG outbox that the message should be
401 //! set it.
402 //! Valid values are:
403 //! - \b SYSCTL_JTAGOUTBOX_0 - set the contents of JTAG outbox 0
404 //! - \b SYSCTL_JTAGOUTBOX_1 - set the contents of JTAG outbox 1
405 //! \param outgoingMessage is the message to send to the JTAG.
406 //! \n Modified bits are \b MSGHI and \b MSGLO of \b SYSJMBOx register.
407 //!
408 //! \return None
409 //
410 //*****************************************************************************
411 extern void SysCtl_setJTAGOutgoingMessage16Bit(uint8_t outboxSelect,
412  uint16_t outgoingMessage);
413 
414 //*****************************************************************************
415 //
416 //! \brief Sets a 32 bit message in to both JTAG Outboxes.
417 //!
418 //! This function sets the 32-bit outgoing message in both JTAG outboxes. The
419 //! JTAG outbox flags are cleared after this function, and set after the JTAG
420 //! has read the message.
421 //!
422 //! \param outgoingMessage is the message to send to the JTAG.
423 //! \n Modified bits are \b MSGHI and \b MSGLO of \b SYSJMBOx register.
424 //!
425 //! \return None
426 //
427 //*****************************************************************************
428 extern void SysCtl_setJTAGOutgoingMessage32Bit(uint32_t outgoingMessage);
429 
430 //*****************************************************************************
431 //
432 //! \brief Sets write protected for data FRAM and program FRAM.
433 //!
434 //! \param writeProtect is the value setting data FRAM and program write
435 //! protection.
436 //! Mask value is the logical OR of any of the following:
437 //! - \b SYSCTL_FRAMWRITEPROTECTION_DATA - data FRAM write protected
438 //! - \b SYSCTL_FRAMWRITEPROTECTION_PROGRAM - program FRAM write
439 //! protected
440 //!
441 //! \return None
442 //
443 //*****************************************************************************
444 extern void SysCtl_protectFRAMWrite(uint8_t writeProtect);
445 
446 //*****************************************************************************
447 //
448 //! \brief Sets write enable for data FRAM and program FRAM.
449 //!
450 //! \param writeEnable is the value setting data FRAM and program write
451 //! enabled.
452 //! Mask value is the logical OR of any of the following:
453 //! - \b SYSCTL_FRAMWRITEPROTECTION_DATA - data FRAM write protected
454 //! - \b SYSCTL_FRAMWRITEPROTECTION_PROGRAM - program FRAM write
455 //! protected
456 //!
457 //! \return None
458 //
459 //*****************************************************************************
460 extern void SysCtl_enableFRAMWrite(uint8_t writeEnable);
461 
462 //*****************************************************************************
463 //
464 //! \brief Sets infrared configuration bits.
465 //!
466 //! \param dataSource is the value setting infrared data source.
467 //! Valid values are:
468 //! - \b SYSCTL_INFRAREDDATASOURCE_CONFIG - infrared data from hardware
469 //! peripherals upon device configuration
470 //! - \b SYSCTL_INFRAREDDATASOURCE_IRDATA - infrared data from IRDATA
471 //! bit
472 //! \param mode is the value setting infrared mode.
473 //! Valid values are:
474 //! - \b SYSCTL_INFRAREDMODE_ASK - infrared ASK mode
475 //! - \b SYSCTL_INFRAREDMODE_FSK - infrared FSK mode
476 //! \param polarity is the value setting infrared polarity.
477 //! Valid values are:
478 //! - \b SYSCTL_INFRAREDPOLARITY_NORMAL - infrared normal polarity
479 //! - \b SYSCTL_INFRAREDPOLARITY_INVERTED - infrared inverted polarity
480 //!
481 //! \return None
482 //
483 //*****************************************************************************
484 extern void SysCtl_setInfraredConfig(uint8_t dataSource,
485  uint8_t mode,
486  uint8_t polarity);
487 
488 //*****************************************************************************
489 //
490 //! \brief Enables infrared function.
491 //!
492 //!
493 //! \return None
494 //
495 //*****************************************************************************
496 extern void SysCtl_enableInfrared(void);
497 
498 //*****************************************************************************
499 //
500 //! \brief Disables infrared function.
501 //!
502 //!
503 //! \return None
504 //
505 //*****************************************************************************
506 extern void SysCtl_disableInfrared(void);
507 
508 //*****************************************************************************
509 //
510 //! \brief This function returns the infrared data if the infrared data source
511 //! is configured as from IRDATA bit.
512 //!
513 //!
514 //! \return the infrared logic data '0' or '1'
515 //
516 //*****************************************************************************
517 extern uint8_t SysCtl_getInfraredData(void);
518 
519 //*****************************************************************************
520 //
521 // Mark the end of the C bindings section for C++ compilers.
522 //
523 //*****************************************************************************
524 #ifdef __cplusplus
525 }
526 #endif
527 
528 #endif
529 #endif // __MSP430WARE_SYSCTL_H__
void SysCtl_enableFRAMWrite(uint8_t writeEnable)
Sets write enable for data FRAM and program FRAM.
Definition: sysctl.c:129
void SysCtl_disableBSLProtect(void)
Disables BSL memory protection.
Definition: sysctl.c:55
uint8_t SysCtl_getInfraredData(void)
This function returns the infrared data if the infrared data source is configured as from IRDATA bit...
Definition: sysctl.c:156
void SysCtl_setJTAGOutgoingMessage16Bit(uint8_t outboxSelect, uint16_t outgoingMessage)
Sets a 16 bit outgoing message in to the selected JTAG Outbox.
Definition: sysctl.c:107
void SysCtl_enableRAMBasedInterruptVectors(void)
Enables RAM-based Interrupt Vectors.
Definition: sysctl.c:40
void SysCtl_enableBSLMemory(void)
Enables BSL memory.
Definition: sysctl.c:60
uint16_t SysCtl_getJTAGInboxMessage16Bit(uint8_t inboxSelect)
Returns the contents of the selected JTAG Inbox in a 16 bit format.
Definition: sysctl.c:94
void SysCtl_enableBSLProtect(void)
Enables BSL memory protection.
Definition: sysctl.c:50
void SysCtl_setRAMAssignedToBSL(uint8_t BSLRAMAssignment)
Sets RAM assignment to BSL area.
Definition: sysctl.c:70
void SysCtl_setInfraredConfig(uint8_t dataSource, uint8_t mode, uint8_t polarity)
Sets infrared configuration bits.
Definition: sysctl.c:139
uint8_t SysCtl_getBSLEntryIndication(void)
Returns the indication of a BSL entry sequence from the Spy-Bi-Wire.
Definition: sysctl.c:26
void SysCtl_setJTAGOutgoingMessage32Bit(uint32_t outgoingMessage)
Sets a 32 bit message in to both JTAG Outboxes.
Definition: sysctl.c:113
void SysCtl_enableInfrared(void)
Enables infrared function.
Definition: sysctl.c:146
void SysCtl_disableRAMBasedInterruptVectors(void)
Disables RAM-based Interrupt Vectors.
Definition: sysctl.c:45
void SysCtl_protectFRAMWrite(uint8_t writeProtect)
Sets write protected for data FRAM and program FRAM.
Definition: sysctl.c:119
void SysCtl_enablePMMAccessProtect(void)
Enables PMM Access Protection.
Definition: sysctl.c:35
void SysCtl_clearJTAGMailboxFlagStatus(uint8_t mailboxFlagMask)
Clears the status of the selected JTAG Mailbox flags.
Definition: sysctl.c:89
void SysCtl_enableDedicatedJTAGPins(void)
Sets the JTAG pins to be exclusively for JTAG until a BOR occurs.
Definition: sysctl.c:21
uint8_t SysCtl_getJTAGMailboxFlagStatus(uint8_t mailboxFlagMask)
Returns the status of the selected JTAG Mailbox flags.
Definition: sysctl.c:84
void SysCtl_disableInfrared(void)
Disables infrared function.
Definition: sysctl.c:151
void SysCtl_initJTAGMailbox(uint8_t mailboxSizeSelect, uint8_t autoClearInboxFlagSelect)
Initializes JTAG Mailbox with selected properties.
Definition: sysctl.c:76
uint32_t SysCtl_getJTAGInboxMessage32Bit(void)
Returns the contents of JTAG Inboxes in a 32 bit format.
Definition: sysctl.c:99
void SysCtl_disableBSLMemory(void)
Disables BSL memory.
Definition: sysctl.c:65

Copyright 2015, Texas Instruments Incorporated