📄 config.h
字号:
/*******************************************************************************
*
* Motorola Inc.
* (c) Copyright 2002 Motorola, Inc.
* ALL RIGHTS RESERVED.
*
* $Element: /project/dsp568_sdk/sdk/src/dsp56838evm/nos/config/config.h $
* $Author: saa $
* $Revision: /main/2 $
* $VOB: /project/dsp568_sdk $
* $OS: solaris $
*
* Description: parameters of configuration of SDK application
*
* Notes:
*
******************************************************************************/
#ifndef __CONFIG_H
#define __CONFIG_H
/****************************************************************************
*
* Include default and user selected SDK components
*
****************************************************************************/
#include "configdefines.h"
/****************************************************************************
*
* Board specific oscillator frequency
*
****************************************************************************/
/* DSP56838EVM oscillator frequency is 8.0MHz */
#ifndef BSP_OSCILLATOR_FREQ
#define BSP_OSCILLATOR_FREQ 8000000UL
#endif
#ifndef PLL_MUL
#define PLL_MUL 30
#endif
/****************************************************************************
*
* Default PLL Initialization
*
****************************************************************************/
#ifdef INCLUDE_PLL
/* Default PLL configuration */
#ifndef PLL_MUL
#define PLL_MUL 30
#endif
#ifndef PLL_CONTROL_REG
#define PLL_CONTROL_REG (PLL_LOCK_DETECTOR | PLL_ZCLOCK_POSTSCALER)
#endif
#ifndef PLL_DIVIDE_BY_REG
#define PLL_DIVIDE_BY_REG ( (PLL_MUL - 1) | PLL_CLOCK_IN_DIVIDE_BY_1 | PLL_CLOCK_OUT_DIVIDE_BY_1)
#endif
#endif
/****************************************************************************
*
* Default COP Initialization
*
****************************************************************************/
#ifdef INCLUDE_COP
/* cop_prescaler = 1024, 60MHz IPBus for Dakar */
#define COP_PRESCALER 1024UL
#endif
/****************************************************************************
*
* Default Timer Initialization
*
****************************************************************************/
#ifdef INCLUDE_TIMER
/* default REAL_TIME_TIMER_RESOLUTION is 0xFFFF ticks, max possible value is 0x7FFF80 ticks */
#ifndef REAL_TICK_TIMER_RESOLUTION
#define REAL_TICK_TIMER_RESOLUTION 0xFFFF
#endif
#if (REAL_TICK_TIMER_RESOLUTION > 0x7FFF80)
#error "REAL_TIME_TIMER_RESOLUTION cannot be more than 0x7FFF80"
#endif
#endif
/****************************************************************************
*
* Default MSCAN driver Initialization
*
****************************************************************************/
#ifdef INCLUDE_MSCAN
#ifndef CAN_CLOCK_SOURCE
#define CAN_CLOCK_SOURCE 1 /* IP Bus is default */
#endif /* ifndef CAN_CLOCK_SOURCE */
/*** CAN Predefined speed / bit timing section ***/
#if defined(CAN_SPEED)
#if !defined(CAN_PRESCALER)
#if( CAN_CLOCK_SOURCE == 0 )
#define CAN_OSCILLATOR_CLOCK ( BSP_OSCILLATOR_FREQ / 1000000 )
#else /*( CAN_CLOCK_SOURCE == 0) */
#define CAN_OSCILLATOR_CLOCK ( BSP_OSCILLATOR_FREQ * PLL_MUL / 2 / 2 / 1000000 )
#endif /*( CAN_CLOCK_SOURCE == 0) */
#endif /* !defined(CAN_PRESCALER) */
#if ( CAN_SPEED == 1000000 )
#define CAN_TIME_SEGMENT1 11
#define CAN_TIME_SEGMENT2 4
#define CAN_DIVIDER 1
#define CAN_MIN_FREQUENCY 16
#endif /* CAN_SPEED == 1000000 */
#if ( CAN_SPEED == 500000 )
#define CAN_TIME_SEGMENT1 4
#define CAN_TIME_SEGMENT2 3
#define CAN_DIVIDER 1
#define CAN_MIN_FREQUENCY 4
#endif /* CAN_SPEED == 500000 */
#if ( CAN_SPEED == 400000 )
#define CAN_TIME_SEGMENT1 6
#define CAN_TIME_SEGMENT2 3
#define CAN_DIVIDER 1
#define CAN_MIN_FREQUENCY 4
#endif /* CAN_SPEED == 400000 */
#if ( CAN_SPEED == 250000 )
#define CAN_TIME_SEGMENT1 11
#define CAN_TIME_SEGMENT2 4
#define CAN_DIVIDER 1
#define CAN_MIN_FREQUENCY 4
#endif /* CAN_SPEED == 250000 */
#if ( CAN_SPEED == 125000 )
#define CAN_TIME_SEGMENT1 11
#define CAN_TIME_SEGMENT2 4
#define CAN_DIVIDER 2
#define CAN_MIN_FREQUENCY 4
#endif /* CAN_SPEED == 125000 */
#if ( CAN_SPEED == 100000 )
#define CAN_TIME_SEGMENT1 13
#define CAN_TIME_SEGMENT2 6
#define CAN_DIVIDER 2
#define CAN_MIN_FREQUENCY 4
#endif /* CAN_SPEED == 100000 */
#if ( CAN_SPEED == 50000 )
#define CAN_TIME_SEGMENT1 13
#define CAN_TIME_SEGMENT2 6
#define CAN_DIVIDER 4
#define CAN_MIN_FREQUENCY 4
#endif /* CAN_SPEED == 50000 */
#if ( CAN_SPEED == 25000 )
#define CAN_SYNCH_JUMP_WIDTH 2
#define CAN_TIME_SEGMENT1 13
#define CAN_TIME_SEGMENT2 6
#define CAN_DIVIDER 8
#define CAN_MIN_FREQUENCY 4
#endif /* CAN_SPEED == 25000 */
#if ( CAN_SPEED == 10000 )
#define CAN_SYNCH_JUMP_WIDTH 2
#define CAN_TIME_SEGMENT1 13
#define CAN_TIME_SEGMENT2 6
#define CAN_DIVIDER 20
#define CAN_MIN_FREQUENCY 4
#endif /* CAN_SPEED == 10000 */
#if CAN_OSCILLATOR_CLOCK < CAN_MIN_FREQUENCY
#error "incorrect CAN oscillator frequency for this CAN Speed"
#endif /* PLL_MUL < 8 */
#define CAN_SAMPLING 0
#ifndef CAN_SYNCH_JUMP_WIDTH
#define CAN_SYNCH_JUMP_WIDTH 1
#endif /* CAN_SAMPLING */
#if !defined(CAN_PRESCALER)
#define CAN_PRESCALER ( CAN_DIVIDER * CAN_OSCILLATOR_CLOCK / CAN_MIN_FREQUENCY )
#endif /* !defined(CAN_PRESCALER) */
#endif /* ifndef CAN_SPEED */
#if !defined(CAN_TIME_SEGMENT1) || !defined(CAN_TIME_SEGMENT2) || !defined(CAN_PRESCALER)
#error "CAN speed parameters( time segments and prescaler) are not correct assigned"
#endif /* !defined(CAN_TIME_SEGMENT1) || !defined(CAN_TIME_SEGMENT2) || !defined(CAN_PRESCALER) */
#if CAN_TIME_SEGMENT1 < 4 || CAN_TIME_SEGMENT2 < 2
#error "time segments parameters are not supported by hardware implementation"
#endif /* CAN_TIME_SEGMENT1 < 4 || CAN_TIME_SEGMENT2 < 2 */
#if CAN_PRESCALER > 64
#error "invalid prescaler value or CAN oscillator frequency too high"
#endif /* CAN_PRESCALER > 64 */
#ifndef CAN_SAMPLING
#define CAN_SAMPLING 0
#endif /* CAN_SAMPLING */
#ifndef CAN_SYNCH_JUMP_WIDTH
#define CAN_SYNCH_JUMP_WIDTH 1
#endif /* CAN_SYNCH_JUMP_WIDTH */
/*** end of CAN Predefined speed / bit timing section ***/
#ifndef CAN_MAX_RECEIVE_ID
#define CAN_MAX_RECEIVE_ID 7
#endif /* ifdef CAN_MAX_RECEIVE_ID */
#ifndef CAN_MAX_TRANSMIT_ID
#define CAN_MAX_TRANSMIT_ID 7
#endif /* ifdef CAN_MAX_TRANSMIT_ID */
#ifndef CAN_STOP_IN_WAIT_MODE
#define CAN_STOP_IN_WAIT_MODE 0
#else /* ifndef CAN_STOP_IN_WAIT_MODE */
#undef CAN_STOP_IN_WAIT_MODE
#define CAN_STOP_IN_WAIT_MODE 1
#endif /* ifndef CAN_STOP_IN_WAIT_MODE */
#ifndef CAN_LOOP_BACK
#define CAN_LOOP_BACK 0
#else /* ifndef CAN_LOOP_BACK */
#undef CAN_LOOP_BACK
#define CAN_LOOP_BACK 1
#endif /* ifndef CAN_LOOP_BACK */
#ifndef CAN_WAKE_UP_MODE
#define CAN_WAKE_UP_MODE 0
#else /* ifndef CAN_WAKE_UP_MODE */
#undef CAN_WAKE_UP_MODE
#define CAN_WAKE_UP_MODE 1
#endif /* #ifndef CAN_WAKE_UP_MODE */
#ifndef CAN_CUSTOM_FILTER_CODE
#if defined (CAN_CUSTOM_FILTER_MASK)
#define CAN_CUSTOM_FILTER_CODE CANIDMASK
#else /* defined (CAN_CUSTOM_FILTER_MASK) */
#define CAN_CUSTOM_FILTER_CODE (CANIDMASK + 1)
#endif /* defined (CAN_CUSTOM_FILTER_MASK) */
#endif /* ifndef CAN_CUSTOM_FILTER_CODE */
#ifndef CAN_CUSTOM_FILTER_MASK
#if defined (CAN_CUSTOM_FILTER_CODE)
#define CAN_CUSTOM_FILTER_MASK 0
#else /* if defined (CAN_CUSTOM_FILTER_CODE) */
#define CAN_CUSTOM_FILTER_MASK (CANIDMASK + 1)
#endif /* if defined (CAN_CUSTOM_FILTER_CODE) */
#endif /* ifndef CAN_CUSTOM_FILTER_MASK */
#if !defined(CAN_RECEIVE_ID_QUEUE_SIZE) || !defined(CAN_QUEUED_TRANSMISSION)
#undef CAN_RECEIVE_ID_QUEUE_SIZE
#define CAN_RECEIVE_ID_QUEUE_SIZE 1
#endif /* CAN_RECEIVE_ID_QUEUE_SIZE */
#if CAN_RECEIVE_ID_QUEUE_SIZE > 1 && !defined(CAN_QUEUED_TRANSMISSION)
#error "Rx queue size can not be greater than 1, when CAN_QUEUED_TRANSMISSION undefined"
#endif /* CAN_RECEIVE_ID_QUEUE_SIZE > 1 && !defined(CAN_QUEUED_TRANSMISSION) */
#if CAN_RECEIVE_ID_QUEUE_SIZE == 0 && !defined(CAN_RAW_CALLBACK)
#error "Rx queue size can not be 0, when CAN_RAW_CALLBACK undefined"
#endif /*!defined(CAN_RAW_CALLBACK) && CAN_RECEIVE_ID_QUEUE_SIZE == 0 */
/*
#ifndef CAN_RAW_CALLBACK
#define CAN_RAW_CALLBACK NULL
#endif */ /* ifndef CAN_RAW_CALLBACK */
#if !defined( CAN_TX_ERROR_ASSERT )
#define CAN_TX_ERROR_ASSERT CAN_ASSERT_BUSOFF
#endif /* !defined( CAN_TX_ERROR_LIMIT ) */
//#if defined( CAN_NO_FAST_ISRs )
//#undef CAN_RECEIVE_HANDLER_USES_PRAGMA_INTERRUPT
//#else /* defined( CAN_NO_FAST_ISRs ) */
//#define CAN_RECEIVE_HANDLER_USES_PRAGMA_INTERRUPT
//#endif /* defined( CAN_NO_FAST_ISRs ) */
/*
x x 17 0x0022 MSCAN Wakeup
x x 16 0x0020 MSCAN Error
x x 15 0x001E MSCAN Receiver Full
x x 14 0x001C MSCAN Transmitter Ready
*/
#endif /* INCLUDE_MSCAN */
/****************************************************************************
*
* Default FLEXCAN driver Initialization
*
****************************************************************************/
#ifdef INCLUDE_FLEXCAN
/*** CAN Predefined speed / bit timing section ***/
#if defined(CAN_SPEED)
#if !defined(CAN_PRESCALER)
#define CAN_OSCILLATOR_CLOCK ( BSP_OSCILLATOR_FREQ * PLL_MUL / 2 / 2 / 1000000 )
#endif /* !defined(CAN_PRESCALER) */
#if ( CAN_SPEED == 1000000 )
#define CAN_PROP_SEGMENT 7
#define CAN_PHASE_SEGMENT1 4 /* = 11 */
#define CAN_PHASE_SEGMENT2 4
#define CAN_DIVIDER 1
#define CAN_MIN_FREQUENCY 16
#endif /* CAN_SPEED == 1000000 */
#if ( CAN_SPEED == 500000 )
#define CAN_PROP_SEGMENT 7
#define CAN_PHASE_SEGMENT1 4
#define CAN_PHASE_SEGMENT2 4
#define CAN_DIVIDER 1
#define CAN_MIN_FREQUENCY 8
#endif /* CAN_SPEED == 500000 */
#if ( CAN_SPEED == 400000 )
#define CAN_PROP_SEGMENT 7
#define CAN_PHASE_SEGMENT1 6 /* 13 */
#define CAN_PHASE_SEGMENT2 6
#define CAN_DIVIDER 1
#define CAN_MIN_FREQUENCY 8
#endif /* CAN_SPEED == 400000 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -