The official git repository for OSD-Contiki, the open source OS for the Internet of Things
Go to file
Andre Guedes cb0510ebcf x86: Disable NMI while initializing RTC
According to [1], we should disable non-maskable and maskable interrupts
while initializing RTC. Otherwise, the RTC may be left in an undefined
state (non-functional) if an interrupt occurs. Currently, maskable
interrupts are already disabled, but NMI is not.

This patch adds helpers APIs to enable/disable non-maskable interrupts
(NMI) and changes rtc_init() to disable NMI while initializing the RTC.

NMI enable/disable code is legacy-PC specific therefore it was put in
driver/legacy_pc/ directory.

Regarding the RTC initialization changes, just calling nmi_disable() and
nmi_enable is not enough since NMI and RTC share the same IO port. So We
should also set the NMI_ENABLE bit while selecting the RTC_INDEX.

Additionally, the nmi_disable() call is not strictly required since we
set the NMI_ENABLE bit while selecting the RTC_INDEX. However, to make
clear hat we are disabling NMI and to improve readability (by matching
NMI disable/enable), the nmi_disable() call was purposely used.

[1] http://wiki.osdev.org/RTC
2015-12-21 08:06:14 -02:00
apps Adaptive time synchronization for TSCH 2015-12-07 11:51:41 +01:00
core Merge pull request #1285 from simonduq/pr/tsch 2015-12-07 14:29:10 +01:00
cpu x86: Disable NMI while initializing RTC 2015-12-21 08:06:14 -02:00
dev Merge pull request #1168 from bthebaudeau/enc28j60-fixes-and-improvements 2015-12-15 00:14:02 +01:00
doc Merge pull request #1133 from bkozak-scanimetrics/cc-gcc 2015-12-05 00:39:59 +01:00
examples examples: Add all-timers example 2015-12-21 08:06:14 -02:00
lib/newlib Implement generic Newlib syscalls 2015-12-16 19:50:49 +01:00
platform x86: Move bootstrap code and linker script to cpu/x86 2015-12-21 08:06:14 -02:00
regression-tests jn516x: remove temporary adjustements for compilation in a 802.15.4e-free Contiki 2015-12-07 11:51:50 +01:00
tools fixed make login for Zoul on MAC 2015-12-19 10:28:30 +01:00
.gitattributes Add binary files file extension 2015-10-22 16:19:39 +02:00
.gitignore gitignore: Add Vim swap files 2015-12-21 08:06:14 -02:00
.gitmodules Align to current master 2015-09-04 17:01:04 +02:00
.travis.yml Merge pull request #1219 from simonduq/jn516x-port 2015-09-25 12:09:52 +02:00
CONTRIBUTING.md Updated CONTRIBUTING.md to reflect Contiki's new merging policy 2015-08-18 22:06:56 +02:00
LICENSE Removed the explicit year 2012 to make it more generic 2012-10-25 23:08:54 +02:00
Makefile.include Makefile.include: Remove unused MODULESSUBST 2015-06-01 22:09:58 +02:00
README-BUILDING.md Rename to md 2013-03-26 23:15:37 +01:00
README-EXAMPLES.md Several minor consistency improvements. 2013-07-31 00:55:31 +02:00
README.md Travis icon in README.md: show build status of the current master rather than latest build status (can be any pull request) 2015-08-19 09:21:38 +02:00

The Contiki Operating System

Build Status

Contiki is an open source operating system that runs on tiny low-power microcontrollers and makes it possible to develop applications that make efficient use of the hardware while providing standardized low-power wireless communication for a range of hardware platforms.

Contiki is used in numerous commercial and non-commercial systems, such as city sound monitoring, street lights, networked electrical power meters, industrial monitoring, radiation monitoring, construction site monitoring, alarm systems, remote house monitoring, and so on.

For more information, see the Contiki website:

http://contiki-os.org