Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: UAVCAN UAVCAN_Subscriber
libuavcan_drivers/lpc11c24/driver/src/internal.hpp@0:dfe6edabb8ec, 2018-04-14 (annotated)
- Committer:
- RuslanUrya
- Date:
- Sat Apr 14 10:25:32 2018 +0000
- Revision:
- 0:dfe6edabb8ec
Initial commit
Who changed what in which revision?
User | Revision | Line number | New 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 | } |