Boen_Shi 8be2866433 feat(base): 初始化 MSPM0 开发环境
- 添加头文件和配置文件支持
- 更新.gitignore忽略编译和IDE相关文件
- 添加基础的bsp代码
2026-07-16 14:45:26 +08:00

240 lines
10 KiB
C

/*
* Copyright (c) 2017-2020, Texas Instruments Incorporated
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of Texas Instruments Incorporated nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/** ============================================================================
* @file DeviceFamily.h
*
* @brief Infrastructure to select correct driverlib path and identify devices
*
* This module enables the selection of the correct driverlib path for the current
* device. It also facilitates the use of per-device conditional compilation
* to enable minor variations in drivers between devices.
*
* In order to use this functionality, DeviceFamily_XYZ must be defined as one of
* the supported values. The DeviceFamily_ID and DeviceFamily_DIRECTORY defines
* are set based on DeviceFamily_XYZ.
*/
#ifndef ti_devices_DeviceFamily__include
#define ti_devices_DeviceFamily__include
#ifdef __cplusplus
extern "C" {
#endif
/* clang-format off */
/*
* DeviceFamily_ID_XYZ values.
*
* DeviceFamily_ID may be used in the preprocessor for conditional compilation.
* DeviceFamily_ID is set to one of these values based on the top level
* DeviceFamily_XYZ define.
*/
#define DeviceFamily_ID_MSPM0L130X 1
#define DeviceFamily_ID_MSPM0L134X 2
#define DeviceFamily_ID_MSPM0L110X 3
#define DeviceFamily_ID_MSPM0G110X 4
#define DeviceFamily_ID_MSPM0G150X 5
#define DeviceFamily_ID_MSPM0G310X 6
#define DeviceFamily_ID_MSPM0G350X 7
#define DeviceFamily_ID_MSPM0C110X 8
#define DeviceFamily_ID_MSPS003FX 9
#define DeviceFamily_ID_MSPM0L122X 10
#define DeviceFamily_ID_MSPM0L222X 11
#define DeviceFamily_ID_MSPM0G151X 12
#define DeviceFamily_ID_MSPM0G351X 13
#define DeviceFamily_ID_MSPM0L111X 14
#define DeviceFamily_ID_MSPM0H321X 15
/*
* DeviceFamily_PARENT_XYZ values.
*
* DeviceFamily_PARENT may be used in the preprocessor for conditional
* compilation. DeviceFamily_PARENT is set to one of these values based
* on the top-level DeviceFamily_XYZ define.
*/
#define DeviceFamily_PARENT_MSPM0L11XX_L13XX 1
#define DeviceFamily_PARENT_MSPM0G1X0X_G3X0X 2
#define DeviceFamily_PARENT_MSPM0C110X 3
#define DeviceFamily_PARENT_MSPS003FX 4
#define DeviceFamily_PARENT_MSPM0L122X_L222X 5
#define DeviceFamily_PARENT_MSPM0GX51X 6
#define DeviceFamily_PARENT_MSPM0L111X 7
#define DeviceFamily_PARENT_MSPM0H321X 8
/*
* Lookup table that sets DeviceFamily_ID, DeviceFamily_DIRECTORY, and
* DeviceFamily_PARENT based on the DeviceFamily_XYZ define.
* If DeviceFamily_XYZ is undefined, a compiler error is thrown. If
* multiple DeviceFamily_XYZ are defined, the first one encountered is used.
*/
#if defined(DeviceFamily_MSPM0L130X) || defined(__MSPM0L1306__) \
|| defined(__MSPM0L1305__) || defined(__MSPM0L1304__) \
|| defined(__MSPM0L1303__)
#define DeviceFamily_ID DeviceFamily_ID_MSPM0L130X
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPM0L11XX_L13XX
#elif defined(DeviceFamily_MSPM0L134X) || defined(__MSPM0L1346__) \
|| defined(__MSPM0L1345__) || defined(__MSPM0L1344__) \
|| defined(__MSPM0L1343__)
#define DeviceFamily_ID DeviceFamily_ID_MSPM0L134X
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPM0L11XX_L13XX
#elif defined(DeviceFamily_MSPM0L110X) || defined(__MSPM0L1106__) \
|| defined(__MSPM0L1105__)
#define DeviceFamily_ID DeviceFamily_ID_MSPM0L110X
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPM0L11XX_L13XX
#elif defined(DeviceFamily_MSPM0G110X) || defined(__MSPM0G1107__) \
|| defined(__MSPM0G1106__) || defined(__MSPM0G1105__)
#define DeviceFamily_ID DeviceFamily_ID_MSPM0G110X
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPM0G1X0X_G3X0X
#elif defined(DeviceFamily_MSPM0G150X) || defined(__MSPM0G1507__) \
|| defined(__MSPM0G1506__) || defined(__MSPM0G1505__)
#define DeviceFamily_ID DeviceFamily_ID_MSPM0G150X
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPM0G1X0X_G3X0X
#elif defined(DeviceFamily_MSPM0G310X) || defined(__MSPM0G3107__) \
|| defined(__MSPM0G3106__) || defined(__MSPM0G3105__)
#define DeviceFamily_ID DeviceFamily_ID_MSPM0G310X
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPM0G1X0X_G3X0X
#elif defined(DeviceFamily_MSPM0G350X) || defined(__MSPM0G3507__) \
|| defined(__MSPM0G3506__) || defined(__MSPM0G3505__)
#define DeviceFamily_ID DeviceFamily_ID_MSPM0G350X
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPM0G1X0X_G3X0X
#elif defined(DeviceFamily_MSPM0C110X) || defined(__MSPM0C1104__) \
|| defined(__MSPM0C1103__)
#define DeviceFamily_ID DeviceFamily_ID_MSPM0C110X
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPM0C110X
#elif defined(DeviceFamily_MSPS003FX) || defined(__MSPS003F4__) \
|| defined(__MSPS003F3__)
#define DeviceFamily_ID DeviceFamily_ID_MSPS003FX
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPS003FX
#elif defined(DeviceFamily_MSPM0L122X) || defined(__MSPM0L1228__) \
|| defined(__MSPM0L1227__) || defined(__MSPM0L1226__)
#define DeviceFamily_ID DeviceFamily_ID_MSPM0L122X
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPM0L122X_L222X
#elif defined(DeviceFamily_MSPM0L222X) || defined(__MSPM0L2228__) \
|| defined(__MSPM0L2227__) || defined(__MSPM0L2226__)
#define DeviceFamily_ID DeviceFamily_ID_MSPM0L222X
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPM0L122X_L222X
#elif defined(DeviceFamily_MSPM0G151X) || defined(__MSPM0G1518__) \
|| defined(__MSPM0G1519__)
#define DeviceFamily_ID DeviceFamily_ID_MSPM0G151X
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPM0GX51X
#elif defined(DeviceFamily_MSPM0G351X) || defined(__MSPM0G3518__) \
|| defined(__MSPM0G3519__)
#define DeviceFamily_ID DeviceFamily_ID_MSPM0G351X
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPM0GX51X
#elif defined(DeviceFamily_MSPM0L111X) || defined(__MSPM0L1117__) \
|| defined(__MSPM0L1116__)
#define DeviceFamily_ID DeviceFamily_ID_MSPM0L111X
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPM0L111X
#elif defined(DeviceFamily_MSPM0H321X) || defined(__MSPM0H3216__) \
|| defined(__MSPM0H3215__)
#define DeviceFamily_ID DeviceFamily_ID_MSPM0H321X
#define DeviceFamily_DIRECTORY msp
#define DeviceFamily_PARENT DeviceFamily_PARENT_MSPM0H321X
#else
#error "DeviceFamily_XYZ undefined. You must define a DeviceFamily_XYZ!"
#endif
/* Ensure that only one DeviceFamily was specified */
#if (defined(DeviceFamily_MSPM0L130X) \
+ defined(DeviceFamily_MSPM0L134X) \
+ defined(DeviceFamily_MSPM0L110X) \
+ defined(DeviceFamily_MSPM0G110X) \
+ defined(DeviceFamily_MSPM0G150X) \
+ defined(DeviceFamily_MSPM0G310X) \
+ defined(DeviceFamily_MSPM0G350X) \
+ defined(DeviceFamily_MSPM0C110X) \
+ defined(DeviceFamily_MSPS003FX) \
+ defined(DeviceFamily_MSPM0L122X) \
+ defined(DeviceFamily_MSPM0L222X) \
+ defined(DeviceFamily_MSPM0G151X) \
+ defined(DeviceFamily_MSPM0G351X) \
+ defined(DeviceFamily_MSPM0L111X) \
+ defined(DeviceFamily_MSPM0H321X) \
) > 1
#error More then one DeviceFamily has been defined!
#endif
/*!
* @brief Macro to include correct driverlib path.
*
* @pre DeviceFamily_XYZ which sets DeviceFamily_DIRECTORY must be defined
* first.
*
* @param x A token containing the path of the file to include based on
* the root device folder. The preceding forward slash must be
* omitted. For example:
* - #include DeviceFamily_constructPath(inc/hw_memmap.h)
* - #include DeviceFamily_constructPath(driverlib/ssi.h)
*
* @return Returns an include path.
*
*/
#define DeviceFamily_constructPath(x) <ti/devices/DeviceFamily_DIRECTORY/x>
/* clang-format on */
#ifdef __cplusplus
}
#endif
#endif /* ti_devices_DeviceFamily__include */