ELIOT1 HAL
Загрузка...
Поиск...
Не найдено
hal_common.h
1
12/*
13 * @file hal_common.h
14 *
15 * @brief Интерфейс общих определений, используемых библиотекой HAL
16 */
17
18#ifndef HAL_COMMON_H
19#define HAL_COMMON_H
20
21#include <inttypes.h>
22#include <assert.h>
23#include <stdbool.h>
24#include <stdint.h>
25#include <stdlib.h>
26#include <string.h>
27#include <stdio.h>
28#include <math.h>
29
30#include "hal_device.h"
31
32#if defined(__ICCARM__) || (defined(__CC_ARM) || defined(__ARMCC_VERSION)) || defined(__GNUC__)
33/* #if __GNUC__ < 10 || (__GNUC__ == 10 && __GNUC_MINOR__ < 3)
34 #error "Unsupported GCC version. Download ARM GCC toolchain v10.3.0 or newer."
35#endif */
36#include <stddef.h>
37#ifndef __cplusplus
38 #pragma GCC diagnostic ignored "-Wstrict-prototypes"
39#endif
40#endif
41
42#include "hal_device.h"
43
44/* #undef UNUSED */
45#define UNUSED(x) ((void)(x));
50#define MAKE_VERSION(major, minor, bugfix) \
51 (((major) << 16) | ((minor) << 8) | (bugfix))
52
56#define HAL_COMMON_DRIVER_VERSION (MAKE_VERSION(0, 1, 0))
57
61typedef int32_t status_t;
62
72void LBBLEndian(uint32_t *val, uint8_t num_bits);
73
81#if !defined(BE_TO_LE32)
82#define BE_TO_LE32(x) \
83 ((((unsigned)(x) >> 24) & 0xFF) \
84 | (((unsigned)(x) << 24 ) & 0xFF000000) \
85 | (((unsigned)(x) >> 8) & 0xFF00) \
86 | (((unsigned)(x) << 8 ) & 0xFF0000))
87#endif
88
96#if !defined(BE_TO_LE24)
97#define BE_TO_LE24(x) \
98 ((((unsigned)(x) >> 16) & 0xFF) \
99 | ((unsigned)(x) & 0xFF00) \
100 | (((unsigned)(x) << 16 ) & 0xFF0000))
101#endif
102
110#if !defined(BE_TO_LE16)
111#define BE_TO_LE16(x) \
112 ((((unsigned)(x) >> 8) & 0xFF) \
113 | (((unsigned)(x) << 8 ) & 0xFF00))
114#endif
115
124#if !defined(MIN)
125#define MIN(a, b) (((a) < (b)) ? (a) : (b))
126#endif
127
136#if !defined(MAX)
137#define MAX(a, b) (((a) > (b)) ? (a) : (b))
138#endif
139
147#if !defined(DIM)
148#define DIM(x) (sizeof(x) / sizeof((x)[0]))
149#endif
150
151#if !defined(UINT16_MAX)
152#define UINT16_MAX ((uint16_t) -1)
153#endif
154
155#if !defined(UINT32_MAX)
156#define UINT32_MAX ((uint32_t) -1)
157#endif
158
171#if defined(__GNUC__) && !defined(__ARMCC_VERSION)
172#define SUPPRESS_FALL_THROUGH_WARNING() __attribute__ ((fallthrough))
173#else
174#define SUPPRESS_FALL_THROUGH_WARNING()
175#endif
176
189#undef FIELD_BIT
190#define FIELD_BIT(top, bottom) ((top) - (bottom) + 1)
191
192#endif /* HAL_COMMON_H */
193
void LBBLEndian(uint32_t *val, uint8_t num_bits)
Преобразование формата представления данных Big-endian <-> Little-endian.
int32_t status_t
Тип, используемый для всех возвращаемых значений статуса и ошибок
Definition hal_common.h:61