* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Adc ADC Driver
+ * @{ */
+
+/** @file Adc_Cfg.h
+ * Definitions of configuration parameters for ADC Driver.
+ */
+
#ifndef ADC_CFG_H_\r
#define ADC_CFG_H_\r
#include "Dma.h"
-\r
-#define ADC_PRIORITY_HW 0\r
-#define ADC_PRIORITY_HW_SW 1\r
+
+/** HW priority mechanism only. @see ADC_PRIORITY_IMPLEMENTATION */
+#define ADC_PRIORITY_HW 0
+/** HW and SW priority mechanism. @see ADC_PRIORITY_IMPLEMENTATION */
+#define ADC_PRIORITY_HW_SW 1
+/** No priority mechanism. @see ADC_PRIORITY_IMPLEMENTATION */
#define ADC_PRIORITY_NONE 2\r
-\r
-#define ADC_DEINIT_API STD_ON\r
-#define ADC_DEV_ERROR_DETECT STD_ON\r
-#define ADC_ENABLE_QUEUING STD_ON\r
-#define ADC_ENABLE_START_STOP_GROUP_API STD_ON\r
-#define ADC_GRP_NOTIF_CAPABILITY STD_ON\r
-#define ADC_HW_TRIGGER_API STD_OFF /* Not implemented. */\r
-#define ADC_PRIORITY_IMPLEMENTATION ADC_PRIORITY_HW\r
-#define ADC_READ_GROUP_API STD_ON\r
-#define ADC_VERSION_API STD_ON /* Not implemented. */\r
+
+/** Build DeInit API */
+#define ADC_DEINIT_API STD_ON
+/** Enable Development Error Trace */
+#define ADC_DEV_ERROR_DETECT STD_ON
+/** Not supported. */
+#define ADC_ENABLE_QUEUING STD_ON
+/** Build Start/Stop group API. */
+#define ADC_ENABLE_START_STOP_GROUP_API STD_ON
+/** Enable group conversion notification. */
+#define ADC_GRP_NOTIF_CAPABILITY STD_ON
+/** Not supported. */
+#define ADC_HW_TRIGGER_API STD_OFF
+/** Implemented priority mechanism. */
+#define ADC_PRIORITY_IMPLEMENTATION ADC_PRIORITY_HW
+/** Build Read group API */
+#define ADC_READ_GROUP_API STD_ON
+/** Build version info API (Not supported) */
+#define ADC_VERSION_API STD_ON
typedef uint16_t Adc_ValueGroupType;
-/* Non-standard type */
+/** HW specific data type. */
typedef union
{
vuint32_t R;
} B;
}Adc_CommandType;
-/* Std-type, supplier defined */
+/** Type of clock input for the conversion unit. */
typedef enum
{
ADC_SYSTEM_CLOCK
}Adc_ClockSourceType;
-/* Std-type, supplier defined */
+/** Clock prescaler factor. */
typedef enum
{
ADC_SYSTEM_CLOCK_DISABLED,
ADC_SYSTEM_CLOCK_DIVIDE_FACTOR_64,
}Adc_PrescaleType;
-/* Non-standard type */
+/** Container for HW setup. */
typedef struct
{
Adc_ClockSourceType clockSource;
Adc_PrescaleType adcPrescale;
}Adc_HWConfigurationType;
-/* Std-type, supplier defined */
+/** Reference voltage source. */
typedef enum
{
ADC_REFERENCE_VOLTAGE_GROUND,
ADC_REFERENCE_VOLTAGE_5V,
}Adc_VoltageSourceType;
-/* Std-type, supplier defined */
+/** Duration of conversion. */
typedef enum
{
ADC_CONVERSION_TIME_2_CLOCKS,
ADC_CONVERSION_TIME_128_CLOCKS
}Adc_ConversionTimeType;
-/* Non-standard type */
+/** Enable/disable calibration. */
typedef enum
{
ADC_CALIBRATION_DISABLED,
ADC_CALIBRATION_ENABLED
}Adc_CalibrationType;
-/* Std-type, supplier defined */
+/** Channel resolution. */
typedef enum
{
ADC_RESOLUTION_12BITS
}Adc_ResolutionType;
-/* Non-standard type */
-/* Channel definitions. */
+/** Container for channel configuration. */
typedef struct
{
Adc_ConversionTimeType adcChannelConvTime;
/* TODO list timer sources here. */
-/* Std-type, supplier defined */
+/** Not supported. */
typedef enum
{
ADC_NO_TIMER,
}Adc_HwTriggerTimerType;
-/* Std-type, supplier defined */
+/** Not supported. */
typedef uint16_t Adc_StreamNumSampleType;
-/* Std-type, supplier defined */
+/** Channel conversion mode. */
typedef enum
{
ADC_CONV_MODE_DISABLED,
- ADC_CONV_MODE_ONESHOT = 1,
- ADC_CONV_MODE_CONTINOUS = 9,
+ ADC_CONV_MODE_ONESHOT = 1, /**< A single conversion. */
+ ADC_CONV_MODE_CONTINOUS = 9, /**< Conversions performed continuously. */
}Adc_GroupConvModeType;
-/* Impl. specific */
+/** Container for module initialization parameters. */
typedef struct
{
const Adc_HWConfigurationType* hwConfigPtr;
extern const Adc_ConfigType AdcConfig [];
-/* Used ?? */
+/** Container for groups status info. */
typedef struct
{
uint8 notifictionEnable;
Adc_StatusType groupStatus;
}Adc_GroupStatus;
-/* Implementation specific */
+/** Container for group setup. */
typedef struct
{
Adc_GroupAccessModeType accessMode;
}Adc_GroupDefType;
\r
/* Group definitions. */\r
-\r
+
+/** ID of group */
typedef enum\r
{\r
ADC_GROUP0,\r
ADC_GROUP3,\r
ADC_NBR_OF_GROUPS\r
}Adc_GroupType;\r
-\r
+
+/** ID of channel */
typedef enum\r
{\r
ADC_CH0,\r
ADC_GROUP3_CH2,\r
ADC_NBR_OF_GROUP3_CHANNELS,\r
}Adc_Group3Signals;\r
-\r
-extern const struct tcd_t AdcGroupDMACommandConfig [ADC_NBR_OF_GROUPS];\r
+
+/** HW specific command configarations. */
+extern const struct tcd_t AdcGroupDMACommandConfig [ADC_NBR_OF_GROUPS];
+/** HW specific result buffer configarations. */
extern const struct tcd_t AdcGroupDMAResultConfig [ADC_NBR_OF_GROUPS];\r
\r
#endif /*ADC_CFG_H_*/\r
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup CanIf CAN Interface
+ * @{ */
-
-
-
-
-
+/** @file CanIf_Cfg.h
+ * Definitions of configuration parameters for CAN Interface.
+ */
#ifndef CANIF_CFG_H_\r
#define CANIF_CFG_H_\r
\r
#include "Can.h"\r
-// Identifiers for the elements in CanIfControllerConfig[]
-// This is the ConfigurationIndex in CanIf_InitController()
+/** Identifiers for the elements in CanIfControllerConfig[].
+ * This is the ConfigurationIndex in CanIf_InitController(). */
typedef enum {
CANIF_CHANNEL_0_CONFIG_0 = 0,
CANIF_CHANNEL_CONFIGURATION_CNT
} CanIf_Arc_ConfigurationIndexType;
+/** Channel id's */
typedef enum {
CANIF_CHANNEL_0,
CANIF_CHANNEL_1,
CANIF_CHANNEL_CNT,
} CanIf_Arc_ChannelIdType;
-\r
+
+/** Software filtering type */
typedef enum {\r
- CANIF_SOFTFILTER_TYPE_BINARY = 0, // Not supported\r
- CANIF_SOFTFILTER_TYPE_INDEX, // Not supported\r
- CANIF_SOFTFILTER_TYPE_LINEAR, // Not supported\r
- CANIF_SOFTFILTER_TYPE_TABLE, // Not supported\r
- CANIF_SOFTFILTER_TYPE_MASK, // CanIfCanRxPduCanIdMask in RxPduConfig is used for filtering\r
+ CANIF_SOFTFILTER_TYPE_BINARY = 0, /**< Not supported */
+ CANIF_SOFTFILTER_TYPE_INDEX, /**< Not supported */
+ CANIF_SOFTFILTER_TYPE_LINEAR, /**< Not supported */
+ CANIF_SOFTFILTER_TYPE_TABLE, /**< Not supported */
+ CANIF_SOFTFILTER_TYPE_MASK, /**< CanIfCanRxPduCanIdMask in RxPduConfig is used for filtering */
} CanIf_SoftwareFilterTypeType;\r
-\r
+
+/** Type of the upper layer interfacing this module */
typedef enum {\r
CANIF_USER_TYPE_CAN_NM,\r
CANIF_USER_TYPE_CAN_TP,\r
CANIF_USER_TYPE_CAN_SPECIAL,\r
} CanIf_UserTypeType;\r
\r
-\r
-\r
+/** Notification function for CANIF_USER_TYPE_CAN_SPECIAL */
typedef void (*CanIf_FuncTypeCanSpecial)(PduIdType, const uint8 *, uint8, Can_IdType);\r
-\r
+
+/** Defines if PDU Can id can be changed at runtime. */
typedef enum {\r
CANIF_PDU_TYPE_STATIC = 0,\r
- CANIF_PDU_TYPE_DYNAMIC // Not supported\r
+ CANIF_PDU_TYPE_DYNAMIC /**< Not supported */
} CanIf_PduTypeType;\r
-\r
+
+/** PDU Can id type */
typedef enum {\r
CANIF_CAN_ID_TYPE_29 = 0,\r
CANIF_CAN_ID_TYPE_11\r
/*\r
* Public container\r
*/\r
-#define CANIF_VERSION_INFO_API STD_ON\r
-#define CANIF_DEV_ERROR_DETECT STD_ON\r
-#define CANIF_DLC_CHECK STD_ON\r
-#define CANIF_MULITPLE_DRIVER_SUPPORT STD_OFF // Not supported\r
-#define CANIF_READRXPDU_DATA_API STD_OFF // Not supported\r
-#define CANIF_READRXPDU_NOTIFY_STATUS_API STD_OFF // Not supported\r
-#define CANIF_READTXPDU_NOTIFY_STATUS_API STD_OFF // Not supported\r
-#define CANIF_SETDYNAMICTXID_API STD_OFF // Not supported\r
-#define CANIF_WAKEUP_EVENT_API STD_OFF // Not supported\r
-#define CANIF_TRANSCEIVER_API STD_OFF // Not supported\r
-#define CANIF_TRANSMIT_CANCELLATION STD_OFF // Not supported\r
+#define CANIF_VERSION_INFO_API STD_ON /**< Build version info API */
+#define CANIF_DEV_ERROR_DETECT STD_ON /**< Enable Development Error Trace */
+#define CANIF_DLC_CHECK STD_ON /**< Enable/disable DLC checking. */
+#define CANIF_MULITPLE_DRIVER_SUPPORT STD_OFF /**< Not supported */
+#define CANIF_READRXPDU_DATA_API STD_OFF /**< Not supported */
+#define CANIF_READRXPDU_NOTIFY_STATUS_API STD_OFF /**< Not supported */
+#define CANIF_READTXPDU_NOTIFY_STATUS_API STD_OFF /**< Not supported */
+#define CANIF_SETDYNAMICTXID_API STD_OFF /**< Not supported */
+#define CANIF_WAKEUP_EVENT_API STD_OFF /**< Not supported */
+#define CANIF_TRANSCEIVER_API STD_OFF /**< Not supported */
+#define CANIF_TRANSMIT_CANCELLATION STD_OFF /**< Not supported */
\r
//-------------------------------------------------------------------\r
\r
\r
\r
//-------------------------------------------------------------------\r
-/*\r
- * CanIfHrhRangeConfig container\r
- */\r
\r
+/** Parameters for configuring Can id ranges. Not supported. */
typedef struct {\r
- // Lower CAN Identifier of a receive CAN L-PDU for identifier range\r
- // definition, in which all CAN Ids shall pass the software filtering. Range: 11\r
- // Bit for Standard CAN Identifier 29 Bit for Extended CAN Identifer\r
+ /** Lower CAN Identifier of a receive CAN L-PDU for identifier range
+ * definition, in which all CAN Ids shall pass the software filtering. Range: 11
+ * Bit for Standard CAN Identifier 29 Bit for Extended CAN Identifer */
uint32 CanIfRxPduLowerCanId;\r
\r
- // Upper CAN Identifier of a receive CAN L-PDU for identifier range\r
- // definition, in which all CAN Ids shall pass the software filtering. Range: 11\r
- // Bit for Standard CAN Identifier 29 Bit for Extended CAN Identifer\r
+ /** Upper CAN Identifier of a receive CAN L-PDU for identifier range
+ * definition, in which all CAN Ids shall pass the software filtering. Range: 11
+ * Bit for Standard CAN Identifier 29 Bit for Extended CAN Identifer */
uint32 CanIfRxPduUpperCanId;\r
} CanIf_HrhRangeConfigType;\r
\r
\r
-\r
//-------------------------------------------------------------------\r
/*\r
* CanIfInitHrhConfig container\r
- */\r
+ */
+/** Definition of Hardware Receive Handle */
typedef struct {\r
- // Defines the HRH type i.e, whether its a BasicCan or FullCan. If BasicCan is\r
- // configured, software filtering is enabled.\r
+ /** Defines the HRH type i.e, whether its a BasicCan or FullCan. If BasicCan is
+ * configured, software filtering is enabled. */
Can_Arc_HohType CanIfHrhType;\r
\r
- // Selects the hardware receive objects by using the HRH range/list from\r
- // CAN Driver configuration to define, for which HRH a software filtering has\r
- // to be performed at during receive processing. True: Software filtering is\r
- // enabled False: Software filtering is disabled\r
+ /** Selects the hardware receive objects by using the HRH range/list from
+ * CAN Driver configuration to define, for which HRH a software filtering has
+ * to be performed at during receive processing. True: Software filtering is
+ * enabled False: Software filtering is disabled */
boolean CanIfSoftwareFilterHrh;\r
\r
- // Reference to controller Id to which the HRH belongs to. A controller can\r
- // contain one or more HRHs.\r
+ /** Reference to controller Id to which the HRH belongs to. A controller can
+ * contain one or more HRHs. */
CanIf_Arc_ChannelIdType CanIfCanControllerHrhIdRef;\r
\r
- // The parameter refers to a particular HRH object in the CAN Driver Module\r
- // configuration. The HRH id is unique in a given CAN Driver. The HRH Ids\r
- // are defined in the CAN Driver Module and hence it is derived from CAN\r
- // Driver Configuration.\r
+ /** The parameter refers to a particular HRH object in the CAN Driver Module
+ * configuration. The HRH id is unique in a given CAN Driver. The HRH Ids
+ * are defined in the CAN Driver Module and hence it is derived from CAN
+ * Driver Configuration. */
Can_Arc_HRHType CanIfHrhIdSymRef ;\r
\r
- // Defines the parameters required for configuraing multiple\r
- // CANID ranges for a given same HRH.\r
+ /** Defines the parameters required for configuraing multiple
+ * CANID ranges for a given same HRH. */
const CanIf_HrhRangeConfigType *CanIfHrhRangeConfig;\r
\r
- // End Of List. Set to TRUE is this is the last object in the list.\r
+ /** End Of List. Set to TRUE if this is the last object in the list. */
boolean CanIf_Arc_EOL;\r
} CanIf_HrhConfigType;\r
\r
/*\r
* CanIfInitHthConfig container\r
*/\r
-\r
+/** Definition of Hardware Transmit Handle */
typedef struct {\r
- // Defines the HTH type i.e, whether its a BasicCan or FullCan.\r
+ /** Defines the HTH type i.e, whether its a BasicCan or FullCan. */
Can_Arc_HohType CanIfHthType;\r
\r
- // Reference to controller Id to which the HTH belongs to. A controller\r
- // can contain one or more HTHs\r
+ /** Reference to controller Id to which the HTH belongs to. A controller
+ * can contain one or more HTHs */
CanIf_Arc_ChannelIdType CanIfCanControllerIdRef;\r
\r
- // The parameter refers to a particular HTH object in the CAN Driver Module\r
- // configuration. The HTH id is unique in a given CAN Driver. The HTH Ids\r
- // are defined in the CAN Driver Module and hence it is derived from CAN\r
- // Driver Configuration.\r
+ /** The parameter refers to a particular HTH object in the CAN Driver Module
+ * configuration. The HTH id is unique in a given CAN Driver. The HTH Ids
+ * are defined in the CAN Driver Module and hence it is derived from CAN
+ * Driver Configuration. */
Can_Arc_HTHType CanIfHthIdSymRef ;\r
\r
- // End Of List. Set to TRUE is this is the last object in the list.\r
+ /** End Of List. Set to TRUE if this is the last object in the list. */
boolean CanIf_Arc_EOL;\r
} CanIf_HthConfigType;\r
\r
//-------------------------------------------------------------------\r
/*\r
* CanIfInitHohConfig container\r
- */\r
+ */
+/** Definition of Hardware Object Handle. */
typedef struct {\r
- // Selects the CAN interface specific configuration setup. This type of external\r
- // data structure shall contain the post build initialization data for the\r
- // CAN interface for all underlying CAN Drivers.\r
+ /** Reference to the CAN Driver controller config. */
const Can_ConfigSetType *CanConfigSet;\r
\r
- // This container contains contiguration parameters for each hardware receive object.\r
+ /** This container contains contiguration parameters for each hardware receive object. */
const CanIf_HrhConfigType *CanIfHrhConfig;\r
\r
- // This container contains parameters releated to each HTH\r
+ /** This container contains parameters releated to each HTH */
const CanIf_HthConfigType *CanIfHthConfig;\r
\r
- // End Of List. Set to TRUE is this is the last object in the list.\r
+ /** End Of List. Set to TRUE if this is the last object in the list. */
boolean CanIf_Arc_EOL;\r
} CanIf_InitHohConfigType;\r
\r
* CanIfTxPduConfig container\r
*/\r
\r
-// This container contains the configuration (parameters) of each transmit\r
-// CAN L-PDU. The SHORT-NAME of "CanIfTxPduConfig" container\r
-// represents the symolic name of Transmit L-PDU.\r
+/** Definition of Tx PDU (Protocol Data Unit). */
typedef struct {\r
- // ECU wide unique, symbolic handle for transmit CAN L-PDU. The\r
- // CanIfCanTxPduId is configurable at pre-compile and post-built time.\r
- // Range: 0..max. number of CantTxPduIds PduIdType CanTxPduId;\r
+ /** ECU wide unique, symbolic handle for transmit CAN L-PDU. The
+ * CanIfCanTxPduId is configurable at pre-compile and post-built time.
+ * Range: 0..max. number of CantTxPduIds PduIdType CanTxPduId; */
PduIdType CanIfTxPduId;\r
\r
- // CAN Identifier of transmit CAN L-PDUs used by the CAN Driver for CAN L-\r
- // PDU transmission. Range: 11 Bit For Standard CAN Identifier ... 29 Bit For\r
- // Extended CAN identifier\r
+ /** CAN Identifier of transmit CAN L-PDUs used by the CAN Driver for CAN L-
+ * PDU transmission. Range: 11 Bit For Standard CAN Identifier ... 29 Bit For
+ * Extended CAN identifier */
uint32 CanIfCanTxPduIdCanId;\r
\r
- // Data length code (in bytes) of transmit CAN L-PDUs used by the CAN\r
- // Driver for CAN L-PDU transmission. The data area size of a CAN L-Pdu\r
- // can have a range from 0 to 8 bytes.\r
+ /** Data length code (in bytes) of transmit CAN L-PDUs used by the CAN
+ * Driver for CAN L-PDU transmission. The data area size of a CAN L-Pdu
+ * can have a range from 0 to 8 bytes. */
uint8 CanIfCanTxPduIdDlc;\r
\r
- // Defines the type of each transmit CAN L-PDU.\r
- // DYNAMIC CAN ID is defined at runtime.\r
- // STATIC CAN ID is defined at compile-time.\r
+ /** Defines the type of each transmit CAN L-PDU.
+ * DYNAMIC CAN ID is defined at runtime.
+ * STATIC CAN ID is defined at compile-time. */
CanIf_PduTypeType CanIfCanTxPduType;\r
\r
#if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON )\r
- // Enables and disables transmit confirmation for each transmit CAN L-PDU\r
- // for reading its notification status. True: Enabled False: Disabled\r
+ /** Enables and disables transmit confirmation for each transmit CAN L-PDU
+ * for reading its notification status. True: Enabled False: Disabled */
boolean CanIfReadTxPduNotifyStatus;\r
#endif\r
\r
- // CAN Identifier of transmit CAN L-PDUs used by the CAN Driver for CAN L-\r
- // PDU transmission.\r
- // EXTENDED_CAN The CANID is of type Extended (29 bits)\r
- // STANDARD_CAN The CANID is of type Standard (11 bits)\r
+ /** CAN Identifier of transmit CAN L-PDUs used by the CAN Driver for CAN L-
+ * PDU transmission.
+ * EXTENDED_CAN The CANID is of type Extended (29 bits).
+ * STANDARD_CAN The CANID is of type Standard (11 bits). */
CanIf_CanIdTypeType CanIfTxPduIdCanIdType;\r
\r
- // Name of target confirmation services to target upper layers (PduR, CanNm\r
- // and CanTp. If parameter is not configured then no call-out function is\r
- // provided by the upper layer for this Tx L-PDU.\r
+ /** Name of target confirmation services to target upper layers (PduR, CanNm
+ * and CanTp. If parameter is not configured then no call-out function is
+ * provided by the upper layer for this Tx L-PDU. */
void (*CanIfUserTxConfirmation)(PduIdType); /* CANIF 109 */\r
\r
- // Handle, that defines the hardware object or the pool of hardware objects\r
- // configured for transmission. The parameter refers HTH Id, to which the L-\r
- // PDU belongs to.\r
+ /** Handle, that defines the hardware object or the pool of hardware objects
+ * configured for transmission. The parameter refers HTH Id, to which the L-
+ * PDU belongs to. */
const CanIf_HthConfigType *CanIfCanTxPduHthRef;\r
\r
- // Reference to the "global" Pdu structure to allow harmonization of handle\r
- // IDs in the COM-Stack. ..\r
+ /** Reference to the "global" Pdu structure to allow harmonization of handle
+ * IDs in the COM-Stack. */
void *PduIdRef;\r
} CanIf_TxPduConfigType;\r
\r
*/\r
\r
\r
-// This container contains the configuration (parameters) of each receive\r
-// CAN L-PDU. The SHORT-NAME of "CanIfRxPduConfig" container itself\r
-// represents the symolic name of Receive L-PDU.\r
-\r
+/** Definition of Rx PDU (Protocol Data Unit). */
typedef struct {\r
- // ECU wide unique, symbolic handle for receive CAN L-PDU. The\r
- // CanRxPduId is configurable at pre-compile and post-built time. It shall fulfill\r
- // ANSI/AUTOSAR definitions for constant defines. Range: 0..max. number\r
- // of defined CanRxPduIds\r
+ /** ECU wide unique, symbolic handle for receive CAN L-PDU. The
+ * CanRxPduId is configurable at pre-compile and post-built time. It shall fulfill
+ * ANSI/AUTOSAR definitions for constant defines. Range: 0..max. number
+ * of defined CanRxPduIds */
PduIdType CanIfCanRxPduId;\r
\r
- // CAN Identifier of Receive CAN L-PDUs used by the CAN Interface. Exa:\r
- // Software Filtering. Range: 11 Bit For Standard CAN Identifier ... 29 Bit For\r
- // Extended CAN identifier\r
+ /** CAN Identifier of Receive CAN L-PDUs used by the CAN Interface. Exa:
+ * Software Filtering. Range: 11 Bit For Standard CAN Identifier ... 29 Bit For
+ * Extended CAN identifier */
uint32 CanIfCanRxPduCanId;\r
\r
- // Data Length code of received CAN L-PDUs used by the CAN Interface.\r
- // Exa: DLC check. The data area size of a CAN L-PDU can have a range\r
- // from 0 to 8 bytes. uint8 CanIfCanRxPduDlc;\r
+ /** Data Length code of received CAN L-PDUs used by the CAN Interface.
+ * Exa: DLC check. The data area size of a CAN L-PDU can have a range
+ * from 0 to 8 bytes. uint8 CanIfCanRxPduDlc; */
uint8 CanIfCanRxPduDlc;\r
\r
#if ( CANIF_CANPDUID_READDATA_API == STD_ON )\r
- // Enables and disables the Rx buffering for reading of received L-PDU data.\r
- // True: Enabled False: Disabled\r
+ /** Enables and disables the Rx buffering for reading of received L-PDU data.
+ * True: Enabled False: Disabled */
boolean CanIfReadRxPduData;\r
#endif\r
\r
#if ( CANIF_READRXPDU_NOTIF_STATUS_API == STD_ON )\r
- // CanIfReadRxPduNotifyStatus {CANIF_READRXPDU_NOTIFY_STATUS}\r
- // Enables and disables receive indication for each receive CAN L-PDU for\r
- // reading its' notification status. True: Enabled False: Disabled\r
+ /** CanIfReadRxPduNotifyStatus {CANIF_READRXPDU_NOTIFY_STATUS}
+ * Enables and disables receive indication for each receive CAN L-PDU for
+ * reading its' notification status. True: Enabled False: Disabled */
boolean CanIfReadRxPduNotifyStatus;\r
#endif\r
\r
- // CAN Identifier of receive CAN L-PDUs used by the CAN Driver for CAN L-\r
- // PDU transmission.\r
- // EXTENDED_CAN The CANID is of type Extended (29 bits)\r
- // STANDARD_CAN The CANID is of type Standard (11 bits)\r
+ /** CAN Identifier of receive CAN L-PDUs used by the CAN Driver for CAN L-
+ * PDU transmission.
+ * EXTENDED_CAN The CANID is of type Extended (29 bits)
+ * STANDARD_CAN The CANID is of type Standard (11 bits) */
CanIf_CanIdTypeType CanIfRxPduIdCanIdType;\r
\r
- // This parameter defines the type of the receive indication call-outs called to\r
- // the corresponding upper layer the used TargetRxPduId belongs to.\r
+ /** This parameter defines the type of the receive indication call-outs called to
+ * the corresponding upper layer the used TargetRxPduId belongs to. */
CanIf_UserTypeType CanIfRxUserType;\r
\r
- // Name of target indication services to target upper layers (PduRouter,\r
- // CanNm, CanTp and ComplexDeviceDrivers). If parameter is 0 no call-out\r
- // function is configured.\r
+ /** Name of target indication services to target upper layers (PduRouter,
+ * CanNm, CanTp and ComplexDeviceDrivers). If parameter is 0 no call-out
+ * function is configured. */
void *CanIfUserRxIndication;\r
\r
- // The HRH to which Rx L-PDU belongs to, is referred through this\r
- // parameter.\r
+ /** The HRH to which Rx L-PDU belongs to, is referred through this
+ * parameter. */
const CanIf_HrhConfigType *CanIfCanRxPduHrhRef;\r
\r
- // Reference to the "global" Pdu structure to allow harmonization of handle\r
- // IDs in the COM-Stack.\r
+ /** Reference to the "global" Pdu structure to allow harmonization of handle
+ * IDs in the COM-Stack. */
void *PduIdRef;\r
\r
- // Defines the type of software filtering that should be used\r
- // for this receive object.\r
+ /** Defines the type of software filtering that should be used
+ * for this receive object. */
CanIf_SoftwareFilterTypeType CanIfSoftwareFilterType;\r
\r
- // Acceptance filters, 1 - care, 0 - don't care.\r
- // Is enabled by the CanIfSoftwareFilterMask in CanIf_HrhConfigType\r
- // ArcCore exension\r
+ /** Acceptance filters, 1 - care, 0 - don't care.
+ * Is enabled by the CanIfSoftwareFilterMask in CanIf_HrhConfigType
+ * ArcCore exension */
uint32 CanIfCanRxPduCanIdMask;\r
\r
} CanIf_RxPduConfigType;\r
/*\r
* CanIfControllerConfig container\r
*/\r
-\r
+/** Not supported. */
typedef enum {\r
CANIF_WAKEUP_SUPPORT_CONTROLLER,\r
CANIF_WAKEUP_SUPPORT_NO_WAKEUP,\r
} CanIf_WakeupSupportType;\r
\r
\r
-// This is the type supplied to CanIf_InitController()\r
-typedef struct {\r
- CanIf_WakeupSupportType WakeupSupport; // Not used\r
+/** Container used to create channel init configurations.
+ * @see CanIf_Arc_ConfigurationIndexType
+ * @see CanIf_Arc_ChannelIdType */
+typedef struct {
+ /** Not used */
+ CanIf_WakeupSupportType WakeupSupport;
- // CanIf-specific id of the controller\r
+ /** CanIf-specific id of the controller */
CanIf_Arc_ChannelIdType CanIfControllerIdRef;\r
-\r
- const char CanIfDriverNameRef[8]; // Not used\r
-\r
+
+ /** Not used */
+ const char CanIfDriverNameRef[8];
+
+ /** Reference to */
const Can_ControllerConfigType *CanIfInitControllerRef;\r
} CanIf_ControllerConfigType;\r
\r
uint32 todo;\r
} CanIf_TransceiverConfigType;\r
\r
-// Callout functions with respect to the upper layers. This callout functions\r
-// defined in this container are common to all configured underlying CAN\r
-// Drivers / CAN Transceiver Drivers.\r
+/** Callout functions with respect to the upper layers. This callout functions
+ * defined in this container are common to all configured underlying CAN
+ * Drivers / CAN Transceiver Drivers. */
typedef struct {\r
- // Name of target BusOff notification services to target upper layers\r
- // (PduRouter, CanNm, CanTp and ComplexDeviceDrivers).\r
- // Multiplicity: 1\r
+ /** Name of target BusOff notification services to target upper layers
+ * (PduRouter, CanNm, CanTp and ComplexDeviceDrivers). */
void (*CanIfBusOffNotification)(uint8 Controller);\r
\r
- // Name of target wakeup notification services to target upper layers\r
- // e.g Ecu_StateManager. If parameter is 0\r
- // no call-out function is configured.\r
- // Multiplicity: 0..1\r
+ /** Name of target wakeup notification services to target upper layers
+ * e.g Ecu_StateManager. If parameter is 0
+ * no call-out function is configured. */
void (*CanIfWakeUpNotification)();\r
\r
- // Name of target wakeup validation notification services to target upper\r
- // layers (ECU State Manager). If parameter is 0 no call-out function is\r
- // configured.\r
- // Multiplicity: 0..1\r
+ /** Name of target wakeup validation notification services to target upper
+ * layers (ECU State Manager). If parameter is 0 no call-out function is
+ * configured. */
void (*CanIfWakeupValidNotification)();\r
\r
- // ArcCore ext.\r
+ /** ArcCore ext. */
void (*CanIfErrorNotificaton)(uint8,Can_Arc_ErrorType);\r
\r
} CanIf_DispatchConfigType;\r
\r
-// This container contains the references to the configuration setup of each\r
-// underlying CAN driver.\r
-\r
+/** This container contains the references to the configuration setup of each
+ * underlying CAN driver. */
typedef struct {\r
- // Selects the CAN Interface specific configuration setup. This type of the\r
- // external data structure shall contain the post build initialization data for the\r
- // CAN Interface for all underlying CAN Dirvers. constant to CanIf_ConfigType\r
+ /** Not used. */
uint32 CanIfConfigSet;\r
-\r
- uint32 CanIfNumberOfCanRxPduIds;\r
- uint32 CanIfNumberOfCanTXPduIds;\r
+
+ /** Size of Rx PDU list. */
+ uint32 CanIfNumberOfCanRxPduIds;
+ /** Size of Tx PDU list. */
+ uint32 CanIfNumberOfCanTXPduIds;
+ /** Not used */
uint32 CanIfNumberOfDynamicCanTXPduIds;\r
\r
//\r
// Containers\r
//\r
\r
- // This container contains the reference to the configuration\r
- // setup of each underlying CAN driver.\r
- // Multiplicity: 0..*\r
+ /** Hardware Object Handle list */
const CanIf_InitHohConfigType *CanIfHohConfigPtr;\r
\r
- // This container contains the configuration (parameters) of each\r
- // receive CAN L-PDU. The SHORT-NAME of\r
- // "CanIfRxPduConfig" container itself represents the symolic\r
- // name of Receive L-PDU.\r
- // Multiplicity: 0..*\r
+ /** Rx PDU's list */
const CanIf_RxPduConfigType *CanIfRxPduConfigPtr;\r
-\r
- // This container contains the configuration (parameters) of each\r
- // transmit CAN L-PDU. The SHORT-NAME of\r
- // "CanIfTxPduConfig" container represents the symolic name of\r
- // Transmit L-PDU.\r
- // Multiplicity: 0..*\r
+
+ /** Tx PDU's list */
const CanIf_TxPduConfigType *CanIfTxPduConfigPtr;\r
\r
} CanIf_InitConfigType;\r
\r
-\r
+/** Top level config container. */
typedef struct {\r
- // This container contains the configuration (parameters) of all\r
- // addressed CAN controllers by each underlying CAN driver.\r
- // Multiplicity: 1..*\r
+ /** Reference to the list of channel init configurations. */
const CanIf_ControllerConfigType *ControllerConfig;\r
\r
- // Callout functions with respect to the upper layers. This callout\r
- // functions defined in this container are common to all\r
- // configured underlying CAN Drivers / CAN Transceiver Drivers\r
+ /** Callout functions with respect to the upper layers. This callout
+ * functions defined in this container are common to all
+ * configured underlying CAN Drivers / CAN Transceiver Drivers */
const CanIf_DispatchConfigType *DispatchConfig;\r
\r
- // This container contains the init parameters of the CAN\r
- // Interface.\r
- // Multiplicity: 1..*\r
+ /** This container contains the init parameters of the CAN Interface. */
const CanIf_InitConfigType *InitConfig;\r
\r
- // This container contains the configuration (parameters) of all\r
- // addressed CAN transceivers by each underlying CAN\r
- // Transceiver Driver.\r
- // Multiplicity: 1..*\r
+ /** Not used */
const CanIf_TransceiverConfigType *TransceiverConfig;
- // ArcCore: Contains the mapping from CanIf-specific Channels to Can Controllers
+ /** ArcCore: Contains the mapping from CanIf-specific Channels to Can Controllers */
const CanControllerIdType *Arc_ChannelToControllerMap;\r
} CanIf_ConfigType;\r
\r
-\r
+/** Instance of the top level container. */
extern CanIf_ConfigType CanIf_Config;\r
\r
#endif\r
-\r
+/** @} */
\r
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Can CAN Driver
+ * @{ */
-
-
-
-
-
+/** @file Can_Cfg.h
+ * Definitions of configuration parameters for CAN Driver.
+ */
#ifndef CAN_CFG_H_\r
#define CAN_CFG_H_\r
\r
-// Number of controller configs\r
+/** Number of controller configs. */
#define CAN_ARC_CTRL_CONFIG_CNT 2\r
-\r
-#define CAN_DEV_ERROR_DETECT STD_ON\r
-#define CAN_VERSION_INFO_API STD_ON\r
-#define CAN_MULTIPLEXED_TRANSMISSION STD_ON // Makes no differens in the code\r
-#define CAN_WAKEUP_SUPPORT STD_OFF // Not supported\r
-#define CAN_HW_TRANSMIT_CANCELLATION STD_OFF // Not supported\r
-\r
-// loop cnt.. very strange timeout\r
+
+/** Enable Development Error Trace. */
+#define CAN_DEV_ERROR_DETECT STD_ON
+/** Build version info API. */
+#define CAN_VERSION_INFO_API STD_ON
+/** Not supported. */
+#define CAN_MULTIPLEXED_TRANSMISSION STD_OFF
+/** Not supported. */
+#define CAN_WAKEUP_SUPPORT STD_OFF
+/** Not supported. */
+#define CAN_HW_TRANSMIT_CANCELLATION STD_OFF
+/** Not supported. */
#define CAN_TIMEOUT_DURATION 100\r
\r
#define INTERRUPT 0\r
#define POLLING 1\r
\r
-// Can controller\r
-#define CAN_BUSOFF_PROCESSING INTERRUPT // INTERRUPT/POLLING\r
-#define CAN_CONTROLLER_ACTIVATION OFF\r
-#define CAN_CONTROLLER_BAUD_RATE 125000\r
-#define CAN_DRIVER_CONTROLLER_ID 0\r
-#define CAN_CONTROLLER_PROP_SEG 4\r
-#define CAN_CONTROLLER_PHASE1_SEG 4\r
-#define CAN_CONTROLLER_PHASE2_SEG 4\r
-#define CAN_CONTROLLER_TIME_QUANTA 4\r
-#define CAN_RX_PROCESSING INTERRUPT\r
-#define CAN_TX_PROCESSING INTERRUPT\r
+// Can controller
+/** Bus off handling. Polling not supported */
+#define CAN_BUSOFF_PROCESSING INTERRUPT // INTERRUPT/POLLING
+/** Not supported. */
+#define CAN_CONTROLLER_ACTIVATION OFF
+/** Not used. @see Can_ControllerConfigType */
+#define CAN_CONTROLLER_BAUD_RATE 125000
+/** Not used. @see CanControllerIdType */
+#define CAN_DRIVER_CONTROLLER_ID 0
+/** Not used. @see Can_ControllerConfigType */
+#define CAN_CONTROLLER_PROP_SEG 4
+/** Not used. @see Can_ControllerConfigType */
+#define CAN_CONTROLLER_PHASE1_SEG 4
+/** Not used. @see Can_ControllerConfigType */
+#define CAN_CONTROLLER_PHASE2_SEG 4
+/** Not used. @see Can_ControllerConfigType */
+#define CAN_CONTROLLER_TIME_QUANTA 4
+/** Rx handling. Polling not supported. */
+#define CAN_RX_PROCESSING INTERRUPT
+/** Tx handling. Polling not supported. */
+#define CAN_TX_PROCESSING INTERRUPT
+/** Wakeup handling. Polling not supported. */
#define CAN_WAKEUP_PROCESSING INTERRUPT\r
-\r
+
+/** Available HW controllers. */
typedef enum {\r
CAN_CTRL_A = 0,\r
CAN_CTRL_B,\r
CAN_CTRL_F,\r
CAN_CONTROLLER_CNT \r
}CanControllerIdType;\r
-\r
+
+/** CAN id types. */
typedef enum {\r
CAN_ID_TYPE_EXTENDED,\r
CAN_ID_TYPE_MIXED,\r
CAN_ID_TYPE_STANDARD,\r
} Can_IdTypeType;\r
-\r
+
+/** CAN HW object types. */
typedef enum {\r
CAN_OBJECT_TYPE_RECEIVE,\r
CAN_OBJECT_TYPE_TRANSMIT,\r
} Can_ObjectTypeType;\r
-\r
+
+/** HW object Can type. Full not supported. */
typedef enum {\r
CAN_ARC_HANDLE_TYPE_BASIC,\r
CAN_ARC_HANDLE_TYPE_FULL\r
} Can_Arc_HohType;\r
\r
// HTH definitions\r
-// Due to effiency: Start with index 0 and don't use any holes in the enumeration\r
+// Due to effiency: Start with index 0 and don't use any holes in the enumeration
+/** Transmit object id:s */
typedef enum {\r
CAN_HTH_A_1 = 0,\r
CAN_HTH_C_1,\r
} Can_Arc_HTHType;\r
\r
// HRH definitions\r
-// Due to effiency: Start with index 0 and don't use any holes in the enumeration\r
+// Due to effiency: Start with index 0 and don't use any holes in the enumeration
+/** Receive object id:s */
typedef enum {\r
CAN_HRH_A_1 = 0,\r
CAN_HRH_C_1,\r
NUM_OF_HRHS\r
} Can_Arc_HRHType;\r
\r
-// Non-standard type\r
+// Non-standard type
+/** Container for callback configuration. */
typedef struct {\r
- void (*CancelTxConfirmation)( const Can_PduType *);\r
- void (*RxIndication)( uint8 ,Can_IdType ,uint8 , const uint8 * );\r
- void (*ControllerBusOff)(uint8);\r
- void (*TxConfirmation)(PduIdType);\r
- void (*ControllerWakeup)(uint8);\r
- void (*Arc_Error)(uint8,Can_Arc_ErrorType);\r
+ void (*CancelTxConfirmation)( const Can_PduType *); /**< Not supported. */
+ void (*RxIndication)( uint8 ,Can_IdType ,uint8 , const uint8 * ); /**< Called on successful reception of a PDU. */
+ void (*ControllerBusOff)(uint8); /**< Called on BusOff. */
+ void (*TxConfirmation)(PduIdType); /**< Called on successful transmission of a PDU. */
+ void (*ControllerWakeup)(uint8); /**< Not supported. */
+ void (*Arc_Error)(uint8,Can_Arc_ErrorType); /**< Called on HW error. */
} Can_CallbackType;\r
\r
/*\r
* CanGeneral Container\r
*/\r
\r
-// This container contains the parameters related each CAN Driver Unit.\r
+/** Container for parameters related to the CAN Driver. */
typedef struct {\r
- // Specifies the InstanceId of this module instance. If only one instance is\r
- // present it shall have the Id 0\r
+ /** Specifies the InstanceId of this module instance. If only one instance is
+ * present it shall have the Id 0 */
int CanIndex;\r
\r
#if 0 // This is only used by the config tool\r
} Can_GeneralType;\r
\r
\r
-/*\r
- * CanFilterMask container\r
- */\r
+/** Type for Can id filter mask */
typedef uint32 Can_FilterMaskType;\r
\r
/*\r
* CanHardwareObject container\r
- */\r
-\r
-//This container contains the configuration (parameters) of CAN Hardware\r
-//Objects.\r
+ */
+
+/** Container for CAN Hardware Object parameters */
typedef struct Can_HardwareObjectStruct {\r
- // Specifies the type (Full-CAN or Basic-CAN) of a hardware object.\r
+ /** Specifies the type (Full-CAN or Basic-CAN) of a hardware object. */
Can_Arc_HohType CanHandleType;\r
\r
- // Specifies whether the IdValue is of type - standard identifier - extended\r
- // identifier - mixed mode ImplementationType: Can_IdType\r
+ /** Specifies whether the IdValue is of type - standard identifier - extended
+ * identifier - mixed mode */
Can_IdTypeType CanIdType;\r
\r
- // Specifies (together with the filter mask) the identifiers range that passes\r
- // the hardware filter.\r
+ /** Specifies (together with the filter mask) the identifiers range that passes
+ * the hardware filter. */
uint32 CanIdValue;\r
\r
- // Holds the handle ID of HRH or HTH. The value of this parameter is unique\r
- // in a given CAN Driver, and it should start with 0 and continue without any\r
- // gaps. The HRH and HTH Ids are defined under two different name-spaces.\r
- // Example: HRH0-0, HRH1-1, HTH0-2, HTH1-3\r
+ /** Holds the handle ID of HRH or HTH. The value of this parameter is unique
+ * in a given CAN Driver, and it should start with 0 and continue without any
+ * gaps. The HRH and HTH Ids are defined under two different name-spaces.
+ * Example: HRH0-0, HRH1-1, HTH0-2, HTH1-3 */
uint32 CanObjectId;\r
\r
- // Specifies if the HardwareObject is used as Transmit or as Receive object\r
+ /** Specifies if the HardwareObject is used as Transmit or as Receive object */
Can_ObjectTypeType CanObjectType;\r
\r
- // Reference to the filter mask that is used for hardware filtering togerther\r
- // with the CAN_ID_VALUE\r
+ /** Reference to the filter mask that is used for hardware filtering togerther
+ * with the CAN_ID_VALUE */
Can_FilterMaskType *CanFilterMaskRef;\r
\r
- // A "1" in this mask tells the driver that that HW Message Box should be\r
- // occupied by this Hoh. A "1" in bit 31(ppc) occupies Mb 0 in HW.\r
+ /** A "1" in this mask tells the driver that that HW Message Box should be
+ * occupied by this Hoh. A "1" in bit 31(ppc) occupies Mb 0 in HW. */
uint32 Can_Arc_MbMask;\r
\r
- // End Of List. Set to TRUE is this is the last object in the list.\r
+ /** End Of List. Set to TRUE if this is the last object in the list. */
boolean Can_Arc_EOL;\r
\r
} Can_HardwareObjectType;\r
CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
CAN_ARC_PROCESS_TYPE_POLLING,\r
} Can_Arc_ProcessType;\r
-\r
+
+/** Container for configuration of a controller. */
typedef struct {\r
\r
- // Enables / disables API Can_MainFunction_BusOff() for handling busoff\r
- // events in polling mode.\r
- // INTERRUPT or POLLING\r
+ /** Enables / disables API Can_MainFunction_BusOff() for handling busoff
+ * events in polling mode. Polling not supported. */
Can_Arc_ProcessType CanBusOffProcessing;\r
\r
- // Defines if a CAN controller is used in the configuration.\r
+ /** Defines if a CAN controller is used in the configuration. */
boolean CanControllerActivation;\r
\r
- // Specifies the buadrate of the controller in kbps.\r
+ /** Specifies the buadrate of the controller in kbps. */
uint32 CanControllerBaudRate;\r
\r
- // This parameter provides the controller ID which is unique in a given CAN\r
- // Driver. The value for this parameter starts with 0 and continue without any\r
- // gaps.\r
+ /** This parameter provides the controller ID which is unique in a given CAN
+ * Driver. The value for this parameter starts with 0 and continue without any
+ * gaps. */
CanControllerIdType CanControllerId;\r
\r
- // Specifies propagation delay in time quantas.\r
+ /** Specifies propagation delay in time quantas. */
uint32 CanControllerPropSeg;\r
\r
- // Specifies phase segment 1 in time quantas.\r
+ /** Specifies phase segment 1 in time quantas. */
uint32 CanControllerSeg1;\r
\r
- // Specifies phase segment 2 in time quantas.\r
+ /** Specifies phase segment 2 in time quantas. */
uint32 CanControllerSeg2;\r
\r
- // Specifies the time quanta for the controller. The calculation of the resulting\r
- // prescaler value depending on module clocking and time quanta shall be\r
- // done offline Hardware specific.\r
+ /** Specifies the time quanta for the controller. The calculation of the resulting
+ * prescaler value depending on module clocking and time quanta shall be
+ * done offline Hardware specific. */
uint32 CanControllerTimeQuanta;\r
\r
- // Enables / disables API Can_MainFunction_Read() for handling PDU\r
- // reception events in polling mode.\r
+ /** Enables / disables API Can_MainFunction_Read() for handling PDU
+ * reception events in polling mode. Polling not supported. */
Can_Arc_ProcessType CanRxProcessing;\r
\r
- // Enables / disables API Can_MainFunction_Write() for handling PDU\r
- // transmission events in polling mode.\r
+ /** Enables / disables API Can_MainFunction_Write() for handling PDU
+ * transmission events in polling mode. Polling not supported. */
Can_Arc_ProcessType CanTxProcessing;\r
\r
- // Enables / disables API Can_MainFunction_Wakeup() for handling wakeup\r
- // events in polling mode.\r
+ /** Enables / disables API Can_MainFunction_Wakeup() for handling wakeup
+ * events in polling mode. Polling not supported. */
Can_Arc_ProcessType CanWakeupProcessing;\r
\r
- // Reference to the CPU clock configuration, which is set in the MCU driver\r
- // configuration\r
+ /** Reference to the CPU clock configuration, which is set in the MCU driver
+ * configuration */
uint32 CanCpuClockRef;\r
\r
- // This parameter contains a reference to the Wakeup Source for this\r
- // controller as defined in the ECU State Manager. Implementation Type:\r
- // reference to EcuM_WakeupSourceType\r
+ /** This parameter contains a reference to the Wakeup Source for this
+ * controller as defined in the ECU State Manager. Implementation Type:
+ * reference to EcuM_WakeupSourceType. Not supported. */
uint32 CanWakeupSourceRef;\r
\r
//\r
// ArcCore stuff\r
//\r
\r
- // List of Hoh id's that belong to this controller\r
+ /** List of Hardware Object id's that belong to this controller. */
const Can_HardwareObjectType *Can_Arc_Hoh;\r
-\r
+
+ /** Enable controller self reception. */
boolean Can_Arc_Loopback;\r
\r
- // Set this to use the fifo\r
+ /** Set this to use the fifo */
boolean Can_Arc_Fifo;\r
\r
} Can_ControllerConfigType;\r
\r
\r
\r
-/*\r
- * CanConfigSet container\r
- */\r
+/** Container for controller parameters. */
typedef struct {\r
const Can_ControllerConfigType *CanController;\r
\r
const Can_CallbackType *CanCallbacks;\r
} Can_ConfigSetType;\r
\r
-\r
-typedef struct {\r
- // This is the multiple configuration set container for CAN Driver\r
- // Multiplicity 1..*\r
- const Can_ConfigSetType *CanConfigSet;\r
- // This container contains the parameters related each CAN\r
- // Driver Unit.\r
- // Multiplicity 1..*\r
+/** Top level container for parameters. */
+typedef struct {
+ /** Controller parameters. */
+ const Can_ConfigSetType *CanConfigSet;
+ /** Driver parameters. */
const Can_GeneralType *CanGeneral;\r
\r
-\r
} Can_ConfigType;\r
\r
-\r
-extern const Can_ConfigType CanConfigData;\r
+/** Top level container for parameters. */
+extern const Can_ConfigType CanConfigData;
+/** For direct access to controller list */
extern const Can_ControllerConfigType CanControllerConfigData[];\r
+/** Container for controller parameters. */
extern const Can_ConfigSetType Can_ConfigSet;\r
\r
\r
#endif /*CAN_CFG_H_*/\r
+/** @} */
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Com COM module
+ * @{ */
-
-
-
+/** @file Com_Cfg.h
+ * Definitions of configuration parameters for the COM module.
+ */
#ifndef COM_CFG_H_\r
\r
#define COM_DEV_ERROR_DETECT\r
\r
-\r
-#define COM_MAX_NR_IPDU 30\r
-#define COM_MAX_NR_SIGNAL 30\r
+/** Max number of I-PDUs allowed in the configuration. */
+#define COM_MAX_NR_IPDU 30
+/** Max number of signals allowed in the configuration. */
+#define COM_MAX_NR_SIGNAL 30
+/** Max number of group signals allowed in the configuration. */
#define COM_MAX_NR_GROUPSIGNAL 30\r
-\r
-#define COM_MAX_NR_SIGNALS_PER_IPDU 10\r
-#define COM_MAX_NR_SIGNALGROUPS_PER_IPDU 10\r
+
+/** Max number of signals allowed per I-PDU. */
+#define COM_MAX_NR_SIGNALS_PER_IPDU 10
+/** Max number of signal groups allowed per I-PDU. */
+#define COM_MAX_NR_SIGNALGROUPS_PER_IPDU 10
+/** Max number of group signals allowd per signal group. */
#define COM_MAX_NR_SIGNALS_PER_SIGNAL_GROUP 10\r
\r
\r
\r
#define CPU_ENDIANESS BIG_ENDIAN\r
\r
-/*\r
- * ComGeneral pre-compile time configuration parameters.
- */\r
+
#define ComConfigurationTimeBase\r
#define ComConfigurationUseDet\r
#define ComVersionInfoApi\r
\r
\r
-\r
-\r
-\r
-#endif /*COM_CFG_H_*/\r
+#endif /*COM_CFG_H_*/
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Det DET
+ * @{ */
+/** @file Det_Cfg.h
+ * Definitions of configuration parameters for DET.
+ * Specification: Autosar v2.0.1, Final
+ */
-
-
-
-
-
-/*\r
- * Development Error Tracer driver\r
- *\r
- * Specification: Autosar v2.0.1, Final\r
- *\r
- */\r
#ifndef _DET_CFG_H_\r
#define _DET_CFG_H_\r
\r
-#define DET_ENABLE_CALLBACKS STD_ON // Enable to use callback on errors\r
-#define DET_USE_RAMLOG STD_ON // Enable to log DET errors to ramlog\r
-#define DET_WRAP_RAMLOG STD_ON // The ramlog wraps around when reaching the end\r
-#define DET_USE_STDERR STD_ON // Enable to get DET errors on stderr\r
+#define DET_ENABLE_CALLBACKS STD_ON /**< Enable to use callback on errors */
+#define DET_USE_RAMLOG STD_ON /**< Enable to log DET errors to ramlog */
+#define DET_WRAP_RAMLOG STD_ON /**< The ramlog wraps around when reaching the end */
+#define DET_USE_STDERR STD_ON /**< Enable to get DET errors on stderr */
\r
-#define DET_DEINIT_API STD_ON // Enable/Disable the Det_DeInit function\r
+#define DET_DEINIT_API STD_ON /**< Enable/Disable the Det_DeInit function */
\r
-#define DET_RAMLOG_SIZE (32) // Number of entries in ramlog\r
-#define DET_NUMBER_OF_CALLBACKS (5) // Number of callbacks\r
+#define DET_RAMLOG_SIZE (32) /**< Number of entries in ramlog */
+#define DET_NUMBER_OF_CALLBACKS (5) /**< Number of callbacks */
\r
#endif /*_DET_CFG_H_*/\r
+/** @} */
+/** @addtogroup Dio DIO Driver
+ * @{ */
-
-
-
-
+/** @file Dio_Cfg.h
+ * Definitions of configuration parameters for the DIO Driver.
+ */
#ifndef DIO_CFG_H_\r
#define DIO_CFG_H_\r
\r
#define DIO_DEV_ERROR_DETECT STD_ON\r
#define DIO_END_OF_LIST -1\r
\r
-// MPC5516 physical\r
+/** HW specific DIO port definitions. */
typedef enum\r
{\r
DIO_PORT_A = 0,\r
DIO_PORT_H,\r
DIO_PORT_J,\r
DIO_PORT_K\r
-} Dio_PortTypesType;\r
-\r
-// Pin Name GPIO(PCR)Num\r
+} Dio_PortTypesType;
+
+/** @name DIO channels
+ * HW specific dio channels.
+ */
+// Pin Name GPIO(PCR)Num
+//@{
#define DIO_CHANNEL_A0 0\r
#define DIO_CHANNEL_A1 1\r
#define DIO_CHANNEL_A2 2\r
#define DIO_CHANNEL_J15 143\r
\r
#define DIO_CHANNEL_K0 144\r
-#define DIO_CHANNEL_K1 145\r
+#define DIO_CHANNEL_K1 145
+//@}
\r
// Channels \r
extern const Dio_ChannelType DioChannelConfigData[];\r
#ifndef DMA_CFG_H_\r
#define DMA_CFG_H_\r
-\r
+
+/** Channel id's. HW specific. */
typedef enum\r
{\r
DMA_ADC_GROUP0_RESULT_CHANNEL,\r
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup EcuM ECU State Manager
+ * @{ */
-
-
-
-
-
+/** @file EcuM_Cfg.h
+ * Definitions of configuration parameters for ECU State Manager.
+ * Initialization sequences are defined in EcuM_Callout_template.c
+ */
#ifndef ECUM_CFG_H_\r
#define ECUM_CFG_H_\r
-\r
-#define ECUM_VERSION_INFO_API STD_ON\r
-#define ECUM_INCLUDE_NVRAM_MGR STD_OFF\r
+
+/** Build version info API */
+#define ECUM_VERSION_INFO_API STD_ON
+/** Using NVRAM Manager */
+#define ECUM_INCLUDE_NVRAM_MGR STD_OFF
+/** Enable Development Error Trace */
#define ECUM_DEV_ERROR_DETECT STD_ON\r
\r
#include "EcuM_Generated_Types.h"\r
\r
#endif /*ECUM_CFG_H_*/\r
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Fls Flash Driver
+ * @{ */
-
-
-
-
-
+/** @file Fls_Cfg.h
+ * Definitions of configuration parameters for Flash Driver.
+ */
#ifndef FLS_CFG_H_
#define FLS_CFG_H_
#include "MemIf_Types.h"
-/* Indicate that we are building Post Build, NOT Pre-Compile */
+/** Indicate that we are building Post Build, NOT Pre-Compile */
#define FLS_VARIANT_PB STD_ON
/*
* Fls General container
*/
-// The flash driver shall load the flash access code to RAM whenever an
-// erase or write job is started and unload (overwrite) it after that job has
-// been finished or canceled. true: Flash access code loaded on job start /
-// unloaded on job end or error. false: Flash access code not loaded to /
-// unloaded from RAM at all.
+/** The flash driver shall load the flash access code to RAM whenever an
+ * erase or write job is started and unload (overwrite) it after that job has
+ * been finished or canceled. true: Flash access code loaded on job start /
+ * unloaded on job end or error. false: Flash access code not loaded to /
+ * unloaded from RAM at all. */
#define FLS_AC_LOAD_ON_JOB_START STD_OFF
-// The flash memory start address (see also FLS118).
-// FLS169: This parameter defines the lower boundary for read / write /
-// erase and compare jobs.
+/** The flash memory start address (see also FLS118).
+ * FLS169: This parameter defines the lower boundary for read / write /
+ * erase and compare jobs. */
#define FLS_BASE_ADDRESS 0x00000000
-// Compile switch to enable and disable the Fls_Cancel function. true: API
-// supported / function provided. false: API not supported / function not pro-
-// vided
+/** Compile switch to enable and disable the Fls_Cancel function. true: API
+ * supported / function provided. false: API not supported / function not pro-
+ * vided */
#define FLS_CANCEL_API STD_OFF
-// Compile switch to enable and disable the Fls_Compare function. true: API
-// supported / function provided. false: API not supported / function not pro-
-// vided
+/** Compile switch to enable and disable the Fls_Compare function. true: API
+ * supported / function provided. false: API not supported / function not pro-
+ * vided */
#define FLS_COMPARE_API STD_ON
-// Pre-processor switch for enabling the development error detection and
-// reporting (see FLS077).
-
+/** Pre-processor switch for enabling the development error detection and
+ * reporting (see FLS077). */
#define FLS_DEV_ERROR_DETECT STD_ON
-// Index of the driver, used by FEE.
+/** Index of the driver, used by FEE. */
#define FLS_DRIVER_INDEX 100
-// Compile switch to enable and disable the Fls_GetJobResult function. true:
-// API supported / function provided. false: API not supported / function not
-// provided
+/** Compile switch to enable and disable the Fls_GetJobResult function. true:
+ * API supported / function provided. false: API not supported / function not
+ * provided */
#define FLS_GET_JOB_RESULT_API STD_ON
-// Compile switch to enable and disable the Fls_GetStatus function. true: API
-// supported / function provided. false: API not supported / function not pro-
-// vided
+/** Compile switch to enable and disable the Fls_GetStatus function. true: API
+ * supported / function provided. false: API not supported / function not pro-
+ * vided */
#define FLS_GET_STATUS_API STD_ON
-// Compile switch to enable and disable the Fls_SetMode function. true: API
-// supported / function provided. false: API not supported / function not pro-
-// vided
+/** Compile switch to enable and disable the Fls_SetMode function. true: API
+ * supported / function provided. false: API not supported / function not pro-
+ * vided */
#define FLS_SET_MODE_API STD_OFF
-// The total amount of flash memory in bytes (see also FLS118).
-// FLS170: This parameter in conjunction with FLS_BASE_ADDRESS
-// defines the upper boundary for read / write / erase and compare jobs
+/** The total amount of flash memory in bytes (see also FLS118).
+ * FLS170: This parameter in conjunction with FLS_BASE_ADDRESS
+ * defines the upper boundary for read / write / erase and compare jobs */
#define FLS_TOTAL_SIZE 0x180000 // from addr 0x0000_0000 to 0x0018_0000
-#define FLS_READ_PAGE_SIZE 0x8 // Read page size of 128 bits (4 words) (8 bytes)
+/** Read page size of 128 bits (4 words) (8 bytes) */
+#define FLS_READ_PAGE_SIZE 0x8
// Job processing triggered by hardware interrupt. true: Job processing trig-
// gered by interrupt (hardware controlled). false: Job processing not trig-
// gered by interrupt (software controlled)
-// NOT supported by Freescale hardware
+/** NOT supported by Freescale hardware */
#define FLS_USE_INTERRUPTS STD_OFF
#define FLS_VERSION_INFO_API STD_ON
extern char __FLS_SIZE__;
#endif
-// Configuration description of a flashable sector
+/** Configuration description of a flashable sector */
typedef struct {
- // Number of continuous sectors with the above characteristics.
+ /** Number of continuous sectors with the above characteristics. */
Fls_LengthType FlsNumberOfSectors;
- // Size of one page of this sector. Implementation Type: Fls_LengthType.
+ /** Size of one page of this sector. Implementation Type: Fls_LengthType. */
Fls_LengthType FlsPageSize;
- // Size of this sector. Implementation Type: Fls_LengthTyp
+ /** Size of this sector. Implementation Type: Fls_LengthTyp */
Fls_LengthType FlsSectorSize;
- // Start address of this sector
+ /** Start address of this sector */
Fls_AddressType FlsSectorStartaddress;
} Fls_SectorType;
-// Container for runtime configuration parameters of the flash driver. Imple-
-// mentation Type: Fls_ConfigType.
+/** Container for runtime configuration parameters of the flash driver.
+ * Implementation Type: Fls_ConfigType. */
typedef struct {
- // Address offset in RAM to which the erase flash access code shall be
- // loaded. Used as function pointer to access the erase flash access code.
+ /** Address offset in RAM to which the erase flash access code shall be
+ * loaded. Used as function pointer to access the erase flash access code. */
void (*FlsAcErase)();
- // Address offset in RAM to which the write flash access code shall be
- // loaded. Used as function pointer to access the write flash access code.
+ /** Address offset in RAM to which the write flash access code shall be
+ * loaded. Used as function pointer to access the write flash access code. */
void (*FlsAcWrite)();
//#if 0
// // Cycle time of calls of the flash driver's main function.
// float FlsCallCycle;
//#endif
- // Mapped to the job end notification routine provided by some upper layer
- // module, typically the Fee module.
+ /** Mapped to the job end notification routine provided by some upper layer
+ * module, typically the Fee module. */
void (*FlsJobEndNotification)();
- // Mapped to the job error notification routine provided by some upper layer
- // module, typically the Fee module.
+ /** Mapped to the job error notification routine provided by some upper layer
+ * module, typically the Fee module. */
void (*FlsJobErrorNotification)();
- // The maximum number of bytes to read or compare in one cycle of the
- // flash driver's job processing function in fast mode.
+ /** The maximum number of bytes to read or compare in one cycle of the
+ * flash driver's job processing function in fast mode. */
uint32 FlsMaxReadFastMode;
- // The maximum number of bytes to read or compare in one cycle of the
- // flash driver's job processing function in normal mode.
+ /** The maximum number of bytes to read or compare in one cycle of the
+ * flash driver's job processing function in normal mode. */
uint32 FlsMaxReadNormalMode;
- // The maximum number of bytes to write in one cycle of the flash driver's job
- // processing function in fast mode.
+ /** The maximum number of bytes to write in one cycle of the flash driver's job
+ * processing function in fast mode. */
uint32 FlsMaxWriteFastMode;
- // The maximum number of bytes to write in one cycle of the flash driver's job
- // processing function in normal mode.
+ /** The maximum number of bytes to write in one cycle of the flash driver's job
+ * processing function in normal mode. */
uint32 FlsMaxWriteNormalMode;
- // Erase/write protection settings. Only relevant if supported by hardware.
+ /** Erase/write protection settings. Only relevant if supported by hardware. */
uint32 FlsProtection;
- // List of flash:able sectors and pages
+ /** List of flash:able sectors and pages */
const Fls_SectorType *FlsSectorList;
- // Size of List of the FlsSectorList
+ /** Size of List of the FlsSectorList */
const uint32 FlsSectorListSize;
uint8 *FlsBlockToPartitionMap;
extern const Fls_ConfigType FlsConfigSet[];
#if 0
-/* N/A since PPC have PIC */
+/** N/A since PPC have PIC */
#define FLS_AC_LOCATION_ERASE
#define FLS_AC_LOCATION_WRITE
-/* N/A since we have internal flash */
+/** N/A since we have internal flash */
#define FLS_EXPECTED_HW_ID
#endif
#endif /*FLS_CFG_H_*/
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Gpt GPT Driver
+ * @{ */
-
-
-
-
-
+/** @file Gpt_Cfg.h
+ * Definitions of configuration parameters for GPT Driver.
+ */
#ifndef GPT_CFG_H_\r
#define GPT_CFG_H_\r
#include "Std_Types.h"\r
\r
\r
-// Pre-compile only\r
+/** Configuration is pre-compile only. Not supported. */
#define GPT_VARIANT_PC STD_OFF\r
-// Mix of pre-compile and post-build\r
+/** Configuration is a mix of pre-compile and post-build */
#define GPT_VARIANT_PB STD_ON\r
\r
//#define DEC_TEST\r
//#define GPT_TEST\r
\r
-/* Std PIT channels */\r
+/** HW PIT channels */
#define GPT_CHANNEL_RTI 0\r
#define GPT_CHANNEL_PIT_0 GPT_CHANNEL_RTI\r
#define GPT_CHANNEL_PIT_1 1\r
\r
#define GPT_PIT_CNT (GPT_CHANNEL_PIT_8 + 1)\r
\r
-/* Mcu channels */\r
+/** Decrementer */
#define GPT_CHANNEL_DEC 9\r
\r
#define GPT_CHANNEL_CNT (GPT_CHANNEL_DEC+1)\r
// Illegal channel\r
#define GPT_CHANNEL_ILL 31\r
\r
-\r
+/** Enable Development Error Trace */
#define GPT_DEV_ERROR_DETECT STD_ON\r
-// Enables/Disables wakeup source reporting\r
+/** Enables/Disables wakeup source reporting. Not supported. */
#define GPT_REPORT_WAKEUP_SOURCE STD_OFF\r
-\r
-#define GPT_DEINIT_API STD_ON\r
-#define GPT_ENABLE_DISABLE_NOTIFICATION_API STD_ON\r
-#define GPT_TIME_REMAINING_API STD_ON\r
-#define GPT_TIME_ELAPSED_API STD_ON\r
+/** Build DeInit API */
+#define GPT_DEINIT_API STD_ON
+/** Build notification API */
+#define GPT_ENABLE_DISABLE_NOTIFICATION_API STD_ON
+/** Build time remaining API */
+#define GPT_TIME_REMAINING_API STD_ON
+/** Build time elapsed API */
+#define GPT_TIME_ELAPSED_API STD_ON
+/** Build version info API */
#define GPT_VERSION_INFO_API STD_ON\r
-// TODO: EcuM things missing to get this API working properly\r
+/** Build wakeup API. Not supported */
#define GPT_WAKEUP_FUNCTIONALITY_API STD_OFF\r
\r
\r
-// This container contains the channel-wide configuration (parameters) of the\r
-// GPT Driver\r
+/** This container contains the channel-wide configuration (parameters) of the
+ * GPT Driver */
typedef struct {\r
- // GPT187: The GPT module specific clock input for the timer unit can\r
- // statically be configured and allows to select different clock sources\r
- // (external clock, internal GPT specific clock) per channel\r
+ /** GPT187: The GPT module specific clock input for the timer unit can
+ * statically be configured and allows to select different clock sources
+ * (external clock, internal GPT specific clock) per channel */
uint32 GptChannelClkSrc;\r
\r
- // Channel Id of the GPT channel. This value will be assigned to the symbolic\r
- // name derived of the GptChannelConfiguration container short name.\r
+ /** Channel Id of the GPT channel. */
Gpt_ChannelType GptChannelId;\r
\r
- // Specifies the behaviour of the timerchannel after the timeout has expired\r
+ /** Specifies the behaviour of the timer channel after the timeout has expired. */
Gpt_ChannelMode GptChannelMode;\r
\r
- // Function pointer to callback function\r
+ /** Function pointer to callback function */
void (*GptNotification)();\r
\r
- // GPT module specific prescaler factor per channel\r
+ /** GPT module specific prescaler factor per channel */
uint32 GptChannelPrescale;\r
\r
- // GPT188: Enables wakeup capability of CPU for a channel when timeout\r
- // period expires. This might be different to enabling the notification\r
- // depending on hardware capabilities\r
+ /** GPT188: Enables wakeup capability of CPU for a channel when timeout
+ * period expires. This might be different to enabling the notification
+ * depending on hardware capabilities. Not supported. */
boolean GptEnableWakeup;\r
} Gpt_ConfigType;\r
-\r
+
+/** The list of channel configurations */
extern const Gpt_ConfigType GptConfigData[];\r
\r
-#endif /*GPT_CFG_H_*/\r
+#endif /*GPT_CFG_H_*/
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup LinIf LIN Interface
+ * @{ */
-
-
-
-
-
+/** @file LinIf_Cfg.h
+ * Definitions of configuration parameters for LIN Interface.
+ */
#ifndef LINIF_CFG_H_\r
#define LINIF_CFG_H_\r
PDU_MSG_LIN_RX_2,\r
};\r
\r
-/* Switches the Development Error Detection and Notification\r
+/** Switches the Development Error Detection and Notification
ON or OFF. */\r
#define LINIF_DEV_ERROR_DETECT STD_ON\r
\r
-/* States if multiple drivers are included in the LIN Interface or not. The\r
- * reason for this parameter is to reduce the size of LIN Interface if multiple\r
- * drivers are not used. */\r
+/** States if multiple drivers are included in the LIN Interface or not. The
+ * reason for this parameter is to reduce the size of LIN Interface if multiple
+ * drivers are not used. */
#define LINIF_MULTIPLE_DRIVER_SUPPORT STD_OFF\r
\r
-/* States if the node configuration commands Assign NAD and Conditional\r
- * Change NAD are supported. */\r
+/** States if the node configuration commands Assign NAD and Conditional
+ * Change NAD are supported. */
#define LINIF_OPTIONAL_REQUEST_SUPPORTED STD_OFF\r
\r
-/* States if the TP is included in the LIN Interface or not. The reason for this\r
- * parameter is to reduce the size of LIN Interface if the TP is not used. */\r
+/** States if the TP is included in the LIN Interface or not. The reason for this
+ * parameter is to reduce the size of LIN Interface if the TP is not used. */
#define LINIF_TP_SUPPORTED STD_OFF\r
\r
-/* Switches the LinIf_GetVersionInfo function ON or OFF. */\r
+/** Switches the LinIf_GetVersionInfo function ON or OFF. */
#define LINIF_VERSION_INFO_API STD_ON\r
\r
typedef struct {\r
- /* Switches the Development Error Detection and Notification\r
- ON or OFF. */\r
+ /** Switches the Development Error Detection and Notification
+ * ON or OFF. */
boolean LinIfDevErrorDetect;\r
- /* States if multiple drivers are included in the LIN Interface or not. The\r
- * reason for this parameter is to reduce the size of LIN Interface if multiple\r
- * drivers are not used. */\r
+ /** States if multiple drivers are included in the LIN Interface or not. The
+ * reason for this parameter is to reduce the size of LIN Interface if multiple
+ * drivers are not used. */
boolean LinIfMultipleDriversSupported;\r
- /* States if the node configuration commands Assign NAD and Conditional\r
- * Change NAD are supported. */\r
+ /** States if the node configuration commands Assign NAD and Conditional
+ * Change NAD are supported. */
boolean LinIfNcOptionalRequestSupported;\r
- /* States if the TP is included in the LIN Interface or not. The reason for this\r
- * parameter is to reduce the size of LIN Interface if the TP is not used. */\r
+ /** States if the TP is included in the LIN Interface or not. The reason for this
+ * parameter is to reduce the size of LIN Interface if the TP is not used. */
boolean LinIfTpSupported;\r
- /* Switches the LinIf_GetVersionInfo function ON or OFF. */\r
+ /** Switches the LinIf_GetVersionInfo function ON or OFF. */
boolean LinIfVersionInfoApi;\r
}LinIf_GeneralType;\r
\r
#define LINIF_SCH_CNT 2\r
\r
#endif /*LINIF_CFG_H_*/\r
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Lin LIN Driver
+ * @{ */
-
-
-
-
-
+/** @file Lin_Cfg.h
+ * Definitions of configuration parameters for LIN Driver.
+ */
#ifndef LIN_CFG_H_\r
#define LIN_CFG_H_\r
\r
#include "Std_Types.h"\r
\r
-/* Switches the Development Error Detection and Notification\r
+/** Switches the Development Error Detection and Notification
ON or OFF. */\r
#define LIN_DEV_ERROR_DETECT STD_ON\r
\r
-/* Specifies the InstanceId of this module instance. If only one\r
+/** Specifies the InstanceId of this module instance. If only one
instance is present it shall have the Id 0. */\r
#define LIN_INDEX 0\r
\r
-/* Specifies the maximum number of loops for blocking function\r
- * until a timeout is raised in short term wait loops */\r
+/** Specifies the maximum number of loops for blocking function
+ * until a timeout is raised in short term wait loops */
#define LIN_TIMEOUT_DURATION 10\r
\r
-/* Switches the Lin_GetVersionInfo function ON or OFF. */\r
+/** Switches the Lin_GetVersionInfo function ON or OFF. */
#define LIN_VERSION_INFO_API STD_ON\r
-\r
+
+/** HW specific controller id's */
typedef enum {\r
LIN_CTRL_A = 0,\r
LIN_CTRL_B,\r
LIN_CTRL_H,\r
LIN_CONTROLLER_CNT\r
}LinControllerIdType;\r
-\r
+
+/** Not used */
typedef struct {\r
- /* Switches the Development Error Detection and Notification\r
+ /** Switches the Development Error Detection and Notification
ON or OFF. */\r
boolean LinDevErrorDetect;\r
- /* Specifies the InstanceId of this module instance. If only one\r
+ /** Specifies the InstanceId of this module instance. If only one
instance is present it shall have the Id 0. */\r
uint8 LinIndex;\r
- /* Specifies the maximum number of loops for blocking function\r
+ /** Specifies the maximum number of loops for blocking function
* until a timeout is raised in short term wait loops */\r
uint16 LinTimeoutDuration;\r
- /* Switches the Lin_GetVersionInfo function ON or OFF. */\r
+ /** Switches the Lin_GetVersionInfo function ON or OFF. */
boolean LinVersionInfoApi;\r
}Lin_GeneralType;\r
-\r
+
+/** Container for channel settings */
typedef struct {\r
- /* Specifies the baud rate of the LIN channel */\r
+ /** Specifies the baud rate of the LIN channel */
uint16 LinChannelBaudRate;\r
- /* Identifies the LIN channel.*/\r
+ /** Identifies the LIN channel.*/
uint8 LinChannelId;\r
- /* Specifies if the LIN hardware channel supports wake up functionality */\r
+ /** Specifies if the LIN hardware channel supports wake up functionality */
boolean LinChannelWakeUpSupport;\r
- /* This parameter contains a reference to the Wakeup Source\r
- * for this controller as defined in the ECU State Manager.\r
- * Implementation Type: reference to EcuM_WakeupSourceType */\r
+ /** This parameter contains a reference to the Wakeup Source
+ * for this controller as defined in the ECU State Manager.
+ * Implementation Type: reference to EcuM_WakeupSourceType */
uint32 LinChannelEcuMWakeUpSource;\r
- /* Reference to the LIN clock source configuration, which is set\r
+ /** Reference to the LIN clock source configuration, which is set
* in the MCU driver configuration.*/\r
uint32 LinClockRef;\r
} Lin_ChannelConfigType;\r
\r
\r
#endif /*LIN_CFG_H_*/\r
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Mcu MCU Driver
+ * @{ */
-
-
-
-
-
+/** @file Mcu_Cfg.h
+ * Definitions of configuration parameters for MCU Driver.
+ */
#ifndef MCU_CFG_H_\r
#define MCU_CFG_H_\r
\r
#include "mpc55xx.h"\r
-\r
+
+/** Enable Development Error Trace */
#define MCU_DEV_ERROR_DETECT STD_ON\r
-// Preprocessor switch to enable / disable the use of the function\r
-// Mcu_PerformReset()\r
+/** Enable/disable the use of the function Mcu_PerformReset() */
#define MCU_PERFORM_RESET_API STD_ON\r
-\r
+/** Build version info API */
#define MCU_VERSION_INFO_API STD_ON\r
\r
#include "Std_Types.h"\r
\r
/* FMPLL modes( atleast in 5553/5554 ) */\r
-\r
+
+/** HW specific PLL modes */
typedef enum {\r
MCU_FMPLL_BYPASS = 0,\r
MCU_FMPLL_EXTERNAL_REF,\r
MCU_FMPLL_EXTERNAL_REF_NO_FM,\r
MCU_FMPLL_DUAL_CONTROLLER_MODE,\r
} Mcu_FMPLLmode_t;\r
-\r
+
+/** Symbolic names for clock settings */
typedef enum {\r
MCU_CLOCKTYPE_EXT_REF_80MHZ = 0,\r
MCU_CLOCKTYPE_EXT_REF_66MHZ,\r
//MCU_CLOCKTYPE_DUAL_CONTROLLER_MODE,\r
} Mcu_ClockType;\r
\r
-\r
+/** Defines clock settings */
typedef struct {\r
- // This container defines a reference point in the Mcu Clock tree\r
- // It defines the frequency which then can be used by other modules\r
- // as an input value. Lower multiplicity is 1, as even in the\r
- // simplest case (only one frequency is used), there is one\r
- // frequency to be defined.\r
+ /** PLL input frequency for this clock setting. */
uint32 McuClockReferencePoint;\r
\r
- // Phase locked loop configuration parameters for MPC551x.\r
- uint8 PllEprediv;\r
- uint8 PllEmfd;\r
+ /** PLL configuration parameter for MPC551x. */
+ uint8 PllEprediv;
+ /** PLL configuration parameter for MPC551x. */
+ uint8 PllEmfd;
+ /** PLL configuration parameter for MPC551x. */
uint8 PllErfd;\r
} Mcu_ClockSettingConfigType;\r
-\r
+
+/** Not used */
typedef struct {\r
- // The parameter represents the MCU Mode settings\r
+ /** The parameter represents the MCU Mode settings */
uint32 McuMode;\r
} Mcu_ModeSettingConfigType;\r
-\r
+
+/** Not used */
typedef struct {\r
- // This parameter shall represent the Data pre-setting to be initialized\r
+ /** This parameter shall represent the Data pre-setting to be initialized */
uint32 McuRamDefaultValue;\r
\r
- // This parameter shall represent the MCU RAM section base address\r
+ /** This parameter shall represent the MCU RAM section base address */
uint32 McuRamSectionBaseAddress;\r
\r
- // This parameter shall represent the MCU RAM Section size\r
+ /** This parameter shall represent the MCU RAM Section size */
uint32 McuRamSectionSize;\r
\r
} Mcu_RamSectorSettingConfigType;\r
\r
\r
-// This container defines a reference point in the Mcu Clock tree. It defines\r
-// the frequency which then can be used by other modules as an input value.\r
-// Lower multiplicity is 1, as even in the simplest case (only one frequency is\r
-// used), there is one frequency to be defined.\r
+/** Not used */
typedef struct {\r
\r
- // This is the frequency for the specific instance of the McuClockReference-\r
- // Point container. It shall be givn in Hz.\r
+ /** This is the frequency for the specific instance of the McuClockReference-
+ * Point container. It shall be given in Hz. */
uint32 McuClockReferencePointFrequency;\r
\r
} Mcu_ClockReferencePointType;\r
-\r
+
+/** Top level configuration container */
typedef struct {\r
- // Enables/Disables clock failure notification. In case this feature is not supported\r
- // by HW the setting should be disabled.\r
+ /** Enables/Disables clock failure notification. In case this feature is not supported
+ * by HW the setting should be disabled. */
uint8 McuClockSrcFailureNotification;\r
\r
- // This parameter shall represent the number of Modes available for the\r
- // MCU. calculationFormula = Number of configured McuModeSettingConf\r
+ /** This parameter shall represent the number of Modes available for the
+ * MCU. calculationFormula = Number of configured McuModeSettingConf */
uint8 McuNumberOfMcuModes;\r
\r
- // This parameter shall represent the number of RAM sectors available for\r
- // the MCU. calculationFormula = Number of configured McuRamSectorSet-\r
- // tingConf\r
+ /** This parameter shall represent the number of RAM sectors available for
+ * the MCU. calculationFormula = Number of configured McuRamSectorSet-
+ * tingConf */
uint8 McuRamSectors;\r
\r
- // This parameter shall represent the number of clock setting available for\r
- // the MCU.\r
+ /** This parameter shall represent the number of clock setting available for
+ * the MCU. */
uint8 McuClockSettings;\r
\r
- // This parameter defines the default clock settings that should be used\r
- // It is an index into the McuClockSettingsConfig\r
+ /** This parameter defines the default clock settings that should be used
+ * It is an index into the McuClockSettingsConfig */
Mcu_ClockType McuDefaultClockSettings;\r
\r
- // This parameter relates to the MCU specific reset configuration. This ap-\r
- // plies to the function Mcu_PerformReset, which performs a microcontroller\r
- // reset using the hardware feature of the microcontroller.\r
+ /** This parameter relates to the MCU specific reset configuration. This ap-
+ * plies to the function Mcu_PerformReset, which performs a microcontroller
+ * reset using the hardware feature of the microcontroller. */
uint32 McuResetSetting;\r
\r
- // This container contains the configuration (parameters) for the\r
- // Clock settings of the MCU. Please see MCU031 for more in-\r
- // formation on the MCU clock settings.\r
+ /** This container contains the configuration (parameters) for the
+ * Clock settings of the MCU. Please see MCU031 for more in-
+ * formation on the MCU clock settings. */
Mcu_ClockSettingConfigType * McuClockSettingConfig;\r
\r
- // This container contains the configuration (parameters) for the\r
- // Mode setting of the MCU. Please see MCU035 for more information\r
- // on the MCU mode settings.\r
+ /** This container contains the configuration (parameters) for the
+ * Mode setting of the MCU. Please see MCU035 for more information
+ * on the MCU mode settings. */
Mcu_ModeSettingConfigType *McuModeSettingConfig;\r
\r
- // This container contains the configuration (parameters) for the\r
- // RAM Sector setting. Please see MCU030 for more information\r
- // on RAM sec-tor settings.\r
+ /** This container contains the configuration (parameters) for the
+ * RAM Sector setting. Please see MCU030 for more information
+ * on RAM sector settings. */
Mcu_RamSectorSettingConfigType *McuRamSectorSettingConfig;\r
\r
} Mcu_ConfigType;\r
#define MCU_DEFAULT_CONFIG McuConfigData[0]\r
\r
#endif /*MCU_CFG_H_*/\r
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Port Port Driver
+ * @{ */
-
-
-
-
-
+/** @file Port_Cfg.h
+ * Definitions of configuration parameters for Port Driver.
+ */
#ifndef PORT_CFG_H_\r
#define PORT_CFG_H_\r
\r
#include "Std_Types.h"\r
-\r
-#define PORT_VERSION_INFO_API STD_ON\r
-#define PORT_DEV_ERROR_DETECT STD_ON\r
+
+/** Build version info API */
+#define PORT_VERSION_INFO_API STD_ON
+/** Enable Development Error Trace */
+#define PORT_DEV_ERROR_DETECT STD_ON
+/** Build change pin direction API */
#define PORT_PIN_DIRECTION_CHANGES_ALLOWED STD_ON\r
-\r
+
+/** HW specific symbolic names of pins */
typedef enum\r
{\r
PA0,\r
PK0,\r
PK1\r
} Port_PinType;\r
-\r
+
+/** @name HW specific register bits. */
+//@{
#define BIT0 (1<<15)\r
#define BIT1 (1<<14)\r
#define BIT2 (1<<13)\r
// Should be this out of reset\r
#define PCR_RESET (0)\r
#define PCR_BOOTCFG (IBE_ENABLE|PULL_DOWN)\r
-\r
+//@}
\r
#define EVB_TEST_CONFIG (&PortConfigData)\r
\r
-\r
+/** Top level configuration container */
typedef struct\r
-{\r
- uint16_t padCnt;\r
- const uint16_t *padConfig;\r
- uint16_t outCnt;\r
+{
+ /** Total number of pins */
+ uint16_t padCnt;
+ /** List of pin configurations */
+ const uint16_t *padConfig;
+ /** Total number of pin default levels */
+ uint16_t outCnt;
+ /** List of pin default levels */
const uint8_t *outConfig;\r
// uint16_t inCnt;\r
// const uint8_t *inConfig;\r
} Port_ConfigType;\r
-\r
+
+/** Instance of the top level configuration container */
extern const Port_ConfigType PortConfigData;\r
\r
#endif /*PORT_CFG_H_*/\r
+/** @} */
--- /dev/null
+/* -------------------------------- Arctic Core ------------------------------
+ * Arctic Core - the open source AUTOSAR platform http://arccore.com
+ *
+ * Copyright (C) 2009 ArcCore AB <contact@arccore.com>
+ *
+ * This source code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by the
+ * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ * -------------------------------- Arctic Core ------------------------------*/
+
+
+
+
+
+
+
+
+/*
+ * Pwm_Cfg.c
+ *
+ * Created on: 2009-jul-09
+ * Author: nian
+ */
+
+#include "Pwm.h"
+#include "Pwm_Cfg.h"
+
+extern void MyPwmNotificationRoutine(void);
+
+const Pwm_ConfigType PwmConfig = {
+ .Channels = {
+ PWM_CHANNEL_CONFIG(PWM_CHANNEL_1, 3000, 0x6000, PWM_CHANNEL_PRESCALER_4, PWM_HIGH),
+ PWM_CHANNEL_CONFIG(PWM_CHANNEL_2, 2000, 0x2000, PWM_CHANNEL_PRESCALER_2, PWM_LOW)
+ },
+#if PWM_NOTIFICATION_SUPPORTED==STD_ON
+ .NotificationHandlers = {
+ MyPwmNotificationRoutine, // PWM_CHANNEL_1
+ NULL // PWM_CHANNEL_2
+ }
+#endif
+};
--- /dev/null
+/* -------------------------------- Arctic Core ------------------------------
+ * Arctic Core - the open source AUTOSAR platform http://arccore.com
+ *
+ * Copyright (C) 2009 ArcCore AB <contact@arccore.com>
+ *
+ * This source code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by the
+ * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ * -------------------------------- Arctic Core ------------------------------*/
+
+/** @addtogroup Pwm PWM Driver
+ * @{ */
+
+/** @file Pwm_Cfg.h
+ * Definitions of configuration parameters for PWM Driver.
+ */
+
+#ifndef PWM_CFG_H_
+#define PWM_CFG_H_
+
+/*
+ * PwmGeneral
+ */
+
+/*
+ * PWM003: The detection of development errors is configurable (ON/OFF) at
+ * pre-compile time. The switch PwmDevErorDetect shall activate or disable
+ * the detection of all development errors
+ */
+/** Enable Development Error Trace */
+#define PWM_DEV_EROR_DETECT STD_ON
+/** Build GetOutputState() */
+#define PWM_GET_OUTPUT_STATE STD_ON
+/** Determines if module is configurable at runtime */
+#define PWM_STATICALLY_CONFIGURED STD_OFF
+/** Use notifications */
+#define PWM_NOTIFICATION_SUPPORTED STD_ON
+/** Build period and duty API */
+#define PWM_SET_PERIOD_AND_DUTY STD_ON
+
+/**
+ * PWM106: This is implementation specific but not all values may be valid
+ * within the type. This shall be chosen in order to have the most efficient
+ * implementation on a specific microcontroller platform.
+ *
+ * PWM106 => Pwm_ChannelType == eemios channel id.
+ */
+typedef uint8 Pwm_ChannelType;
+
+/**
+ * PWM070: All time units used within the API services of the PWM module shall
+ * be of the unit ticks.
+ */
+typedef uint16 Pwm_PeriodType;
+
+
+/**
+ * PWM132: Switch for enabling the update of duty cycle parameter at the end
+ * of the current period.
+ *
+ * Note: Currently only ON mode is supported.
+ */
+#define PWM_DUTYCYCLE_UPDATED_ENDPERIOD STD_ON
+
+/****************************************************************************
+ * Not defined in AUTOSAR.
+ */
+#define PWM_ISR_PRIORITY 1
+#define PWM_PRESCALER 64
+/**
+ * Setting to ON freezes the current output state of a PWM channel when in
+ * debug mode.
+ */
+#define PWM_FREEZE_ENABLE STD_ON
+
+/****************************************************************************
+ * Enumeration of channels
+ * Maps a symbolic name to a hardware channel
+ */
+typedef enum {
+#if defined(CFG_BRD_MPC5516IT)
+ PWM_CHANNEL_1 = 13, /* Emios channel 13 and 12 map to the */
+ PWM_CHANNEL_2 = 12, /* LEDs LD4 and LD5 of MPC5516IT */
+
+#elif defined(CFG_BRD_MPC5567QRTECH)
+ PWM_CHANNEL_1 = 10, /* Emios channel 10 maps to PCR189 which
+ * is available on pin 54 of the
+ * ERNI 154822 connector
+ */
+ PWM_CHANNEL_2 = 12, /* Channel 12 goes to PCR191, also
+ * available on the ERNI 154822 connector
+ */
+#else
+#warning "Unknown board or CFG_BRD_* undefined"
+#endif
+ PWM_NUMBER_OF_CHANNELS = 2
+} Pwm_NamedChannelsType;
+
+typedef enum {
+ PWM_CHANNEL_PRESCALER_1=0,
+ PWM_CHANNEL_PRESCALER_2,
+ PWM_CHANNEL_PRESCALER_3,
+ PWM_CHANNEL_PRESCALER_4,
+} Pwm_ChannelPrescalerType;
+
+/**
+ * Since the AUTOSAR PWM specification uses a different unit for the duty,
+ * the following macro can be used to convert between that format and the
+ * mpc5516 format.
+ */
+#define DUTY_AND_PERIOD(_duty,_period) .duty = (_duty*_period)>>15, .period = _period
+
+#if defined(CFG_MPC5516)
+ /** Mode is buffered PWM output (OPWM)
+ * Mode is buffered Output PW and frequency modulation mode */
+#define PWM_EMIOS_OPWM 0x5A
+#elif defined(CFG_MPC5567)
+ /** Mode is buffered OPWM with frequency modulation (allows change of
+ * period) */
+#define PWM_EMIOS_OPWM 0x19
+#endif
+
+
+typedef struct {
+ /** Number of duty ticks */
+ uint32_t duty:32;
+ /** Length of period, in ticks */
+ uint32_t period:32;
+ /** Counter */
+ uint32_t counter:32;
+ /** Enable freezing the channel when in debug mode */
+ uint32_t freezeEnable:1;
+ /** Disable output */
+ uint32_t outputDisable:1;
+ /** Select which bus disables the bus
+ * TODO: Figure out how this works, i.e. what bus does it refer to? */
+ uint32_t outputDisableSelect:2;
+ /** Prescale the emios clock some more? */
+ Pwm_ChannelPrescalerType prescaler:2;
+ /** Prescale the emios clock some more? */
+ uint32_t usePrescaler:1;
+ /** Whether to use DMA. Currently unsupported */
+ uint32_t useDma:1;
+ uint32_t reserved_2:1;
+ /** Input filter. Ignored in output mode. */
+ uint32_t inputFilter:4;
+ /** Input filter clock source. Ignored in output mode */
+ uint32_t filterClockSelect:1;
+ /** Enable interrupts/flags on this channel? Required for DMA as well. */
+ uint32_t flagEnable:1;
+ uint32_t reserved_3:3;
+ /** Trigger a match on channel A */
+ uint32_t forceMatchA:1;
+ /** Triggers a match on channel B */
+ uint32_t forceMatchB:1;
+ uint32_t reserved_4:1;
+ /** We can use different buses for the counter. Use the internal counter */
+ uint32_t busSelect:2;
+ /** What edges to flag on? */
+ uint32_t edgeSelect:1;
+ /** Polarity of the channel */
+ uint32_t edgePolarity:1;
+ /** EMIOS mode. 0x58 for buffered output PWM */
+ uint32_t mode:7;
+} Pwm_ChannelRegisterType;
+
+typedef struct {
+ Pwm_ChannelRegisterType r;
+ Pwm_ChannelType channel;
+} Pwm_ChannelConfigurationType;
+
+
+typedef struct {
+ Pwm_ChannelConfigurationType Channels[PWM_NUMBER_OF_CHANNELS];
+#if PWM_NOTIFICATION_SUPPORTED==STD_ON
+ Pwm_NotificationHandlerType NotificationHandlers[PWM_NUMBER_OF_CHANNELS];
+#endif
+} Pwm_ConfigType;
+
+/** Channel configuration macro. */
+#define PWM_CHANNEL_CONFIG(_hwchannel, _period, _duty, _prescaler, _polarity) \
+ {\
+ .channel = _hwchannel,\
+ .r = {\
+ DUTY_AND_PERIOD(_duty, _period),\
+ .freezeEnable = 1,\
+ .outputDisable = 0,\
+ .usePrescaler = 1,\
+ .prescaler = _prescaler,\
+ .useDma = 0,\
+ .flagEnable = 0, /* See PWM052 */ \
+ .busSelect = 3, /* Use the internal counter bus */\
+ .edgePolarity = _polarity,\
+ .mode = PWM_EMIOS_OPWM\
+ }\
+ }
+
+#endif /* PWM_CFG_H_ */
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup PduR PDU Router
+ * @{ */
-
-
-
-
-
+/** @file PduR_Types.h
+ * Type definitions for PDU Router.
+ */
#ifndef _PDUR_TYPES_H\r
#define _PDUR_TYPES_H\r
\r
#include "ComStack_Types.h"\r
\r
-/* PduR_StateType defines the states of which the PDU router can be in */\r
+/** PduR_StateType defines the states of which the PDU router can be in */
typedef enum {\r
- PDUR_UNINIT, // PDU Router is not initialized.\r
- PDUR_ONLINE, // PDU Router initialized successfully.\r
- PDUR_REDUCED // PDU Router initialization did not succeed. Only minimum routing is provided.\r
+ PDUR_UNINIT, /**< PDU Router is not initialized. */
+ PDUR_ONLINE, /**< PDU Router initialized successfully. */
+ PDUR_REDUCED /**< PDU Router initialization did not succeed. Only minimum routing is provided. */
} PduR_StateType;\r
\r
typedef enum {\r
- PDU_CNLDO, // Cancel transfer since data is outdated.\r
- PDU_CNLNB, // Cancel transfer since buffer is full.\r
- PDU_CNLOR // Cancel transfer of another reason.\r
+ PDU_CNLDO, /**< Cancel transfer since data is outdated. */
+ PDU_CNLNB, /**< Cancel transfer since buffer is full. */
+ PDU_CNLOR /**< Cancel transfer of another reason. */
} PduR_CancelReasonType;\r
\r
typedef uint8 PduR_ParameterValueType;\r
\r
typedef enum {\r
- PDUR_NO_PROVISION, // No data provision.\r
- PDUR_TRIGGER_TRANSMIT, // Trigger transmit type.\r
- PDUR_DIRECT // Data provision type.\r
+ PDUR_NO_PROVISION, /**< No data provision. */
+ PDUR_TRIGGER_TRANSMIT, /**< Trigger transmit type. */
+ PDUR_DIRECT /**< Data provision type. */
} PduR_DataProvisionType;\r
\r
\r
\r
/* ################ NEW DEFINITIONS ################### */\r
typedef struct {\r
- Std_ReturnType (*TargetIndicationFctPtr)(PduIdType, const uint8*); // Pointer to target function in layer above PDU router.\r
- Std_ReturnType (*TargetTransmitFctPtr)(PduIdType, const PduInfoType*); // Pointer to target function below PDU router.\r
+ Std_ReturnType (*TargetIndicationFctPtr)(PduIdType, const uint8*); /**< Pointer to target function in layer above PDU router. */
+ Std_ReturnType (*TargetTransmitFctPtr)(PduIdType, const PduInfoType*); /**< Pointer to target function below PDU router. */
\r
\r
void (*TargetConfirmationFctPtr)(PduIdType);\r
\r
- /*\r
+ /**
* Target function for trigger transmit requests from the interface modules, e.g. Com_TriggerTransmit. Only\r
* needed if gateway mode is not used, that is, if .DataProvision is set to PDUR_NO_PROVISION.\r
*/\r
// uint8 TxIdx; // This is the same as First, hence left out.\r
uint8 *Buffer;\r
\r
- /*\r
+ /**
* Depth of buffer
*/\r
uint8 Depth;\r
\r
- /*\r
+ /**
* Length of buffer
*/\r
uint8 Length;\r
} PduRTxBuffer_type;\r
\r
typedef struct {\r
- /*\r
+ /**
* The maximum numbers of Tx buffers.
*/\r
uint16 PduRMaxTxBufferNumber; // ???\r
} PduRTxBufferTable_type;\r
\r
typedef struct {\r
- /*\r
+ /**
* PDU identifier assigned by the PDU router.
*/\r
uint16 HandleId;\r
\r
- /*\r
+ /**
* Reference to unique PDU identifier.
*/\r
// SrcPduRef\r
\r
typedef struct {\r
\r
- /*\r
+ /**
* Data provision mode for this PDU.
*/\r
PduR_DataProvisionType DataProvision;\r
\r
- /*\r
+ /**
* Reference to unique PDU identifier which shall\r
* be used by the PDU router instead of the source identifier.
*/\r
// For the moment replaced by this\r
uint16 DestPduId;\r
\r
- /*\r
+ /**
* Reference to the assigned Tx buffer.\r
*\r
* Comment: Only required for non-TP gateway PDUs.
} PduRDefaultValue_type;\r
\r
typedef struct {\r
- /*\r
+ /**
* Not part of standard
*/\r
PduR_FctPtrType *FctPtrs;\r
uint8 PduR_Arc_EOL;\r
uint8 PduR_GatewayMode;\r
\r
- /*\r
+ /**
* Length of PDU data.\r
*\r
* Comment: Only required if a TX buffer is configured.
*/\r
uint8 SduLength;\r
\r
- /*\r
+ /**
* Chunk size for routing on the fly.\r
*\r
* Comment: Only required for TP gateway PDUs.
*/\r
uint16 TpChunkSize;\r
\r
- /*\r
+ /**
* Specifies the default value of the PDU.\r
*\r
* Comment: Only require for gateway operation.
*/\r
PduRDefaultValue_type PduRDefaultValue;\r
\r
- /*\r
+ /**
* Specifies the source of the PDU to be routed.
*/\r
PduRSrcPdu_type PduRSrcPdu;\r
\r
- /*\r
+ /**
* Specifies the destination(s) of the PDU to be routed.\r
*\r
* Comment: Multicast (many destinations) is not supported in this implementation.\r
*/\r
uint16 NRoutingPaths;\r
\r
- /*\r
+ /**
* References to the routing paths defined for this configuration.
*/\r
PduRRoutingPath_type PduRRoutingPath[];\r
\r
\r
typedef struct {\r
- /*\r
+ /**
* Unique configuration identifier.
*/\r
uint8 PduRConfigurationId;\r
\r
- /*\r
+ /**
* The routing table of this PDU router configuration.
*/\r
PduRRoutingTable_type *PduRRoutingTable;\r
\r
\r
- /*\r
+ /**
* The buffers used for TP gateway operation.\r
*\r
* Comment: Not implemented in this version.
*/\r
//PduRTpBufferTable_type PduRTpBufferTable;\r
\r
- /*\r
+ /**
* The buffers used for non-TP gateway operation.
*/\r
PduRTxBufferTable_type *PduRTxBufferTable;\r
} PduR_PBConfigType;\r
\r
#endif\r
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Adc ADC Driver
+ * @{ */
+
+/** @file Adc.h
+ * API and type definitions for ADC Driver.
+ */
+
#ifndef ADC_H_\r
#define ADC_H_\r
\r
#define ADC_SW_MINOR_VERSION 0
#define ADC_SW_PATCH_VERSION 0
\r
-/* Std-type */\r
+/** Group status. */
typedef enum\r
{\r
ADC_IDLE,\r
}Adc_StatusType;\r
\r
\r
-/* Det error that the adc can produce. */\r
+/* DET errors that the ADC can produce. */
typedef enum\r
{\r
ADC_E_UNINIT = 0x0A,\r
ADC_E_BUFFER_UNINIT = 0x19\r
}Adc_DetErrorType;\r
\r
-/* API service ID's */\r
+/** API service ID's */
typedef enum\r
{\r
ADC_INIT_ID = 0x00,\r
* Std-types
*
*/
+/** Access mode to group conversion results (Not supported). */
typedef enum
{
ADC_ACCESS_MODE_SINGLE,
ADC_ACCESS_MODE_STREAMING
}Adc_GroupAccessModeType;
+/** Group trigger source (Not supported). */
typedef enum
{
ADC_TRIGG_SRC_HW,
ADC_TRIGG_SRC_SW,
}Adc_TriggerSourceType;
-
+/** HW trigger edge (Not supported). */
typedef enum
{
ADC_NO_HW_TRIG,
ADC_HW_TRIG_RISING_EDGE,
}Adc_HwTriggerSignalType;
+/** Stream buffer type (Not supported). */
typedef enum
{
ADC_NO_STREAMING,
#include "Adc_Cfg.h"
\r
-/* Function interface. */\r
+/* Function interface. */
+/** Initializes the ADC hardware units and driver. */
Std_ReturnType Adc_Init (const Adc_ConfigType *ConfigPtr);\r
-#if (ADC_DEINIT_API == STD_ON)\r
+#if (ADC_DEINIT_API == STD_ON)
+/** Returns all ADC HW Units to a state comparable to their power on reset state. */
Std_ReturnType Adc_DeInit (const Adc_ConfigType *ConfigPtr);\r
-#endif\r
+#endif
+/** Sets up the result buffer for a group. */
Std_ReturnType Adc_SetupResultBuffer (Adc_GroupType group, Adc_ValueGroupType *bufferPtr);\r
-#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)\r
+#if (ADC_ENABLE_START_STOP_GROUP_API == STD_ON)
+/** Starts the conversion of all channels of the requested ADC Channel group. */
void Adc_StartGroupConversion (Adc_GroupType group);\r
//void Adc_StopGroupConversion (Adc_GroupType group);\r
#endif\r
-#if (ADC_READ_GROUP_API == STD_ON)\r
+#if (ADC_READ_GROUP_API == STD_ON)
+/** Reads results from last conversion into buffer */
Std_ReturnType Adc_ReadGroup (Adc_GroupType group, Adc_ValueGroupType *dataBufferPtr);\r
#endif\r
-#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)\r
-void Adc_EnableGroupNotification (Adc_GroupType group);\r
+#if (ADC_GRP_NOTIF_CAPABILITY == STD_ON)
+/** Enables the notification mechanism for the requested ADC Channel group. */
+void Adc_EnableGroupNotification (Adc_GroupType group);
+/** Disables the notification mechanism for the requested ADC Channel group. */
void Adc_DisableGroupNotification (Adc_GroupType group);\r
-#endif\r
+#endif
+/** Returns the conversion status of the requested ADC Channel group. */
Adc_StatusType Adc_GetGroupStatus (Adc_GroupType group);\r
\r
-#endif /*ADC_H_*/\r
+#endif /*ADC_H_*/
+
+/** @} */
+
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup CanIf CAN Interface
+ * @{ */
-
-
-
-
-
+/** @file CanIf_Types.h
+ * Definitions of configuration parameters for CAN Interface.
+ */
#ifndef CANIF_TYPES_H_
#define CANIF_TYPES_H_
#include "ComStack_Types.h"
// API service with wrong parameter
+/** @name Error Codes */
+//@{
#define CANIF_E_PARAM_CANID 10
#define CANIF_E_PARAM_DLC 11
#define CANIF_E_PARAM_HRH 12
#define CANIF_TRCV_E_TRCV_NOT_NORMAL 70
#define CANIF_E_INVALID_TXPDUID 80
#define CANIF_E_INVALID_RXPDUID 90
+//@}
typedef enum {
- // UNINIT mode. Default mode of the CAN driver and all
- // CAN controllers connected to one CAN network after
- // power on.
+ /** UNINIT mode. Default mode of the CAN driver and all
+ * CAN controllers connected to one CAN network after
+ * power on. */
CANIF_CS_UNINIT = 0,
- // STOPPED mode. At least one of all CAN controllers
- // connected to one CAN network are halted and does
- // not operate on the bus.
+ /** STOPPED mode. At least one of all CAN controllers
+ * connected to one CAN network are halted and does
+ * not operate on the bus. */
CANIF_CS_STOPPED,
- // STARTED mode. All CAN controllers connected to
- // one CAN network are started by the CAN driver and
- // in full-operational mode.
+ /** STARTED mode. All CAN controllers connected to
+ * one CAN network are started by the CAN driver and
+ * in full-operational mode. */
CANIF_CS_STARTED,
- // SLEEP mode. At least one of all CAN controllers
- // connected to one CAN network are set into the
- // SLEEP mode and can be woken up by request of the
- // CAN driver or by a network event (must be supported
- // by CAN hardware)
+ /** SLEEP mode. At least one of all CAN controllers
+ * connected to one CAN network are set into the
+ * SLEEP mode and can be woken up by request of the
+ * CAN driver or by a network event (must be supported
+ * by CAN hardware) */
CANIF_CS_SLEEP,
} CanIf_ControllerModeType;
-// Status of the PDU channel group. Current mode of the channel defines its
-// transmit or receive activity. Communication direction (transmission and/or
-// reception) of the channel can be controlled separately or together by upper
-// layers.
+/** Status of the PDU channel group. Current mode of the channel defines its
+ * transmit or receive activity. Communication direction (transmission and/or
+ * reception) of the channel can be controlled separately or together by upper
+ * layers. */
typedef enum {
- // Channel shall be set to the offline mode
- // => no transmission and reception
+ /** Channel shall be set to the offline mode
+ * => no transmission and reception */
CANIF_SET_OFFLINE = 0,
- // Receive path of the corresponding channel
- // shall be disabled
+ /** Receive path of the corresponding channel
+ * shall be disabled */
CANIF_SET_RX_OFFLINE,
- // Receive path of the corresponding channel
- // shall be enabled
+ /** Receive path of the corresponding channel
+ * shall be enabled */
CANIF_SET_RX_ONLINE,
- // Transmit path of the corresponding channel
- // shall be disabled
+ /** Transmit path of the corresponding channel
+ * shall be disabled */
CANIF_SET_TX_OFFLINE,
- // Transmit path of the corresponding channel
- // shall be enabled
+ /** Transmit path of the corresponding channel
+ * shall be enabled */
CANIF_SET_TX_ONLINE,
- // Channel shall be set to online mode
- // => full operation mode
+ /** Channel shall be set to online mode
+ * => full operation mode */
CANIF_SET_ONLINE,
- // Transmit path of the corresponding channel
- // shall be set to the offline active mode
- // => notifications are processed but transmit
- // requests are blocked.
+ /** Transmit path of the corresponding channel
+ * shall be set to the offline active mode
+ * => notifications are processed but transmit
+ * requests are blocked. */
CANIF_SET_TX_OFFLINE_ACTIVE,
} CanIf_ChannelSetModeType;
typedef enum {
- // Channel is in the offline mode ==> no transmission or reception
+ /** Channel is in the offline mode ==> no transmission or reception */
CANIF_GET_OFFLINE = 0,
- // Receive path of the corresponding channel is enabled and
- // transmit path is disabled
+ /** Receive path of the corresponding channel is enabled and
+ * transmit path is disabled */
CANIF_GET_RX_ONLINE,
- // Transmit path of the corresponding channel is enabled and
- // receive path is disabled
+ /** Transmit path of the corresponding channel is enabled and
+ * receive path is disabled */
CANIF_GET_TX_ONLINE,
- // Channel is in the online mode ==> full operation mode
+ /** Channel is in the online mode ==> full operation mode */
CANIF_GET_ONLINE,
- // Transmit path of the corresponding channel is in
- // the offline mode ==> transmit notifications are processed but
- // transmit requests are blocked. The receiver path is disabled.
+ /** Transmit path of the corresponding channel is in
+ * the offline mode ==> transmit notifications are processed but
+ * transmit requests are blocked. The receiver path is disabled. */
CANIF_GET_OFFLINE_ACTIVE,
- // Transmit path of the corresponding channel is in the offline
- // active mode ==> transmit notifications are processed but transmit
- // requests are blocked. The receive path is enabled.
+ /** Transmit path of the corresponding channel is in the offline
+ * active mode ==> transmit notifications are processed but transmit
+ * requests are blocked. The receive path is enabled. */
CANIF_GET_OFFLINE_ACTIVE_RX_ONLINE
} CanIf_ChannelGetModeType;
typedef enum {
- // No transmit or receive event occurred for
- // the requested L-PDU.
+ /** No transmit or receive event occurred for
+ * the requested L-PDU. */
CANIF_NO_NOTIFICATION = 0,
- // The requested Rx/Tx CAN L-PDU was
- // successfully transmitted or received.
+ /** The requested Rx/Tx CAN L-PDU was
+ * successfully transmitted or received. */
CANIF_TX_RX_NOTIFICATION,
} CanIf_NotifStatusType;
typedef enum {
- // Transceiver mode NORMAL
+ /** Transceiver mode NORMAL */
CANIF_TRCV_MODE_NORMAL = 0,
- // Transceiver mode STANDBY
+ /** Transceiver mode STANDBY */
CANIF_TRCV_MODE_STANDBY,
- //Transceiver mode SLEEP
+ /** Transceiver mode SLEEP */
CANIF_TRCV_MODE_SLEEP
} CanIf_TransceiverModeType;
typedef enum {
- // Due to an error wake up reason was not detected.
- // This value may only be reported when error was
- // reported to DEM before.
+ /** Due to an error wake up reason was not detected.
+ * This value may only be reported when error was
+ * reported to DEM before. */
CANIF_TRCV_WU_ERROR = 0,
- // The transceiver does not support any information
- // for the wakeup reason.
+ /** The transceiver does not support any information
+ * for the wakeup reason. */
CANIF_TRCV_WU_NOT_SUPPORTED,
- // The transceiver has detected, that the network has
- // caused the wake up of the ECU
+ /** The transceiver has detected, that the network has
+ * caused the wake up of the ECU */
CANIF_TRCV_WU_BY_BUS,
- // The transceiver detected, that the network has woken
- // the ECU via a request to NORMAL mode
+ /** The transceiver detected, that the network has woken
+ * the ECU via a request to NORMAL mode */
CANIF_TRCV_WU_INTERNALLY,
- // The transceiver has detected, that the "wake up"
- // is due to an ECU reset
+ /** The transceiver has detected, that the "wake up"
+ * is due to an ECU reset */
CANIF_TRCV_WU_RESET,
- // The transceiver has detected, that the "wake up"
- // is due to an ECU reset after power on.
+ /** The transceiver has detected, that the "wake up"
+ * is due to an ECU reset after power on. */
CANIF_TRCV_WU_POWER_ON
} CanIf_TrcvWakeupReasonType;
typedef enum {
- // The notification for wakeup events is enabled
- // on the addressed network.
+ /** The notification for wakeup events is enabled
+ * on the addressed network. */
CANIF_TRCV_WU_ENABLE = 0,
- // The notification for wakeup events is disabled
- // on the addressed network.
+ /** The notification for wakeup events is disabled
+ * on the addressed network. */
CANIF_TRCV_WU_DISABLE,
- // A stored wakeup event is cleared on the addressed network
+ /** A stored wakeup event is cleared on the addressed network */
CANIF_TRCV_WU_CLEAR
} CanIf_TrcvWakeupModeType;
#endif /*CANIF_TYPES_H_*/
+/** @} */
+/** @addtogroup Com COM module
+ * @{ */
-
-
+/** @file Com_Types.h
+ * Definitions of configuration types and parameters for the COM module.
+ */
#ifndef COM_TYPES_H_\r
type == SINT16 ? sizeof(sint16) : \\r
type == SINT32 ? sizeof(sint32) : sizeof(boolean)) \\r
\r
-\r
-typedef struct {\r
- ComFilterAlgorithm_type ComFilterAlgorithm;\r
- uint32 ComFilterMask;\r
- uint32 ComFilterMax;\r
- uint32 ComFilterMin;\r
+/** Filter configuration type.
+ * NOT SUPPORTED
+ */
+typedef struct {
+ /** The algorithm that this filter uses. */
+ ComFilterAlgorithm_type ComFilterAlgorithm;
+ /** Filter mask. */
+ uint32 ComFilterMask;
+ /** Max value for filter. */
+ uint32 ComFilterMax;
+ /** Min value for filter. */
+ uint32 ComFilterMin;
+ /** Offset for filter. */
uint32 ComFilterOffset;\r
uint32 ComFilterPeriodFactor;\r
uint32 ComFilterX;\r
-\r
-\r
uint32 ComFilterArcN;\r
uint32 ComFilterArcNewValue;\r
uint32 ComFilterArcOldValue;\r
\r
} ComFilter_type;\r
\r
-\r
+/** Configuration structure for group signals */
typedef struct {\r
- /* Starting position (bit) of the signal within the IPDU.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required.\r
- *\r
- * Comment: Range 0 to 63.\r
+ /** Starting position (bit) of the signal within the IPDU.
+ * Range 0 to 63.
*/\r
const uint8 ComBitPosition;\r
\r
- /* The size of the signal in bits.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required.\r
- *\r
- * Comment: Range 0 to 64.\r
+ /** The size of the signal in bits.
+ * Range 0 to 64.
*/\r
const uint8 ComBitSize;\r
\r
- /* Identifier for the signal.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required.\r
- *\r
- * Comment: Should be the same value as the index in the COM signal array.\r
+ /** Identifier for the signal.
+ * Should be the same value as the index in the COM signal array.
*/\r
const uint8 ComHandleId;\r
\r
- /* Callback function used when an invalid signal is received.\r
- *\r
- * Context:\r
- * - Receive.\r
- * - Not required.\r
- */\r
- // ComInvalidNotification;\r
-\r
- /*\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Not required.\r
- */\r
- //uint8 ComSignalDataInvalidValue;\r
-\r
- /* Defines the endianess of the signal's network representation.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required.\r
- */\r
+ /** Defines the endianess of the signal's network representation. */
const ComSignalEndianess_type ComSignalEndianess;\r
\r
- /*\r
- * Value used to initialized this signal.\r
- *\r
- * Context:\r
- * - Send\r
- * - Required\r
- */\r
+ /** Value used to initialize this signal. */
const uint32 ComSignalInitValue;\r
\r
- /* The number of bytes if the signal has type UINT8_N;\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required if type of signal is UINT8_N\r
- *\r
- * Comment: Range 1 to 8.\r
+ /** The number of bytes if the signal has type UINT8_N;
+ * Range 1 to 8.
*/\r
const uint8 ComSignalLength;\r
\r
- /* Defines the type of the signal\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required.\r
- */\r
+ /** Defines the type of the signal. */
const Com_SignalType ComSignalType;\r
\r
\r
- /* Filter for this signal\r
- *\r
- * Context:\r
- * - Send.\r
- * - Required.\r
+ /** Filter for this signal.
+ * NOT SUPPORTED
*/\r
const ComFilter_type ComFilter;\r
\r
/* Pointer to the shadow buffer of the signal group that this group signal is contained in.\r
*\r
- * Comment: This is initialized by Com_Init() and should not be configured.\r
+ * This is initialized by Com_Init() and should not be configured.
*/\r
//void *Com_Arc_ShadowBuffer;\r
-\r
+
+ /* Callback function used when an invalid signal is received. */
+ // ComInvalidNotification;
+ //uint8 ComSignalDataInvalidValue;
\r
/* IPDU id of the IPDU that this signal belongs to.\r
*\r
- * Comment: This is initialized by Com_Init() and should not be configured.\r
+ * This is initialized by Com_Init() and should not be configured.
*/\r
\r
//const uint8 ComIPduHandleId;\r
//const uint8 ComSignalUpdated;\r
-\r
+
+ /** Marks the end of list for the configuration array. */
const uint8 Com_Arc_EOL;\r
} ComGroupSignal_type;\r
-\r
+
+
+/** Configuration structure for signals and signal groups. */
typedef struct {\r
\r
- /* Starting position (bit) of the signal within the IPDU.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required.\r
- *\r
- * Comment: Range 0 to 63.
+ /** Starting position (bit) of the signal within the IPDU.
+ * Range 0 to 63.
*/\r
const uint8 ComBitPosition;\r
\r
- /* The size of the signal in bits.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required.\r
- *\r
- * Comment: Range 0 to 64.
+ /** The size of the signal in bits.
+ * Range 0 to 63.
*/\r
const uint8 ComBitSize;\r
\r
-\r
- /* Action to be taken if an invalid signal is received.\r
- *\r
- * Context:\r
- * -
- */\r
- // ComDataInvalidAction;\r
-\r
- /* Notification function for error notification.\r
- *\r
- * Context:\r
- * - Send.\r
- * - Not required.\r
- *
- */\r
+ /** Notification function for error notification. */
void (*ComErrorNotification) (void);\r
\r
- /* First timeout period for deadline monitoring.\r
- *\r
- * Context:\r
- * - Receive\r
- * - Not required.
- */\r
+ /** First timeout period for deadline monitoring. */
const uint32 ComFirstTimeoutFactor;\r
\r
- /* Identifier for the signal.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required.\r
- *\r
- * Comment: Should be the same value as the index in the COM signal array.
+ /** Identifier for the signal.
+ * Should be the same value as the index in the COM signal array.
*/\r
const uint8 ComHandleId;\r
\r
- /* Callback function used when an invalid signal is received.\r
- *\r
- * Context:\r
- * - Receive.\r
- * - Not required.
- */\r
- // ComInvalidNotification;\r
-\r
- /* Tx and Rx notification function.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Not required.
- */\r
+ /** Tx and Rx notification function. */
void (*ComNotification) (void);\r
\r
- /* Action to be performed when a reception timeout occurs.\r
- *\r
- * Context:\r
- * - Receive.\r
- * - Required.
- */\r
+ /** Action to be performed when a reception timeout occurs. */
const ComRxDataTimeoutAction_type ComRxDataTimeoutAction;\r
\r
- /*\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Not required.
- */\r
- //uint8 ComSignalDataInvalidValue;\r
-\r
- /* Defines the endianess of the signal's network representation.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required.
- */\r
+ /** Defines the endianess of the signal's network representation. */
const ComSignalEndianess_type ComSignalEndianess;\r
\r
- /*\r
- * Value used to initialized this signal.\r
- *\r
- * Context:\r
- * - Send\r
- * - Required
- */\r
+ /** Value used to initialized this signal. */
const uint32 ComSignalInitValue;\r
\r
- /* The number of bytes if the signal has type UINT8_N;\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required if type of signal is UINT8_N\r
- *\r
- * Comment: Range 1 to 8.
+ /** The number of bytes if the signal has type UINT8_N;
+ * Range 1 to 8.
*/\r
const uint8 ComSignalLength;\r
\r
- /* Defines the type of the signal\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required.
- */\r
+ /** Defines the type of the signal. */
const Com_SignalType ComSignalType;\r
\r
- /* Timeout period for deadline monitoring.\r
- *\r
- * Context:\r
- * - Receive\r
- * - Not required.\r
- */\r
- //const uint32 Com_Arc_DeadlineCounter;\r
+ /** Timeout period for deadline monitoring. */
const uint32 ComTimeoutFactor;\r
\r
- /* Timeout notification function\r
- *\r
- * Context:\r
- * - Receive and send\r
- * - Not required.\r
- */\r
+ /** Timeout notification function. */
void (*ComTimeoutNotification) (void);\r
\r
const ComTransferProperty_type ComTransferProperty;\r
\r
- /*\r
- * The bit position in the PDU for this signals update bit.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Not required.\r
- *\r
- * Comment: Range 0 to 63. If update bit is used for this signal, then the corresponding parameter ComSignalArcUseUpdateBit\r
- * needs to be set to one.
+ /** The bit position in the PDU for this signal's update bit.
+ * Range 0 to 63.
+ * Only applicable if an update bit is used. NULL otherwise.
*/\r
- const uint8 ComUpdateBitPosition;\r
+ const uint8 ComUpdateBitPosition;
+
+ /** Marks if this signal uses an update bit.
+ * Should be set to one if an update bit is used.
+ */
const uint8 ComSignalArcUseUpdateBit;\r
\r
- /* Filter for this signal\r
- *\r
- * Context:\r
- * - Send.\r
- * - Required.
+ /** Filter for this signal.
+ * NOT SUPPORTED.
*/\r
const ComFilter_type ComFilter;\r
\r
-\r
- /**** SIGNAL GROUP DATA ****/\r
- const uint8 Com_Arc_IsSignalGroup;\r
+ /** Marks if this signal is a signal group.
+ * Should be set to 1 if the signal is a signal group.
+ */
+ const uint8 Com_Arc_IsSignalGroup;
+
+ /** Array of group signals.
+ * Only applicable if this signal is a signal group.
+ */
const ComGroupSignal_type *ComGroupSignal[COM_MAX_NR_SIGNALS_PER_SIGNAL_GROUP];\r
+
+
//void *Com_Arc_ShadowBuffer;\r
//void *Com_Arc_IPduDataPtr;\r
\r
-\r
/* Pointer to the data storage of this signals IPDU.\r
- *\r
- * Comment: This is initialized by Com_Init() and should not be configured.
+ * This is initialized by Com_Init() and should not be configured.
*/\r
//const void *ComIPduDataPtr;\r
\r
/* IPDU id of the IPDU that this signal belongs to.\r
- *\r
- * Comment: This is initialized by Com_Init() and should not be configured.\r
+ * This is initialized by Com_Init() and should not be configured.
*/\r
\r
//const uint8 ComIPduHandleId;\r
//const uint8 ComSignalUpdated;\r
-\r
-\r
+
+ /* Callback function used when an invalid signal is received.
+ */
+ // ComInvalidNotification;
+
+ //uint8 ComSignalDataInvalidValue;
+
+ /* Action to be taken if an invalid signal is received.
+ */
+ // ComDataInvalidAction;
+
+ /** Marks the end of list for the signal configuration array. */
const uint8 Com_Arc_EOL;\r
} ComSignal_type;\r
+
+
\r
+/** Configuration structure for Tx-mode for I-PDUs. */
+typedef struct {
\r
-typedef struct {\r
- /* Transmission mode for this IPdu.\r
- *\r
- * Context:\r
- * - Send.\r
- * - Required.
- */\r
+ /** Transmission mode for this IPdu. */
const ComTxModeMode_type ComTxModeMode;\r
\r
- /* Defines the number of times this IPdu will be sent in each IPdu cycle.\r
- *\r
- * Context:\r
- * - Send.\r
- * - Required for transmission modes DIRECT/N-times and MIXED.\r
- *\r
- * Comment: Should be set to 0 for DIRECT transmission mode and >0 for DIRECT/N-times mode.
+ /** Defines the number of times this IPdu will be sent in each IPdu cycle.
+ * Should be set to 0 for DIRECT transmission mode and >0 for DIRECT/N-times mode.
*/\r
const uint8 ComTxModeNumberOfRepetitions;\r
\r
- /* Defines the period of the transmissions in DIRECT/N-times and MIXED\r
- * transmission modes.\r
- *\r
- * Context:\r
- * - Send.\r
- * - Required for DIRECT/N-times and MIXED transmission modes.
- */\r
+ /** Defines the period of the transmissions in DIRECT/N-times and MIXED transmission modes. */
const uint32 ComTxModeRepetitionPeriodFactor;\r
\r
- /* Time before first transmission of this IPDU. (i.e. between the ipdu group start\r
- * and this IPDU is sent for the first time.\r
- *\r
- * Context:\r
- * - Send.\r
- * - Required for all transmission modes except NONE.
- */\r
+ /** Time before first transmission of this IPDU. (i.e. between the ipdu group start and this IPDU is sent for the first time. */
const uint32 ComTxModeTimeOffsetFactor;\r
\r
- /* Period of cyclic transmission.\r
- *\r
- * Context:\r
- * - Send.\r
- * - Required for CYCLIC and MIXED transmission mode.
- */\r
+ /** Period of cyclic transmission. */
const uint32 ComTxModeTimePeriodFactor;\r
} ComTxMode_type;\r
\r
-\r
+/** Extra configuration structure for Tx I-PDUs. */
typedef struct {\r
\r
- /* Minimum delay between successive transmissions of the IPdu.\r
- *\r
- * Context:\r
- * - Send.\r
- * - Not required.
- */\r
+ /** Minimum delay between successive transmissions of the IPdu. */
const uint32 ComTxIPduMinimumDelayFactor;\r
\r
- /* COM will fill unused areas within an IPdu with this bit patter.\r
- *\r
- * Context:\r
- * - Send.\r
- * - Required.
+ /** COM will fill unused areas within an IPdu with this bit patter.
*/\r
const uint8 ComTxIPduUnusedAreasDefault;\r
\r
- /* Transmission modes for this IPdu.\r
- *\r
- * Context:\r
- * - Send.\r
- * - Not required.\r
- *\r
- * Comment: TMS is not implemented so only one static transmission\r
- * mode is supported.
+ /** Transmission modes for the IPdu.
+ * TMS is not implemented so only one static transmission mode is supported.
*/\r
const ComTxMode_type ComTxModeTrue;\r
+
//ComTxMode_type ComTxModeFalse;\r
+} ComTxIPdu_type;
+
\r
-} ComTxIPdu_type;\r
-\r
-/*\r
-typedef struct {\r
- uint8 ComTxIPduNumberOfRepetitionsLeft;\r
- uint32 ComTxModeRepetitionPeriodTimer;\r
- uint32 ComTxIPduMinimumDelayTimer;\r
- uint32 ComTxModeTimePeriodTimer;\r
-} ComTxIPduTimer_type;\r
-*/\r
-\r
+/** Configuration structure for I-PDU groups */
typedef struct ComIPduGroup_type {\r
- // ID of this group. 0-31.\r
+ /** ID of this group.
+ * Range 0 to 31.
+ */
const uint8 ComIPduGroupHandleId;\r
\r
// reference to the group that this group possibly belongs to.\r
//struct ComIPduGroup_type *ComIPduGroupRef;\r
-\r
+
+ /** Marks the end of list for the I-PDU group configuration array. */
const uint8 Com_Arc_EOL;\r
} ComIPduGroup_type;\r
\r
-\r
+
+/** Configuration structure for an I-PDU. */
typedef struct {\r
\r
- /* Callout function of this IPDU.\r
+ /** Callout function of this IPDU.
* The callout function is an optional function used both on sender and receiver side.\r
* If configured, it determines whether an IPdu is considered for further processing. If\r
* the callout return false the IPdu will not be received/sent.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Not required.
*/\r
boolean (*ComIPduCallout)(PduIdType PduId, const uint8 *IPduData);\r
\r
\r
- /* The ID of this IPDU.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required.\r
- *\r
- * Comment:
- */\r
+ /** The ID of this IPDU. */
const uint8 ComIPduRxHandleId;\r
\r
- /* Signal processing mode for this IPDU.\r
- *\r
- * Context:\r
- * - Receive.\r
- * - Required.
- */\r
+ /** Signal processing mode for this IPDU. */
const Com_IPduSignalProcessingMode ComIPduSignalProcessing;\r
\r
- /* Size of the IPDU in bytes. 0-8 for CAN and LIN and 0-256 for FlexRay.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required.
+ /** Size of the IPDU in bytes.
+ * Range 0-8 for CAN and LIN and 0-256 for FlexRay.
*/\r
const uint8 ComIPduSize;\r
\r
- /* The direction of the IPDU. Receive or Send.\r
- *\r
- * Context:\r
- * - Receive or send.\r
- * - Required.
- */\r
+ /** The direction of the IPDU. Receive or Send. */
const Com_IPduDirection ComIPduDirection;\r
\r
- /* Reference to the IPDU group that this IPDU belongs to.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Required.
- */\r
+ /** Reference to the IPDU group that this IPDU belongs to. */
const uint8 ComIPduGroupRef;\r
\r
- /* Reference to global PDU structure. ???\r
- *\r
- * No global PDU structure defined so this variable is left out.
- */\r
- // PduIdRef\r
-\r
- /* Container of transmission related parameters.\r
- *\r
- * Context:\r
- * - Send\r
- * - Required.
- */\r
+ /** Container of transmission related parameters. */
const ComTxIPdu_type ComTxIPdu;\r
\r
- /* Transmission related timers and parameters.\r
- *\r
- * Context:\r
- * - Send\r
- * - Not required.\r
- * - Not part of the AUTOSAR standard.\r
- *\r
- * Comment: These are internal variables and should not be configured.
- */\r
- //ComTxIPduTimer_type Com_Arc_TxIPduTimers;\r
-\r
- /* Pointer to data storage of this IPDU.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- *\r
- * Comment: this memory will be initialized dynamically in Com_Init();
+ /** References to all signal groups contained in this IPDU.
+ * It probably makes little sense not to define at least one signal or signal group for each IPDU.
*/\r
- //void *ComIPduDataPtr;\r
-\r
- /* References to all signals contained in this IPDU.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Not required.\r
- *\r
- * Comment: It probably makes little sense not to define at least one signal for each IPDU.\r
- */\r
- //const uint8 Com_Arc_NIPduSignalGroupRef;\r
const ComSignal_type *ComIPduSignalGroupRef[COM_MAX_NR_SIGNALS_PER_IPDU];\r
\r
\r
- /* References to all signals contained in this IPDU.\r
- *\r
- * Context:\r
- * - Send and receive.\r
- * - Not required.\r
- *\r
- * Comment: It probably makes little sense not to define at least one signal for each IPDU.\r
+ /** References to all signals contained in this IPDU.
+ * It probably makes little sense not to define at least one signal or signal group for each IPDU.
*/\r
//const uint8 NComIPduSignalRef;\r
const ComSignal_type *ComIPduSignalRef[COM_MAX_NR_SIGNALS_PER_IPDU];\r
* The following two variables are used to control the per I-PDU based Rx/Tx-deadline monitoring.\r
*/\r
//const uint32 Com_Arc_DeadlineCounter;\r
- //const uint32 Com_Arc_TimeoutFactor;\r
+ //const uint32 Com_Arc_TimeoutFactor;
+
+ /* Transmission related timers and parameters.
+ * These are internal variables and should not be configured.
+ */
+ //ComTxIPduTimer_type Com_Arc_TxIPduTimers;
+
+ /* Pointer to data storage of this IPDU.
+ */
+ //void *ComIPduDataPtr;
\r
+
+ /** Marks the end of list for this configuration array. */
const uint8 Com_Arc_EOL;\r
\r
} ComIPdu_type;\r
\r
\r
-// Contains configuration specific configuration parameters. Exists once per configuration.\r
+/** Top-level configuration container for COM. Exists once per configuration. */
typedef struct {\r
\r
- // The ID of this configuration. This is returned by Com_GetConfigurationId();\r
+ /** The ID of this configuration. This is returned by Com_GetConfigurationId(); */
const uint8 ComConfigurationId;\r
\r
/*\r
ComGwMapping_type ComGwMapping[];\r
*/\r
\r
- // IPDU definitions. At least one\r
+ /** IPDU definitions */
const ComIPdu_type *ComIPdu;\r
\r
//uint16 Com_Arc_NIPdu;\r
\r
- // IPDU group definitions\r
+ /** IPDU group definitions */
const ComIPduGroup_type *ComIPduGroup;\r
\r
- // Signal definitions\r
+ /** Signal definitions */
const ComSignal_type *ComSignal;\r
\r
// Signal group definitions\r
//ComSignalGroup_type *ComSignalGroup;\r
\r
- // Group signal definitions\r
+ /** Group signal definitions */
const ComGroupSignal_type *ComGroupSignal;\r
\r
} Com_ConfigType;\r
\r
-#endif /*COM_TYPES_H_*/\r
+#endif /*COM_TYPES_H_*/
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup EcuM ECU State Manager
+ * @{ */
-
-
-
-
-
+/** @file EcuM.h
+ * API and type definitions for ECU State Manager.
+ */
#ifndef ECUM_H_\r
#define ECUM_H_\r
#include "ComStack_Types.h"\r
#endif\r
\r
-// Error codes produced by this module\r
+/** @name Error Codes */
+//@{
#define ECUM_E_NOT_INITIATED (0x10)\r
#define ECUM_E_SERVICE_DISABLED (0x11)\r
#define ECUM_E_NULL_POINTER (0x12)\r
#define ECUM_E_MISMATCHED_RUN_RELEASE (0x15)\r
#define ECUM_E_STATE_PAR_OUT_OF_RANGE (0x16)\r
#define ECUM_E_UNKNOWN_WAKEUP_SOURCE (0x17)\r
-\r
-// Service ID in this module\r
+//@}
+
+/** @name Service id's */
+//@{
#define ECUM_GETSTATE_ID (0x07)\r
#define ECUM_SELECTAPPMODE_ID (0x0f)\r
#define ECUM_GETAPPMODE_ID (0x11)\r
#define ECUM_SELECT_BOOTARGET_ID (0x12)\r
#define ECUM_GET_BOOTARGET_ID (0x13)\r
#define ECUM_MAINFUNCTION_ID (0x18)\r
-\r
+
+/** Possible states */
typedef enum {\r
ECUM_STATE_APP_RUN = 0x32,\r
ECUM_STATE_SHUTDOWN = 0x40,\r
typedef uint8 EcuM_UserType;\r
\r
enum {\r
- // Internal reset of µC (bit 2)\r
- // The internal reset typically only resets the µC\r
- // core but not peripherals or memory\r
- // controllers. The exact behavior is hardware\r
- // specific.\r
- // This source may also indicate an unhandled\r
- // exception.\r
+ /** Internal reset of µC (bit 2).
+ * The internal reset typically only resets the µC
+ * core but not peripherals or memory
+ * controllers. The exact behavior is hardware
+ * specific.
+ * This source may also indicate an unhandled
+ * exception. */
ECUM_WKSOURCE_INTERNAL_RESET = 0x04,\r
\r
- // Reset by external watchdog (bit 4), if\r
- // detection supported by hardware\r
+ /** Reset by external watchdog (bit 4), if
+ * detection supported by hardware */
ECUM_WKSOURCE_EXTERNAL_WDG = 0x10,\r
\r
- // Reset by internal watchdog (bit 3)\r
+ /** Reset by internal watchdog (bit 3) */
ECUM_WKSOURCE_INTERNAL_WDG = 0x08,\r
\r
- // Power cycle (bit 0)\r
+ /** Power cycle (bit 0) */
ECUM_WKSOURCE_POWER = 0x01,\r
\r
- // ~0 to the power of 29\r
+ /** ~0 to the power of 29 */
ECUM_WKSOURCE_ALL_SOURCES = 0x3FFFFFFF,\r
\r
- // Hardware reset (bit 1).\r
- // If hardware cannot distinguish between a\r
- // power cycle and a reset reason, then this\r
- // shall be the default wakeup source\r
+ /** Hardware reset (bit 1).
+ * If hardware cannot distinguish between a
+ * power cycle and a reset reason, then this
+ * shall be the default wakeup source */
ECUM_WKSOURCE_RESET = 0x02,\r
};\r
\r
\r
typedef enum\r
{\r
- ECUM_WKSTATUS_NONE = 0, // No pending wakeup event was detected\r
- ECUM_WKSTATUS_PENDING = 1, // The wakeup event was detected but not yet validated\r
- ECUM_WKSTATUS_VALIDATED = 2, // The wakeup event is valid\r
- ECUM_WKSTATUS_EXPIRED = 3, // The wakeup event has not been validated and has expired therefore\r
+ ECUM_WKSTATUS_NONE = 0, /**< No pending wakeup event was detected */
+ ECUM_WKSTATUS_PENDING = 1, /**< The wakeup event was detected but not yet validated */
+ ECUM_WKSTATUS_VALIDATED = 2, /**< The wakeup event is valid */
+ ECUM_WKSTATUS_EXPIRED = 3, /**< The wakeup event has not been validated and has expired therefore */
} EcuM_WakeupStatusType;\r
\r
typedef enum\r
{\r
- ECUM_WWKACT_RUN = 0, // Initialization into RUN state\r
- ECUM_WKACT_TTII = 2, // Execute time triggered increased inoperation protocol and shutdown\r
- ECUM_WKACT_SHUTDOWN = 3, // Immediate shutdown\r
+ ECUM_WWKACT_RUN = 0, /**< Initialization into RUN state */
+ ECUM_WKACT_TTII = 2, /**< Execute time triggered increased inoperation protocol and shutdown */
+ ECUM_WKACT_SHUTDOWN = 3, /**< Immediate shutdown */
} EcuM_WakeupReactionType;\r
\r
typedef enum\r
{\r
- ECUM_BOOT_TARGET_APP = 0, // The Ecu will boot into the application\r
- ECUM_BOOT_TARGET_BOOTLOADER = 1, // The Ecu will boot into the bootloader\r
+ ECUM_BOOT_TARGET_APP = 0, /**< The Ecu will boot into the application */
+ ECUM_BOOT_TARGET_BOOTLOADER = 1, /**< The Ecu will boot into the bootloader */
} EcuM_BootTargetType;\r
void EcuM_AL_SwitchOff( void );\r
\r
#endif /*ECUM_H_*/\r
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Gpt GPT Driver
+ * @{ */
-
-
-
-
-
+/** @file Gpt.h
+ * API and type definitions for GPT Driver.
+ */
#ifndef GPT_H_
#define GPT_H_
#include "Std_Types.h"
//#include "EcuM.h" mahi: What for ???
-/* ERROR CODES */
+/** @name Error Codes */
+//@{
#define GPT_E_UNINIT 0x0a
#define GPT_E_BUSY 0x0b
#define GPT_E_NOT_STARTED 0x0c
#define GPT_E_PARAM_VALUE 0x15
#define GPT_E_PARAM_MODE 0x1f
#define GPT_E_PARAM_CONFIG 0x0e // TODO: Not in spec. Find real value
+//@}
-/* SERVICE_ID's */
+/** @name Service id's */
+//@{
#define GPT_INIT_SERVICE_ID 0x01
#define GPT_DEINIT_SERVICE_ID 0x02
#define GPT_GETTIMEELAPSED_SERVICE_ID 0x03
#define GPT_DISABLEWAKEUP_SERVICE_ID 0x0a
#define GPT_ENABLEWAKEUP_SERVICE_ID 0x0b
#define GPT_CBK_CHECKWAKEUP_SERVICE_ID 0x0c
+//@}
+/** Channel id type */
typedef uint8_t Gpt_ChannelType;
+/** Channel time value type */
typedef uint32_t Gpt_ValueType;
+/** Channel behavior */
typedef enum
{
GPT_MODE_ONESHOT=0,
#endif
#endif /*GPT_H_*/
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Lin LIN Driver
+ * @{ */
-
-
-
-
-
+/** @file Lin.h
+ * API and type definitions for LIN Driver.
+ */
#ifndef LIN_H_\r
#define LIN_H_\r
typedef struct {\r
} Lin_ConfigType;\r
\r
-/* Represents all valid protected Identifier used by Lin_SendHeader(). */\r
+/** Represents all valid protected Identifier used by Lin_SendHeader(). */
typedef uint8 Lin_FramePidType;\r
\r
-/* This type is used to specify the Checksum model to be used for the LIN Frame. */\r
+/** This type is used to specify the Checksum model to be used for the LIN Frame. */
typedef enum {\r
LIN_ENHANCED_CS,\r
LIN_CLASSIC_CS,\r
} Lin_FrameCsModelType;\r
\r
-// This type is used to specify whether the frame processor is required to transmit the\r
-// response part of the LIN frame.\r
+/** This type is used to specify whether the frame processor is required to transmit the
+ * response part of the LIN frame. */
typedef enum {\r
- // Response is generated from this (master) node\r
+ /** Response is generated from this (master) node */
LIN_MASTER_RESPONSE=0,\r
- // Response is generated from a remote slave node\r
+ /** Response is generated from a remote slave node */
LIN_SLAVE_RESPONSE,\r
- // Response is generated from one slave to another slave,\r
- // for the master the response will be anonymous, it does not\r
- // have to receive the response.\r
+ /** Response is generated from one slave to another slave,
+ * for the master the response will be anonymous, it does not
+ * have to receive the response. */
IN_SLAVE_TO_SLAVE,\r
\r
} Lin_FrameResponseType;\r
\r
-// This type is used to specify the number of SDU data bytes to copy.\r
+/** This type is used to specify the number of SDU data bytes to copy. */
typedef uint8 Lin_FrameDIType;\r
\r
-// This Type is used to provide PID, checksum model, data length and SDU pointer\r
-// from the LIN Interface to the LIN driver.\r
+/** This Type is used to provide PID, checksum model, data length and SDU pointer
+ * from the LIN Interface to the LIN driver. */
typedef struct {\r
Lin_FrameCsModelType Cs;\r
Lin_FramePidType Pid;\r
}Lin_DriverStatusType;\r
\r
typedef enum {\r
- // LIN frame operation return value.\r
- // Development or production error occurred\r
+ /** LIN frame operation return value.
+ * Development or production error occurred */
LIN_NOT_OK,\r
\r
- // LIN frame operation return value.\r
- // Successful transmission.\r
+ /** LIN frame operation return value.
+ * Successful transmission. */
LIN_TX_OK,\r
\r
- // LIN frame operation return value.\r
- // Ongoing transmission (Header or Response).\r
+ /** LIN frame operation return value.
+ * Ongoing transmission (Header or Response). */
LIN_TX_BUSY,\r
\r
- // LIN frame operation return value.\r
- // Erroneous header transmission such as:\r
- // - Mismatch between sent and read back data\r
- // - Identifier parity error or\r
- // - Physical bus error\r
+ /** LIN frame operation return value.
+ * Erroneous header transmission such as:
+ * - Mismatch between sent and read back data
+ * - Identifier parity error or
+ * - Physical bus error */
LIN_TX_HEADER_ERRORLIN,\r
\r
- // LIN frame operation return value.\r
- // Erroneous response transmission such as:\r
- // - Mismatch between sent and read back data\r
- // - Physical bus error\r
+ /** LIN frame operation return value.
+ * Erroneous response transmission such as:
+ * - Mismatch between sent and read back data
+ * - Physical bus error */
LIN_TX_ERROR,\r
\r
- // LIN frame operation return value.\r
- // Reception of correct response.\r
+ /** LIN frame operation return value.
+ * Reception of correct response. */
LIN_RX_OK,\r
\r
- // LIN frame operation return value. Ongoing reception: at\r
- // least one response byte has been received, but the\r
- // checksum byte has not been received.\r
+ /** LIN frame operation return value. Ongoing reception: at
+ * least one response byte has been received, but the
+ * checksum byte has not been received. */
LIN_RX_BUSY,\r
\r
- // LIN frame operation return value.\r
- // Erroneous response reception such as:\r
- // - Framing error\r
- // - Overrun error\r
- // - Checksum error or\r
- // - Short response\r
+ /** LIN frame operation return value.
+ * Erroneous response reception such as:
+ * - Framing error
+ * - Overrun error
+ * - Checksum error or
+ * - Short response */
LIN_RX_ERROR,\r
\r
\r
- // LIN frame operation return value.\r
- // No response byte has been received so far.\r
+ /** LIN frame operation return value.
+ * No response byte has been received so far. */
LIN_RX_NO_RESPONSE,\r
\r
- // LIN channel state return value.\r
- // LIN channel not initialized.\r
+ /** LIN channel state return value.
+ * LIN channel not initialized. */
LIN_CH_UNINIT,\r
\r
- // LIN channel state return value.\r
- // Normal operation; the related LIN channel is ready to\r
- // transmit next header. No data from previous frame\r
- // available (e.g. after initialization)\r
+ /** LIN channel state return value.
+ * Normal operation; the related LIN channel is ready to
+ * transmit next header. No data from previous frame
+ * available (e.g. after initialization) */
LIN_CH_OPERATIONAL,\r
\r
- // LIN channel state return value.\r
- // Sleep mode operation; in this mode wake-up detection\r
- // from slave nodes is enabled.\r
+ /** LIN channel state return value.
+ * Sleep mode operation; in this mode wake-up detection
+ * from slave nodes is enabled. */
LIN_CH_SLEEP\r
\r
} Lin_StatusType;\r
\r
-/* --- Service IDs --- */\r
+/** @name Service id's */
+//@{
#define LIN_INIT_SERVICE_ID 0x00\r
#define LIN_GETVERSIONINFO_SERVICE_ID 0x01\r
#define LIN_WAKEUPVALIDATION_SERVICE_ID 0x0A\r
#define LIN_WAKE_UP_SERVICE_ID 0x07\r
#define LIN_GETSTATUS_SERVICE_ID 0x08\r
#define LIN_GO_TO_SLEEP_INTERNAL_SERVICE_ID 0x09\r
-\r
-/* --- Error codes --- */\r
+//@}
+
+/** @name Error Codes */
+//@{\r
#define LIN_E_UNINIT 0x00\r
#define LIN_E_CHANNEL_UNINIT 0x01\r
#define LIN_E_INVALID_CHANNEL 0x02\r
#define LIN_E_INVALID_POINTER 0x03\r
#define LIN_E_STATE_TRANSITION 0x04\r
+//@}
\r
void Lin_Init( const Lin_ConfigType* Config );\r
\r
Lin_StatusType Lin_GetStatus( uint8 Channel, uint8** Lin_SduPtr );\r
\r
#endif\r
-\r
+/** @} */
\r
\r
\r
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup LinIf LIN Interface
+ * @{ */
-
-
-
-
-
+/** @file LinIf.h
+ * API and type definitions for LIN Interface.
+ */
#ifndef LINIF_H_\r
#define LINIF_H_\r
#include "ComM_Types.h"\r
\r
\r
-\r
-\r
-/* --- Service IDs --- */\r
+/** @name Service id's */
+//@{
#define LINIF_INIT_SERVICE_ID 0x00\r
#define LINIF_GETVERSIONINFO_SERVICE_ID 0x03\r
#define LINIF_SCHEDULEREQUEST_SERVICE_ID 0x05\r
#define LINIF_GOTOSLEEP_SERVICE_ID 0x06\r
#define LINIF_WAKEUP_SERVICE_ID 0x07\r
#define LINIF_MAINFUNCTION_SERVICE_ID 0x80\r
-\r
-/* --- Error codes --- */\r
+//@}
+
+/** @name Error Codes */
+//@{
#define LINIF_E_UNINIT 0x00\r
#define LINIF_E_ALREADY_INITIALIZED 0x10\r
#define LINIF_E_NONEXISTENT_CHANNEL 0x20\r
#define LINIF_E_PARAMETER_POINTER 0x40\r
#define LINIF_E_SCHEDULE_OVERFLOW 0x50\r
#define LINIF_E_SCHEDULE_REQUEST_ERROR 0x51\r
+//@}
#if (LINIF_VERSION_INFO_API == STD_ON)\r
void LinIf_GetVersionInfo( Std_VersionInfoType *versionInfo );\r
void LinIf_MainFunction();\r
\r
#endif\r
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Mcu MCU Driver
+ * @{ */
-
-
-
-
-
+/** @file Mcu.h
+ * API and type definitions for MCU Driver.
+ */
#ifndef MCU_H_\r
#define MCU_H_\r
#include "irq.h"\r
//#include "mpc55xx_aos.h"\r
\r
-/* Service ID's */\r
+/** @name Service id's */
+//@{
#define MCU_INIT_SERVICE_ID 0x00\r
#define MCU_INITRAMSECTION_SERVICE_ID 0x01\r
#define MCU_INITCLOCK_SERVICE_ID 0x02\r
#define MCU_SETMODE_SERVICE_ID 0x08\r
#define MCU_GETVERSIONINFO_SERVICE_ID 0x09\r
#define MCU_INTCVECTORINSTALL_SERVICE_ID 0x0A // Not in spec but follows pattern\r
-\r
-/* Development error codes */\r
+//@}
+
+/** @name Error Codes */
+//@{
#define MCU_E_PARAM_CONFIG 0x0A\r
#define MCU_E_PARAM_CLOCK 0x0B\r
#define MCU_E_PARAM_MODE 0x0C\r
#define MCU_E_PARAM_RAMSECTION 0x0D\r
#define MCU_E_PLL_NOT_LOCKED 0x0E\r
#define MCU_E_UNINIT 0x0F\r
+//@}
\r
/* Specific return values */\r
-#define MCU_GETRESETRAWVALUE_NORESETREG_RV 0x00 // MCU006\r
-#define MCU_GETRESETRAWVALUE_UNINIT_RV 0xffffffff // MCU135\r
+#define MCU_GETRESETRAWVALUE_NORESETREG_RV 0x00 /**< MCU006 */
+#define MCU_GETRESETRAWVALUE_UNINIT_RV 0xffffffff /**< MCU135 */
\r
typedef enum {\r
MCU_PLL_LOCKED,\r
\r
\r
#endif /*MCU_H_*/\r
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup General General
+ * @{ */
-
-
-
-
-
+/** @file Platform_Types.h
+ * General platform type definitions.
+ */
#ifndef _PLATFORM_TYPES_H_\r
#define _PLATFORM_TYPES_H_\r
typedef double float64; \r
\r
#endif\r
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Port Port Driver
+ * @{ */
-
-
-
-
-
+/** @file Port.h
+ * API and type definitions for Port Driver.
+ */
#ifndef PORT_H_\r
#define PORT_H_\r
#if PORT_VERSION_INFO_API == STD_ON\r
void Port_GetVersionInfo( Std_VersionInfoType *versionInfo );\r
#endif \r
-\r
+
+/** @name Error Codes */
+//@{
#define PORT_E_PARAM_PIN 0x0a\r
#define PORT_E_DIRECTION_UNCHANGEABLE 0x0b\r
#define PORT_E_PARAM_CONFIG 0x0c\r
#define PORT_E_PARAM_INVALID_MODE 0x0d\r
#define PORT_E_MODE_UNCHANGEABLE 0x0e\r
#define PORT_E_UNINIT 0x0f\r
-\r
+//@}
+
+/** @name Service id's */
+//@{
#define PORT_INIT_ID 0x00\r
#define PORT_SET_PIN_DIRECTION_ID 0x01\r
#define PORT_REFRESH_PORT_DIRECTION_ID 0x02\r
#define PORT_GET_VERSION_INFO_ID 0x03\r
#define PORT_SET_PIN_MODE_ID 0x04\r
+//@}
\r
-/*\r
+/**
* PORT046: The type Port_PinDirectionType is a type for defining the direction of a Port Pin. \r
* PORT_PIN_IN Sets port pin as input. \r
* PORT_PIN_OUT Sets port pin as output. \r
void Port_SetPinMode( Port_PinType Pin, Port_PinModeType Mode );\r
\r
#endif /*PORT_H_*/\r
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup Pwm PWM Driver
+ * @{ */
+
+/** @file Pwm.h
+ * API and type definitions for PWM Driver.
+ */
+
#ifndef PWM_H_
#define PWM_H_
/**************************************************************
* Type definitions
**************************************************************/
-// PWM002: Development error values are of type uint8
+/** PWM002: Development error values are of type uint8 */
typedef uint8 Pwm_ErrorType;
-/*
+/**
* PWM058: The width of the duty cycle parameter is 16 bits
*
* PWM059: The PWM module shall comply with the following scaling scheme
/*
* Constants
*****************/
-
-/* Pwm_Init called with the wrong parameter */
+/** @name Error Codes */
+//@{
+/** Pwm_Init called with the wrong parameter */
//const Pwm_ErrorType PWM_E_PARAM_CONFIG = 0x10;
#define PWM_E_PARAM_CONFIG 0x10
-/* PWM is not initialized yet */
+/** PWM is not initialized yet */
//const Pwm_ErrorType PWM_E_UNINIT = 0x11;
#define PWM_E_UNINIT 0x11
-/* Invalid PWM channel identifier */
+/** Invalid PWM channel identifier */
//const Pwm_ErrorType PWM_E_PARAM_CHANNEL = 0x12;
#define PWM_E_PARAM_CHANNEL 0x12
-/* Use of unauthorized service on PWM channel configured fixed period */
+/** Use of unauthorized service on PWM channel configured fixed period */
//const Pwm_ErrorType PWM_E_PERIOD_UNCHANGEABLE = 0x13;
#define PWM_E_PERIOD_UNCHANGEABLE 0x13
-/* Pwm_Init called when already initialized */
+/** Pwm_Init called when already initialized */
//const Pwm_ErrorType PWM_E_ALREADY_INITIALIZED = 0x14;
#define PWM_E_ALREADY_INITIALIZED 0x14
+//@}
/*
* Implemented functions
#endif
#endif /* PWM_H_ */
+/** @} */
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/** @addtogroup General General
+ * @{ */
-
-
-
-
-
-
+/** @file Std_Types.h
+ * Definitions of General types.
+ */
\r
#ifndef _STD_TYPES_H\r
#define _STD_TYPES_H\r
uint16 vendorID;\r
uint16 moduleID;\r
uint8 instanceID;\r
- /* Vendor numbers */\r
- uint8 sw_major_version;\r
- uint8 sw_minor_version;\r
- uint8 sw_patch_version;\r
- /* Autosar spec. numbers */\r
- uint8 ar_major_version;\r
- uint8 ar_minor_version;\r
- uint8 ar_patch_version;\r
+
+ uint8 sw_major_version; /**< Vendor numbers */
+ uint8 sw_minor_version; /**< Vendor numbers */
+ uint8 sw_patch_version; /**< Vendor numbers */
+
+ uint8 ar_major_version; /**< Autosar spec. numbers */
+ uint8 ar_minor_version; /**< Autosar spec. numbers */
+ uint8 ar_patch_version; /**< Autosar spec. numbers */
} Std_VersionInfoType;\r
\r
-/* make compare number... #if blabla > 10203 ( 1.2.3 ) */\r
+/** make compare number... #if version > 10203 ( 1.2.3 ) */
#define STD_GET_VERSION (_major,_minor,_patch) (_major * 10000 + _minor * 100 + _patch)\r
\r
-/* Non-standard macro */\r
+/** Create Std_VersionInfoType */
#define STD_GET_VERSION_INFO(_vi,_module) \\r
((_vi)->vendorID = _module ## _VENDOR_ID);\\r
((_vi)->moduleID = _module ## _MODULE_ID);\\r
#define STATUSTYPEDEFINED\r
typedef enum {\r
E_OK = 0,\r
- /* STD OSEK */\r
- E_OS_ACCESS = 1,\r
- E_OS_CALLEVEL = 2,\r
- E_OS_ID = 3,\r
- E_OS_LIMIT = 4,\r
- E_OS_NOFUNC = 5,\r
- E_OS_RESOURCE = 6,\r
- E_OS_STATE = 7,\r
- E_OS_VALUE = 8,\r
-\r
- /* AUTOSAR, see 7.10 */\r
- E_OS_SERVICEID,\r
- E_OS_RATE ,\r
- E_OS_ILLEGAL_ADDRESS ,\r
- E_OS_MISSINGEND ,\r
- E_OS_DISABLEDINT ,\r
- E_OS_STACKFAULT ,\r
- E_OS_PROTECTION_MEMORY ,\r
- E_OS_PROTECTION_TIME ,\r
- E_OS_PROTECTION_LOCKED ,\r
- E_OS_PROTECTION_EXCEPTION ,\r
- E_OS_PROTECTION_RATE,\r
+ E_OS_ACCESS = 1, /**< STD OSEK */
+ E_OS_CALLEVEL = 2, /**< STD OSEK */
+ E_OS_ID = 3, /**< STD OSEK */
+ E_OS_LIMIT = 4, /**< STD OSEK */
+ E_OS_NOFUNC = 5, /**< STD OSEK */
+ E_OS_RESOURCE = 6, /**< STD OSEK */
+ E_OS_STATE = 7, /**< STD OSEK */
+ E_OS_VALUE = 8, /**< STD OSEK */
+\r
+ E_OS_SERVICEID, /**< AUTOSAR, see 7.10 */
+ E_OS_RATE , /**< AUTOSAR, see 7.10 */
+ E_OS_ILLEGAL_ADDRESS , /**< AUTOSAR, see 7.10 */
+ E_OS_MISSINGEND , /**< AUTOSAR, see 7.10 */
+ E_OS_DISABLEDINT , /**< AUTOSAR, see 7.10 */
+ E_OS_STACKFAULT , /**< AUTOSAR, see 7.10 */
+ E_OS_PROTECTION_MEMORY , /**< AUTOSAR, see 7.10 */
+ E_OS_PROTECTION_TIME , /**< AUTOSAR, see 7.10 */
+ E_OS_PROTECTION_LOCKED , /**< AUTOSAR, see 7.10 */
+ E_OS_PROTECTION_EXCEPTION , /**< AUTOSAR, see 7.10 */
+ E_OS_PROTECTION_RATE, /**< AUTOSAR, see 7.10 */
\r
/* COM.. TODO: move ?? */\r
E_COM_ID,\r
\r
\r
- /* Implementation specific */\r
+ /** Implementation specific */
E_OS_SYS_APA,\r
\r
E_NOT_OK,\r
\r
\r
#endif\r
+/** @} */