Contiki-Inga 3.x
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
cpu
cc2538
dev
watchdog.c
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2012, Texas Instruments Incorporated - http://www.ti.com/
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
*
14
* 3. Neither the name of the copyright holder nor the names of its
15
* contributors may be used to endorse or promote products derived
16
* from this software without specific prior written permission.
17
*
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
27
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
29
* OF THE POSSIBILITY OF SUCH DAMAGE.
30
*/
31
/**
32
* \addtogroup cc2538
33
* @{
34
*
35
* \defgroup cc2538-wdt cc2538 watchdog timer driver
36
*
37
* Driver for the cc2538 Watchdog Timer
38
* @{
39
*
40
* \file
41
* Implementation of the cc2538 watchdog driver. The peripheral runs in
42
* watchdog mode.
43
*/
44
#include "contiki.h"
45
#include "
reg.h
"
46
#include "
cpu.h
"
47
#include "
dev/smwdthrosc.h
"
48
/*---------------------------------------------------------------------------*/
49
/** \brief Initialisation function for the WDT. Currently simply explicitly
50
* sets the WDT interval to max interval */
51
void
52
watchdog_init
(
void
)
53
{
54
/* Max interval, don't enable yet */
55
REG(
SMWDTHROSC_WDCTL
) = 0;
56
}
57
/*---------------------------------------------------------------------------*/
58
/** \brief Starts the WDT in watchdog mode, maximum interval */
59
void
60
watchdog_start
(
void
)
61
{
62
/* Max interval (32768), watchdog mode, Enable */
63
REG(
SMWDTHROSC_WDCTL
) =
SMWDTHROSC_WDCTL_EN
;
64
}
65
/*---------------------------------------------------------------------------*/
66
/** \brief Writes the WDT clear sequence. This function assumes that we are
67
* in watchdog mode and that interval bits (bits [1:0]) are 00 */
68
void
69
watchdog_periodic
(
void
)
70
{
71
/* Safe to write to bits [3:0] since EN is 1 */
72
REG(
SMWDTHROSC_WDCTL
) = (
SMWDTHROSC_WDCTL_CLR_3
|
SMWDTHROSC_WDCTL_CLR_1
);
73
REG(
SMWDTHROSC_WDCTL
) = (
SMWDTHROSC_WDCTL_CLR_2
|
SMWDTHROSC_WDCTL_CLR_0
);
74
}
75
/*---------------------------------------------------------------------------*/
76
/** \brief In watchdog mode, the WDT can not be stopped. This function is
77
* defined here to satisfy API requirements.
78
*/
79
void
80
watchdog_stop
(
void
)
81
{
82
return
;
83
}
84
/*---------------------------------------------------------------------------*/
85
/** \brief Keeps control until the WDT throws a reset signal */
86
void
87
watchdog_reboot
(
void
)
88
{
89
INTERRUPTS_DISABLE
();
90
while
(1);
91
}
92
/**
93
* @}
94
* @}
95
*/
Generated on Thu Apr 24 2014 16:26:14 for Contiki-Inga 3.x by
1.8.3.1