46 lines
1.7 KiB
C
46 lines
1.7 KiB
C
/**
|
||
* @file pcan_config.h
|
||
* @brief Настройки времени компиляции.
|
||
*
|
||
* Значения по умолчанию рассчитаны на МК без ОС. Переопределяются
|
||
* либо через -D, либо через собственный pcan_config_user.h.
|
||
*/
|
||
#ifndef PCAN_CONFIG_H
|
||
#define PCAN_CONFIG_H
|
||
|
||
#if defined(PCAN_USE_USER_CONFIG)
|
||
#include "pcan_config_user.h"
|
||
#endif
|
||
|
||
/** Максимальная длина поля данных CAN. */
|
||
#ifndef PCAN_DATA_MAX
|
||
#define PCAN_DATA_MAX 8U
|
||
#endif
|
||
|
||
/**
|
||
* @brief Барьер компилятора для разделяемых с прерыванием переменных.
|
||
*
|
||
* Библиотека не отключает прерывания сама: очереди рассчитаны на схему
|
||
* "один писатель + один читатель", где индексы обновляются атомарно.
|
||
* Если у вас несколько писателей, оберните вызовы своей блокировкой.
|
||
*/
|
||
#ifndef PCAN_BARRIER
|
||
# if defined(__GNUC__) || defined(__clang__) || defined(__ARMCC_VERSION)
|
||
# define PCAN_BARRIER() __asm volatile("" ::: "memory")
|
||
# else
|
||
# define PCAN_BARRIER() do { } while (0)
|
||
# endif
|
||
#endif
|
||
|
||
/** Таблица CRC (512 байт flash) вместо побитового расчёта. */
|
||
#ifndef PCAN_CRC_TABLE
|
||
#define PCAN_CRC_TABLE 0
|
||
#endif
|
||
|
||
/** Количество регионов, которые может содержать одна карта GAS. */
|
||
#ifndef PCAN_GAS_MAX_REGIONS
|
||
#define PCAN_GAS_MAX_REGIONS 16U
|
||
#endif
|
||
|
||
#endif /* PCAN_CONFIG_H */
|