Руслан Урядинский / libuavcan

Dependents:   UAVCAN UAVCAN_Subscriber

Committer:
RuslanUrya
Date:
Sat Apr 14 10:25:32 2018 +0000
Revision:
0:dfe6edabb8ec
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RuslanUrya 0:dfe6edabb8ec 1 /*
RuslanUrya 0:dfe6edabb8ec 2 * Copyright (C) 2014 Pavel Kirienko <pavel.kirienko@gmail.com>
RuslanUrya 0:dfe6edabb8ec 3 */
RuslanUrya 0:dfe6edabb8ec 4
RuslanUrya 0:dfe6edabb8ec 5 #pragma once
RuslanUrya 0:dfe6edabb8ec 6
RuslanUrya 0:dfe6edabb8ec 7 #include <cstdint>
RuslanUrya 0:dfe6edabb8ec 8 #include <chip.h>
RuslanUrya 0:dfe6edabb8ec 9
RuslanUrya 0:dfe6edabb8ec 10 /*
RuslanUrya 0:dfe6edabb8ec 11 * Compiler version check
RuslanUrya 0:dfe6edabb8ec 12 */
RuslanUrya 0:dfe6edabb8ec 13 #ifdef __GNUC__
RuslanUrya 0:dfe6edabb8ec 14 # if (__GNUC__ * 10 + __GNUC_MINOR__) < 49
RuslanUrya 0:dfe6edabb8ec 15 # error "Use GCC 4.9 or newer"
RuslanUrya 0:dfe6edabb8ec 16 # endif
RuslanUrya 0:dfe6edabb8ec 17 #endif
RuslanUrya 0:dfe6edabb8ec 18
RuslanUrya 0:dfe6edabb8ec 19
RuslanUrya 0:dfe6edabb8ec 20 namespace uavcan_lpc11c24
RuslanUrya 0:dfe6edabb8ec 21 {
RuslanUrya 0:dfe6edabb8ec 22
RuslanUrya 0:dfe6edabb8ec 23 /**
RuslanUrya 0:dfe6edabb8ec 24 * Locks UAVCAN driver interrupts.
RuslanUrya 0:dfe6edabb8ec 25 * TODO: priority.
RuslanUrya 0:dfe6edabb8ec 26 */
RuslanUrya 0:dfe6edabb8ec 27 struct CriticalSectionLocker
RuslanUrya 0:dfe6edabb8ec 28 {
RuslanUrya 0:dfe6edabb8ec 29 CriticalSectionLocker()
RuslanUrya 0:dfe6edabb8ec 30 {
RuslanUrya 0:dfe6edabb8ec 31 __disable_irq();
RuslanUrya 0:dfe6edabb8ec 32 }
RuslanUrya 0:dfe6edabb8ec 33 ~CriticalSectionLocker()
RuslanUrya 0:dfe6edabb8ec 34 {
RuslanUrya 0:dfe6edabb8ec 35 __enable_irq();
RuslanUrya 0:dfe6edabb8ec 36 }
RuslanUrya 0:dfe6edabb8ec 37 };
RuslanUrya 0:dfe6edabb8ec 38
RuslanUrya 0:dfe6edabb8ec 39 /**
RuslanUrya 0:dfe6edabb8ec 40 * Internal for the driver
RuslanUrya 0:dfe6edabb8ec 41 */
RuslanUrya 0:dfe6edabb8ec 42 namespace clock
RuslanUrya 0:dfe6edabb8ec 43 {
RuslanUrya 0:dfe6edabb8ec 44
RuslanUrya 0:dfe6edabb8ec 45 std::uint64_t getUtcUSecFromCanInterrupt();
RuslanUrya 0:dfe6edabb8ec 46
RuslanUrya 0:dfe6edabb8ec 47 }
RuslanUrya 0:dfe6edabb8ec 48
RuslanUrya 0:dfe6edabb8ec 49 }