libuav original

Dependents:   UAVCAN UAVCAN_Subscriber

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers internal.hpp Source File

internal.hpp

00001 /*
00002  * Copyright (C) 2014 Pavel Kirienko <pavel.kirienko@gmail.com>
00003  */
00004 
00005 #pragma once
00006 
00007 #include <cstdint>
00008 #include <chip.h>
00009 
00010 /*
00011  * Compiler version check
00012  */
00013 #ifdef __GNUC__
00014 # if (__GNUC__ * 10 + __GNUC_MINOR__) < 49
00015 #  error "Use GCC 4.9 or newer"
00016 # endif
00017 #endif
00018 
00019 
00020 namespace uavcan_lpc11c24
00021 {
00022 
00023 /**
00024  * Locks UAVCAN driver interrupts.
00025  * TODO: priority.
00026  */
00027 struct CriticalSectionLocker
00028 {
00029     CriticalSectionLocker()
00030     {
00031         __disable_irq();
00032     }
00033     ~CriticalSectionLocker()
00034     {
00035         __enable_irq();
00036     }
00037 };
00038 
00039 /**
00040  * Internal for the driver
00041  */
00042 namespace clock
00043 {
00044 
00045 std::uint64_t getUtcUSecFromCanInterrupt();
00046 
00047 }
00048 
00049 }