mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-02-07 01:44:41 +08:00
add bsp for MM32F3270 EVBoard
This commit is contained in:
@@ -10,4 +10,5 @@ dir_path:
|
||||
- components/net/lwip-1.4.1
|
||||
- components/net/lwip-2.0.2
|
||||
- components/net/lwip-2.0.3
|
||||
- components/net/lwip-2.1.2
|
||||
- components/net/lwip-2.1.2
|
||||
- bsp/mm32f327x/Libraries
|
||||
|
||||
573
bsp/mm32f327x/.config
Normal file
573
bsp/mm32f327x/.config
Normal file
File diff suppressed because it is too large
Load Diff
26
bsp/mm32f327x/Kconfig
Normal file
26
bsp/mm32f327x/Kconfig
Normal file
@@ -0,0 +1,26 @@
|
||||
mainmenu "RT-Thread Configuration"
|
||||
|
||||
config BSP_DIR
|
||||
string
|
||||
option env="BSP_ROOT"
|
||||
default "."
|
||||
|
||||
config RTT_DIR
|
||||
string
|
||||
option env="RTT_ROOT"
|
||||
default "../.."
|
||||
|
||||
config PKGS_DIR
|
||||
string
|
||||
option env="PKGS_ROOT"
|
||||
default "packages"
|
||||
|
||||
source "$RTT_DIR/Kconfig"
|
||||
source "$PKGS_DIR/Kconfig"
|
||||
source "drivers/Kconfig"
|
||||
|
||||
config SOC_MM32F373
|
||||
bool
|
||||
select RT_USING_COMPONENTS_INIT
|
||||
select RT_USING_USER_MAIN
|
||||
default y
|
||||
121
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/arm_common_tables.h
Normal file
121
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/arm_common_tables.h
Normal file
@@ -0,0 +1,121 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
* Project: CMSIS DSP Library
|
||||
* Title: arm_common_tables.h
|
||||
* Description: Extern declaration for common tables
|
||||
*
|
||||
* $Date: 27. January 2017
|
||||
* $Revision: V.1.5.1
|
||||
*
|
||||
* Target Processor: Cortex-M cores
|
||||
* -------------------------------------------------------------------- */
|
||||
/*
|
||||
* Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the License); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef _ARM_COMMON_TABLES_H
|
||||
#define _ARM_COMMON_TABLES_H
|
||||
|
||||
#include "arm_math.h"
|
||||
|
||||
extern const uint16_t armBitRevTable[1024];
|
||||
extern const q15_t armRecipTableQ15[64];
|
||||
extern const q31_t armRecipTableQ31[64];
|
||||
extern const float32_t twiddleCoef_16[32];
|
||||
extern const float32_t twiddleCoef_32[64];
|
||||
extern const float32_t twiddleCoef_64[128];
|
||||
extern const float32_t twiddleCoef_128[256];
|
||||
extern const float32_t twiddleCoef_256[512];
|
||||
extern const float32_t twiddleCoef_512[1024];
|
||||
extern const float32_t twiddleCoef_1024[2048];
|
||||
extern const float32_t twiddleCoef_2048[4096];
|
||||
extern const float32_t twiddleCoef_4096[8192];
|
||||
#define twiddleCoef twiddleCoef_4096
|
||||
extern const q31_t twiddleCoef_16_q31[24];
|
||||
extern const q31_t twiddleCoef_32_q31[48];
|
||||
extern const q31_t twiddleCoef_64_q31[96];
|
||||
extern const q31_t twiddleCoef_128_q31[192];
|
||||
extern const q31_t twiddleCoef_256_q31[384];
|
||||
extern const q31_t twiddleCoef_512_q31[768];
|
||||
extern const q31_t twiddleCoef_1024_q31[1536];
|
||||
extern const q31_t twiddleCoef_2048_q31[3072];
|
||||
extern const q31_t twiddleCoef_4096_q31[6144];
|
||||
extern const q15_t twiddleCoef_16_q15[24];
|
||||
extern const q15_t twiddleCoef_32_q15[48];
|
||||
extern const q15_t twiddleCoef_64_q15[96];
|
||||
extern const q15_t twiddleCoef_128_q15[192];
|
||||
extern const q15_t twiddleCoef_256_q15[384];
|
||||
extern const q15_t twiddleCoef_512_q15[768];
|
||||
extern const q15_t twiddleCoef_1024_q15[1536];
|
||||
extern const q15_t twiddleCoef_2048_q15[3072];
|
||||
extern const q15_t twiddleCoef_4096_q15[6144];
|
||||
extern const float32_t twiddleCoef_rfft_32[32];
|
||||
extern const float32_t twiddleCoef_rfft_64[64];
|
||||
extern const float32_t twiddleCoef_rfft_128[128];
|
||||
extern const float32_t twiddleCoef_rfft_256[256];
|
||||
extern const float32_t twiddleCoef_rfft_512[512];
|
||||
extern const float32_t twiddleCoef_rfft_1024[1024];
|
||||
extern const float32_t twiddleCoef_rfft_2048[2048];
|
||||
extern const float32_t twiddleCoef_rfft_4096[4096];
|
||||
|
||||
/* floating-point bit reversal tables */
|
||||
#define ARMBITREVINDEXTABLE_16_TABLE_LENGTH ((uint16_t)20)
|
||||
#define ARMBITREVINDEXTABLE_32_TABLE_LENGTH ((uint16_t)48)
|
||||
#define ARMBITREVINDEXTABLE_64_TABLE_LENGTH ((uint16_t)56)
|
||||
#define ARMBITREVINDEXTABLE_128_TABLE_LENGTH ((uint16_t)208)
|
||||
#define ARMBITREVINDEXTABLE_256_TABLE_LENGTH ((uint16_t)440)
|
||||
#define ARMBITREVINDEXTABLE_512_TABLE_LENGTH ((uint16_t)448)
|
||||
#define ARMBITREVINDEXTABLE_1024_TABLE_LENGTH ((uint16_t)1800)
|
||||
#define ARMBITREVINDEXTABLE_2048_TABLE_LENGTH ((uint16_t)3808)
|
||||
#define ARMBITREVINDEXTABLE_4096_TABLE_LENGTH ((uint16_t)4032)
|
||||
|
||||
extern const uint16_t armBitRevIndexTable16[ARMBITREVINDEXTABLE_16_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable32[ARMBITREVINDEXTABLE_32_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable64[ARMBITREVINDEXTABLE_64_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable128[ARMBITREVINDEXTABLE_128_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable256[ARMBITREVINDEXTABLE_256_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable512[ARMBITREVINDEXTABLE_512_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable1024[ARMBITREVINDEXTABLE_1024_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable2048[ARMBITREVINDEXTABLE_2048_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable4096[ARMBITREVINDEXTABLE_4096_TABLE_LENGTH];
|
||||
|
||||
/* fixed-point bit reversal tables */
|
||||
#define ARMBITREVINDEXTABLE_FIXED_16_TABLE_LENGTH ((uint16_t)12)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_32_TABLE_LENGTH ((uint16_t)24)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_64_TABLE_LENGTH ((uint16_t)56)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_128_TABLE_LENGTH ((uint16_t)112)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_256_TABLE_LENGTH ((uint16_t)240)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_512_TABLE_LENGTH ((uint16_t)480)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH ((uint16_t)992)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH ((uint16_t)1984)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH ((uint16_t)4032)
|
||||
|
||||
extern const uint16_t armBitRevIndexTable_fixed_16[ARMBITREVINDEXTABLE_FIXED_16_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_32[ARMBITREVINDEXTABLE_FIXED_32_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_64[ARMBITREVINDEXTABLE_FIXED_64_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_128[ARMBITREVINDEXTABLE_FIXED_128_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_256[ARMBITREVINDEXTABLE_FIXED_256_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_512[ARMBITREVINDEXTABLE_FIXED_512_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_1024[ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_2048[ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_4096[ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH];
|
||||
|
||||
/* Tables for Fast Math Sine and Cosine */
|
||||
extern const float32_t sinTable_f32[FAST_MATH_TABLE_SIZE + 1];
|
||||
extern const q31_t sinTable_q31[FAST_MATH_TABLE_SIZE + 1];
|
||||
extern const q15_t sinTable_q15[FAST_MATH_TABLE_SIZE + 1];
|
||||
|
||||
#endif /* ARM_COMMON_TABLES_H */
|
||||
66
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/arm_const_structs.h
Normal file
66
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/arm_const_structs.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
* Project: CMSIS DSP Library
|
||||
* Title: arm_const_structs.h
|
||||
* Description: Constant structs that are initialized for user convenience.
|
||||
* For example, some can be given as arguments to the arm_cfft_f32() function.
|
||||
*
|
||||
* $Date: 27. January 2017
|
||||
* $Revision: V.1.5.1
|
||||
*
|
||||
* Target Processor: Cortex-M cores
|
||||
* -------------------------------------------------------------------- */
|
||||
/*
|
||||
* Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the License); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef _ARM_CONST_STRUCTS_H
|
||||
#define _ARM_CONST_STRUCTS_H
|
||||
|
||||
#include "arm_math.h"
|
||||
#include "arm_common_tables.h"
|
||||
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len16;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len32;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len64;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len128;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len256;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len512;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len1024;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len2048;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len4096;
|
||||
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len16;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len32;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len64;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len128;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len256;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len512;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len1024;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len2048;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len4096;
|
||||
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len16;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len32;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len64;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len128;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len256;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len512;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len1024;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len2048;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len4096;
|
||||
|
||||
#endif
|
||||
7122
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/arm_math.h
Normal file
7122
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/arm_math.h
Normal file
File diff suppressed because it is too large
Load Diff
796
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/cmsis_armcc.h
Normal file
796
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/cmsis_armcc.h
Normal file
File diff suppressed because it is too large
Load Diff
1735
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/cmsis_armclang.h
Normal file
1735
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/cmsis_armclang.h
Normal file
File diff suppressed because it is too large
Load Diff
231
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/cmsis_compiler.h
Normal file
231
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/cmsis_compiler.h
Normal file
@@ -0,0 +1,231 @@
|
||||
/**************************************************************************//**
|
||||
* @file cmsis_compiler.h
|
||||
* @brief CMSIS compiler generic header file
|
||||
* @version V5.0.1
|
||||
* @date 30. January 2017
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (c) 2009-2017 ARM Limited. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the License); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef __CMSIS_COMPILER_H
|
||||
#define __CMSIS_COMPILER_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/*
|
||||
* ARM Compiler 4/5
|
||||
*/
|
||||
#if defined ( __CC_ARM )
|
||||
#include "cmsis_armcc.h"
|
||||
|
||||
|
||||
/*
|
||||
* ARM Compiler 6 (armclang)
|
||||
*/
|
||||
#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
||||
#include "cmsis_armclang.h"
|
||||
|
||||
|
||||
/*
|
||||
* GNU Compiler
|
||||
*/
|
||||
#elif defined ( __GNUC__ )
|
||||
#include "cmsis_gcc.h"
|
||||
|
||||
|
||||
/*
|
||||
* IAR Compiler
|
||||
*/
|
||||
#elif defined ( __ICCARM__ )
|
||||
|
||||
#ifndef __ASM
|
||||
#define __ASM __asm
|
||||
#endif
|
||||
#ifndef __INLINE
|
||||
#define __INLINE inline
|
||||
#endif
|
||||
#ifndef __STATIC_INLINE
|
||||
#define __STATIC_INLINE static inline
|
||||
#endif
|
||||
|
||||
#include <cmsis_iar.h>
|
||||
|
||||
#ifndef __NO_RETURN
|
||||
#define __NO_RETURN __noreturn
|
||||
#endif
|
||||
#ifndef __USED
|
||||
#define __USED __root
|
||||
#endif
|
||||
#ifndef __WEAK
|
||||
#define __WEAK __weak
|
||||
#endif
|
||||
#ifndef __UNALIGNED_UINT32
|
||||
__packed struct T_UINT32 {
|
||||
uint32_t v;
|
||||
};
|
||||
#define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
|
||||
#endif
|
||||
#ifndef __ALIGNED
|
||||
#warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored.
|
||||
#define __ALIGNED(x)
|
||||
#endif
|
||||
#ifndef __PACKED
|
||||
#define __PACKED __packed
|
||||
#endif
|
||||
#ifndef __PACKED_STRUCT
|
||||
#define __PACKED_STRUCT __packed struct
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* TI ARM Compiler
|
||||
*/
|
||||
#elif defined ( __TI_ARM__ )
|
||||
#include <cmsis_ccs.h>
|
||||
|
||||
#ifndef __ASM
|
||||
#define __ASM __asm
|
||||
#endif
|
||||
#ifndef __INLINE
|
||||
#define __INLINE inline
|
||||
#endif
|
||||
#ifndef __STATIC_INLINE
|
||||
#define __STATIC_INLINE static inline
|
||||
#endif
|
||||
#ifndef __NO_RETURN
|
||||
#define __NO_RETURN __attribute__((noreturn))
|
||||
#endif
|
||||
#ifndef __USED
|
||||
#define __USED __attribute__((used))
|
||||
#endif
|
||||
#ifndef __WEAK
|
||||
#define __WEAK __attribute__((weak))
|
||||
#endif
|
||||
#ifndef __UNALIGNED_UINT32
|
||||
struct __attribute__((packed)) T_UINT32 {
|
||||
uint32_t v;
|
||||
};
|
||||
#define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
|
||||
#endif
|
||||
#ifndef __ALIGNED
|
||||
#define __ALIGNED(x) __attribute__((aligned(x)))
|
||||
#endif
|
||||
#ifndef __PACKED
|
||||
#define __PACKED __attribute__((packed))
|
||||
#endif
|
||||
#ifndef __PACKED_STRUCT
|
||||
#define __PACKED_STRUCT struct __attribute__((packed))
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* TASKING Compiler
|
||||
*/
|
||||
#elif defined ( __TASKING__ )
|
||||
/*
|
||||
* The CMSIS functions have been implemented as intrinsics in the compiler.
|
||||
* Please use "carm -?i" to get an up to date list of all intrinsics,
|
||||
* Including the CMSIS ones.
|
||||
*/
|
||||
|
||||
#ifndef __ASM
|
||||
#define __ASM __asm
|
||||
#endif
|
||||
#ifndef __INLINE
|
||||
#define __INLINE inline
|
||||
#endif
|
||||
#ifndef __STATIC_INLINE
|
||||
#define __STATIC_INLINE static inline
|
||||
#endif
|
||||
#ifndef __NO_RETURN
|
||||
#define __NO_RETURN __attribute__((noreturn))
|
||||
#endif
|
||||
#ifndef __USED
|
||||
#define __USED __attribute__((used))
|
||||
#endif
|
||||
#ifndef __WEAK
|
||||
#define __WEAK __attribute__((weak))
|
||||
#endif
|
||||
#ifndef __UNALIGNED_UINT32
|
||||
struct __packed__ T_UINT32 {
|
||||
uint32_t v;
|
||||
};
|
||||
#define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
|
||||
#endif
|
||||
#ifndef __ALIGNED
|
||||
#define __ALIGNED(x) __align(x)
|
||||
#endif
|
||||
#ifndef __PACKED
|
||||
#define __PACKED __packed__
|
||||
#endif
|
||||
#ifndef __PACKED_STRUCT
|
||||
#define __PACKED_STRUCT struct __packed__
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* COSMIC Compiler
|
||||
*/
|
||||
#elif defined ( __CSMC__ )
|
||||
#include <cmsis_csm.h>
|
||||
|
||||
#ifndef __ASM
|
||||
#define __ASM _asm
|
||||
#endif
|
||||
#ifndef __INLINE
|
||||
#define __INLINE inline
|
||||
#endif
|
||||
#ifndef __STATIC_INLINE
|
||||
#define __STATIC_INLINE static inline
|
||||
#endif
|
||||
#ifndef __NO_RETURN
|
||||
// NO RETURN is automatically detected hence no warning here
|
||||
#define __NO_RETURN
|
||||
#endif
|
||||
#ifndef __USED
|
||||
#warning No compiler specific solution for __USED. __USED is ignored.
|
||||
#define __USED
|
||||
#endif
|
||||
#ifndef __WEAK
|
||||
#define __WEAK __weak
|
||||
#endif
|
||||
#ifndef __UNALIGNED_UINT32
|
||||
@packed struct T_UINT32 {
|
||||
uint32_t v;
|
||||
};
|
||||
#define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
|
||||
#endif
|
||||
#ifndef __ALIGNED
|
||||
#warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored.
|
||||
#define __ALIGNED(x)
|
||||
#endif
|
||||
#ifndef __PACKED
|
||||
#define __PACKED @packed
|
||||
#endif
|
||||
#ifndef __PACKED_STRUCT
|
||||
#define __PACKED_STRUCT @packed struct
|
||||
#endif
|
||||
|
||||
|
||||
#else
|
||||
#error Unknown compiler.
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __CMSIS_COMPILER_H */
|
||||
|
||||
1900
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/cmsis_gcc.h
Normal file
1900
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/cmsis_gcc.h
Normal file
File diff suppressed because it is too large
Load Diff
1813
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_armv8mbl.h
Normal file
1813
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_armv8mbl.h
Normal file
File diff suppressed because it is too large
Load Diff
2821
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_armv8mml.h
Normal file
2821
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_armv8mml.h
Normal file
File diff suppressed because it is too large
Load Diff
850
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_cm0.h
Normal file
850
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_cm0.h
Normal file
File diff suppressed because it is too large
Load Diff
975
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_cm0plus.h
Normal file
975
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_cm0plus.h
Normal file
File diff suppressed because it is too large
Load Diff
1813
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_cm23.h
Normal file
1813
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_cm23.h
Normal file
File diff suppressed because it is too large
Load Diff
1880
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_cm3.h
Normal file
1880
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_cm3.h
Normal file
File diff suppressed because it is too large
Load Diff
2821
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_cm33.h
Normal file
2821
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_cm33.h
Normal file
File diff suppressed because it is too large
Load Diff
2061
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_cm4.h
Normal file
2061
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_cm4.h
Normal file
File diff suppressed because it is too large
Load Diff
2592
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_cm7.h
Normal file
2592
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_cm7.h
Normal file
File diff suppressed because it is too large
Load Diff
976
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_sc000.h
Normal file
976
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_sc000.h
Normal file
File diff suppressed because it is too large
Load Diff
1851
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_sc300.h
Normal file
1851
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/core_sc300.h
Normal file
File diff suppressed because it is too large
Load Diff
69
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/tz_context.h
Normal file
69
bsp/mm32f327x/Libraries/CMSIS/IAR_Core/tz_context.h
Normal file
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright (c) 2015-2016 ARM Limited. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the License); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* ----------------------------------------------------------------------------
|
||||
*
|
||||
* $Date: 21. September 2016
|
||||
* $Revision: V1.0
|
||||
*
|
||||
* Project: TrustZone for ARMv8-M
|
||||
* Title: Context Management for ARMv8-M TrustZone
|
||||
*
|
||||
* Version 1.0
|
||||
* Initial Release
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef TZ_CONTEXT_H
|
||||
#define TZ_CONTEXT_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifndef TZ_MODULEID_T
|
||||
#define TZ_MODULEID_T
|
||||
/// \details Data type that identifies secure software modules called by a process.
|
||||
typedef uint32_t TZ_ModuleId_t;
|
||||
#endif
|
||||
|
||||
/// \details TZ Memory ID identifies an allocated memory slot.
|
||||
typedef uint32_t TZ_MemoryId_t;
|
||||
|
||||
/// Initialize secure context memory system
|
||||
/// \return execution status (1: success, 0: error)
|
||||
uint32_t TZ_InitContextSystem_S (void);
|
||||
|
||||
/// Allocate context memory for calling secure software modules in TrustZone
|
||||
/// \param[in] module identifies software modules called from non-secure mode
|
||||
/// \return value != 0 id TrustZone memory slot identifier
|
||||
/// \return value 0 no memory available or internal error
|
||||
TZ_MemoryId_t TZ_AllocModuleContext_S (TZ_ModuleId_t module);
|
||||
|
||||
/// Free context memory that was previously allocated with \ref TZ_AllocModuleContext_S
|
||||
/// \param[in] id TrustZone memory slot identifier
|
||||
/// \return execution status (1: success, 0: error)
|
||||
uint32_t TZ_FreeModuleContext_S (TZ_MemoryId_t id);
|
||||
|
||||
/// Load secure context (called on RTOS thread context switch)
|
||||
/// \param[in] id TrustZone memory slot identifier
|
||||
/// \return execution status (1: success, 0: error)
|
||||
uint32_t TZ_LoadContext_S (TZ_MemoryId_t id);
|
||||
|
||||
/// Store secure context (called on RTOS thread context switch)
|
||||
/// \param[in] id TrustZone memory slot identifier
|
||||
/// \return execution status (1: success, 0: error)
|
||||
uint32_t TZ_StoreContext_S (TZ_MemoryId_t id);
|
||||
|
||||
#endif // TZ_CONTEXT_H
|
||||
121
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/arm_common_tables.h
Normal file
121
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/arm_common_tables.h
Normal file
@@ -0,0 +1,121 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
* Project: CMSIS DSP Library
|
||||
* Title: arm_common_tables.h
|
||||
* Description: Extern declaration for common tables
|
||||
*
|
||||
* $Date: 27. January 2017
|
||||
* $Revision: V.1.5.1
|
||||
*
|
||||
* Target Processor: Cortex-M cores
|
||||
* -------------------------------------------------------------------- */
|
||||
/*
|
||||
* Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the License); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef _ARM_COMMON_TABLES_H
|
||||
#define _ARM_COMMON_TABLES_H
|
||||
|
||||
#include "arm_math.h"
|
||||
|
||||
extern const uint16_t armBitRevTable[1024];
|
||||
extern const q15_t armRecipTableQ15[64];
|
||||
extern const q31_t armRecipTableQ31[64];
|
||||
extern const float32_t twiddleCoef_16[32];
|
||||
extern const float32_t twiddleCoef_32[64];
|
||||
extern const float32_t twiddleCoef_64[128];
|
||||
extern const float32_t twiddleCoef_128[256];
|
||||
extern const float32_t twiddleCoef_256[512];
|
||||
extern const float32_t twiddleCoef_512[1024];
|
||||
extern const float32_t twiddleCoef_1024[2048];
|
||||
extern const float32_t twiddleCoef_2048[4096];
|
||||
extern const float32_t twiddleCoef_4096[8192];
|
||||
#define twiddleCoef twiddleCoef_4096
|
||||
extern const q31_t twiddleCoef_16_q31[24];
|
||||
extern const q31_t twiddleCoef_32_q31[48];
|
||||
extern const q31_t twiddleCoef_64_q31[96];
|
||||
extern const q31_t twiddleCoef_128_q31[192];
|
||||
extern const q31_t twiddleCoef_256_q31[384];
|
||||
extern const q31_t twiddleCoef_512_q31[768];
|
||||
extern const q31_t twiddleCoef_1024_q31[1536];
|
||||
extern const q31_t twiddleCoef_2048_q31[3072];
|
||||
extern const q31_t twiddleCoef_4096_q31[6144];
|
||||
extern const q15_t twiddleCoef_16_q15[24];
|
||||
extern const q15_t twiddleCoef_32_q15[48];
|
||||
extern const q15_t twiddleCoef_64_q15[96];
|
||||
extern const q15_t twiddleCoef_128_q15[192];
|
||||
extern const q15_t twiddleCoef_256_q15[384];
|
||||
extern const q15_t twiddleCoef_512_q15[768];
|
||||
extern const q15_t twiddleCoef_1024_q15[1536];
|
||||
extern const q15_t twiddleCoef_2048_q15[3072];
|
||||
extern const q15_t twiddleCoef_4096_q15[6144];
|
||||
extern const float32_t twiddleCoef_rfft_32[32];
|
||||
extern const float32_t twiddleCoef_rfft_64[64];
|
||||
extern const float32_t twiddleCoef_rfft_128[128];
|
||||
extern const float32_t twiddleCoef_rfft_256[256];
|
||||
extern const float32_t twiddleCoef_rfft_512[512];
|
||||
extern const float32_t twiddleCoef_rfft_1024[1024];
|
||||
extern const float32_t twiddleCoef_rfft_2048[2048];
|
||||
extern const float32_t twiddleCoef_rfft_4096[4096];
|
||||
|
||||
/* floating-point bit reversal tables */
|
||||
#define ARMBITREVINDEXTABLE_16_TABLE_LENGTH ((uint16_t)20)
|
||||
#define ARMBITREVINDEXTABLE_32_TABLE_LENGTH ((uint16_t)48)
|
||||
#define ARMBITREVINDEXTABLE_64_TABLE_LENGTH ((uint16_t)56)
|
||||
#define ARMBITREVINDEXTABLE_128_TABLE_LENGTH ((uint16_t)208)
|
||||
#define ARMBITREVINDEXTABLE_256_TABLE_LENGTH ((uint16_t)440)
|
||||
#define ARMBITREVINDEXTABLE_512_TABLE_LENGTH ((uint16_t)448)
|
||||
#define ARMBITREVINDEXTABLE_1024_TABLE_LENGTH ((uint16_t)1800)
|
||||
#define ARMBITREVINDEXTABLE_2048_TABLE_LENGTH ((uint16_t)3808)
|
||||
#define ARMBITREVINDEXTABLE_4096_TABLE_LENGTH ((uint16_t)4032)
|
||||
|
||||
extern const uint16_t armBitRevIndexTable16[ARMBITREVINDEXTABLE_16_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable32[ARMBITREVINDEXTABLE_32_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable64[ARMBITREVINDEXTABLE_64_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable128[ARMBITREVINDEXTABLE_128_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable256[ARMBITREVINDEXTABLE_256_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable512[ARMBITREVINDEXTABLE_512_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable1024[ARMBITREVINDEXTABLE_1024_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable2048[ARMBITREVINDEXTABLE_2048_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable4096[ARMBITREVINDEXTABLE_4096_TABLE_LENGTH];
|
||||
|
||||
/* fixed-point bit reversal tables */
|
||||
#define ARMBITREVINDEXTABLE_FIXED_16_TABLE_LENGTH ((uint16_t)12)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_32_TABLE_LENGTH ((uint16_t)24)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_64_TABLE_LENGTH ((uint16_t)56)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_128_TABLE_LENGTH ((uint16_t)112)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_256_TABLE_LENGTH ((uint16_t)240)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_512_TABLE_LENGTH ((uint16_t)480)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH ((uint16_t)992)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH ((uint16_t)1984)
|
||||
#define ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH ((uint16_t)4032)
|
||||
|
||||
extern const uint16_t armBitRevIndexTable_fixed_16[ARMBITREVINDEXTABLE_FIXED_16_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_32[ARMBITREVINDEXTABLE_FIXED_32_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_64[ARMBITREVINDEXTABLE_FIXED_64_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_128[ARMBITREVINDEXTABLE_FIXED_128_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_256[ARMBITREVINDEXTABLE_FIXED_256_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_512[ARMBITREVINDEXTABLE_FIXED_512_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_1024[ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_2048[ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH];
|
||||
extern const uint16_t armBitRevIndexTable_fixed_4096[ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH];
|
||||
|
||||
/* Tables for Fast Math Sine and Cosine */
|
||||
extern const float32_t sinTable_f32[FAST_MATH_TABLE_SIZE + 1];
|
||||
extern const q31_t sinTable_q31[FAST_MATH_TABLE_SIZE + 1];
|
||||
extern const q15_t sinTable_q15[FAST_MATH_TABLE_SIZE + 1];
|
||||
|
||||
#endif /* ARM_COMMON_TABLES_H */
|
||||
66
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/arm_const_structs.h
Normal file
66
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/arm_const_structs.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
* Project: CMSIS DSP Library
|
||||
* Title: arm_const_structs.h
|
||||
* Description: Constant structs that are initialized for user convenience.
|
||||
* For example, some can be given as arguments to the arm_cfft_f32() function.
|
||||
*
|
||||
* $Date: 27. January 2017
|
||||
* $Revision: V.1.5.1
|
||||
*
|
||||
* Target Processor: Cortex-M cores
|
||||
* -------------------------------------------------------------------- */
|
||||
/*
|
||||
* Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the License); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef _ARM_CONST_STRUCTS_H
|
||||
#define _ARM_CONST_STRUCTS_H
|
||||
|
||||
#include "arm_math.h"
|
||||
#include "arm_common_tables.h"
|
||||
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len16;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len32;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len64;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len128;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len256;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len512;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len1024;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len2048;
|
||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len4096;
|
||||
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len16;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len32;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len64;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len128;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len256;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len512;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len1024;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len2048;
|
||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len4096;
|
||||
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len16;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len32;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len64;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len128;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len256;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len512;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len1024;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len2048;
|
||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len4096;
|
||||
|
||||
#endif
|
||||
7122
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/arm_math.h
Normal file
7122
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/arm_math.h
Normal file
File diff suppressed because it is too large
Load Diff
796
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/cmsis_armcc.h
Normal file
796
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/cmsis_armcc.h
Normal file
File diff suppressed because it is too large
Load Diff
1735
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/cmsis_armclang.h
Normal file
1735
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/cmsis_armclang.h
Normal file
File diff suppressed because it is too large
Load Diff
231
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/cmsis_compiler.h
Normal file
231
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/cmsis_compiler.h
Normal file
@@ -0,0 +1,231 @@
|
||||
/**************************************************************************//**
|
||||
* @file cmsis_compiler.h
|
||||
* @brief CMSIS compiler generic header file
|
||||
* @version V5.0.1
|
||||
* @date 30. January 2017
|
||||
******************************************************************************/
|
||||
/*
|
||||
* Copyright (c) 2009-2017 ARM Limited. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the License); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef __CMSIS_COMPILER_H
|
||||
#define __CMSIS_COMPILER_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/*
|
||||
* ARM Compiler 4/5
|
||||
*/
|
||||
#if defined ( __CC_ARM )
|
||||
#include "cmsis_armcc.h"
|
||||
|
||||
|
||||
/*
|
||||
* ARM Compiler 6 (armclang)
|
||||
*/
|
||||
#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
||||
#include "cmsis_armclang.h"
|
||||
|
||||
|
||||
/*
|
||||
* GNU Compiler
|
||||
*/
|
||||
#elif defined ( __GNUC__ )
|
||||
#include "cmsis_gcc.h"
|
||||
|
||||
|
||||
/*
|
||||
* IAR Compiler
|
||||
*/
|
||||
#elif defined ( __ICCARM__ )
|
||||
|
||||
#ifndef __ASM
|
||||
#define __ASM __asm
|
||||
#endif
|
||||
#ifndef __INLINE
|
||||
#define __INLINE inline
|
||||
#endif
|
||||
#ifndef __STATIC_INLINE
|
||||
#define __STATIC_INLINE static inline
|
||||
#endif
|
||||
|
||||
#include <cmsis_iar.h>
|
||||
|
||||
#ifndef __NO_RETURN
|
||||
#define __NO_RETURN __noreturn
|
||||
#endif
|
||||
#ifndef __USED
|
||||
#define __USED __root
|
||||
#endif
|
||||
#ifndef __WEAK
|
||||
#define __WEAK __weak
|
||||
#endif
|
||||
#ifndef __UNALIGNED_UINT32
|
||||
__packed struct T_UINT32 {
|
||||
uint32_t v;
|
||||
};
|
||||
#define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
|
||||
#endif
|
||||
#ifndef __ALIGNED
|
||||
#warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored.
|
||||
#define __ALIGNED(x)
|
||||
#endif
|
||||
#ifndef __PACKED
|
||||
#define __PACKED __packed
|
||||
#endif
|
||||
#ifndef __PACKED_STRUCT
|
||||
#define __PACKED_STRUCT __packed struct
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* TI ARM Compiler
|
||||
*/
|
||||
#elif defined ( __TI_ARM__ )
|
||||
#include <cmsis_ccs.h>
|
||||
|
||||
#ifndef __ASM
|
||||
#define __ASM __asm
|
||||
#endif
|
||||
#ifndef __INLINE
|
||||
#define __INLINE inline
|
||||
#endif
|
||||
#ifndef __STATIC_INLINE
|
||||
#define __STATIC_INLINE static inline
|
||||
#endif
|
||||
#ifndef __NO_RETURN
|
||||
#define __NO_RETURN __attribute__((noreturn))
|
||||
#endif
|
||||
#ifndef __USED
|
||||
#define __USED __attribute__((used))
|
||||
#endif
|
||||
#ifndef __WEAK
|
||||
#define __WEAK __attribute__((weak))
|
||||
#endif
|
||||
#ifndef __UNALIGNED_UINT32
|
||||
struct __attribute__((packed)) T_UINT32 {
|
||||
uint32_t v;
|
||||
};
|
||||
#define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
|
||||
#endif
|
||||
#ifndef __ALIGNED
|
||||
#define __ALIGNED(x) __attribute__((aligned(x)))
|
||||
#endif
|
||||
#ifndef __PACKED
|
||||
#define __PACKED __attribute__((packed))
|
||||
#endif
|
||||
#ifndef __PACKED_STRUCT
|
||||
#define __PACKED_STRUCT struct __attribute__((packed))
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* TASKING Compiler
|
||||
*/
|
||||
#elif defined ( __TASKING__ )
|
||||
/*
|
||||
* The CMSIS functions have been implemented as intrinsics in the compiler.
|
||||
* Please use "carm -?i" to get an up to date list of all intrinsics,
|
||||
* Including the CMSIS ones.
|
||||
*/
|
||||
|
||||
#ifndef __ASM
|
||||
#define __ASM __asm
|
||||
#endif
|
||||
#ifndef __INLINE
|
||||
#define __INLINE inline
|
||||
#endif
|
||||
#ifndef __STATIC_INLINE
|
||||
#define __STATIC_INLINE static inline
|
||||
#endif
|
||||
#ifndef __NO_RETURN
|
||||
#define __NO_RETURN __attribute__((noreturn))
|
||||
#endif
|
||||
#ifndef __USED
|
||||
#define __USED __attribute__((used))
|
||||
#endif
|
||||
#ifndef __WEAK
|
||||
#define __WEAK __attribute__((weak))
|
||||
#endif
|
||||
#ifndef __UNALIGNED_UINT32
|
||||
struct __packed__ T_UINT32 {
|
||||
uint32_t v;
|
||||
};
|
||||
#define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
|
||||
#endif
|
||||
#ifndef __ALIGNED
|
||||
#define __ALIGNED(x) __align(x)
|
||||
#endif
|
||||
#ifndef __PACKED
|
||||
#define __PACKED __packed__
|
||||
#endif
|
||||
#ifndef __PACKED_STRUCT
|
||||
#define __PACKED_STRUCT struct __packed__
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* COSMIC Compiler
|
||||
*/
|
||||
#elif defined ( __CSMC__ )
|
||||
#include <cmsis_csm.h>
|
||||
|
||||
#ifndef __ASM
|
||||
#define __ASM _asm
|
||||
#endif
|
||||
#ifndef __INLINE
|
||||
#define __INLINE inline
|
||||
#endif
|
||||
#ifndef __STATIC_INLINE
|
||||
#define __STATIC_INLINE static inline
|
||||
#endif
|
||||
#ifndef __NO_RETURN
|
||||
// NO RETURN is automatically detected hence no warning here
|
||||
#define __NO_RETURN
|
||||
#endif
|
||||
#ifndef __USED
|
||||
#warning No compiler specific solution for __USED. __USED is ignored.
|
||||
#define __USED
|
||||
#endif
|
||||
#ifndef __WEAK
|
||||
#define __WEAK __weak
|
||||
#endif
|
||||
#ifndef __UNALIGNED_UINT32
|
||||
@packed struct T_UINT32 {
|
||||
uint32_t v;
|
||||
};
|
||||
#define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
|
||||
#endif
|
||||
#ifndef __ALIGNED
|
||||
#warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored.
|
||||
#define __ALIGNED(x)
|
||||
#endif
|
||||
#ifndef __PACKED
|
||||
#define __PACKED @packed
|
||||
#endif
|
||||
#ifndef __PACKED_STRUCT
|
||||
#define __PACKED_STRUCT @packed struct
|
||||
#endif
|
||||
|
||||
|
||||
#else
|
||||
#error Unknown compiler.
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __CMSIS_COMPILER_H */
|
||||
|
||||
1900
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/cmsis_gcc.h
Normal file
1900
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/cmsis_gcc.h
Normal file
File diff suppressed because it is too large
Load Diff
1813
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_armv8mbl.h
Normal file
1813
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_armv8mbl.h
Normal file
File diff suppressed because it is too large
Load Diff
2821
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_armv8mml.h
Normal file
2821
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_armv8mml.h
Normal file
File diff suppressed because it is too large
Load Diff
850
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_cm0.h
Normal file
850
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_cm0.h
Normal file
File diff suppressed because it is too large
Load Diff
975
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_cm0plus.h
Normal file
975
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_cm0plus.h
Normal file
File diff suppressed because it is too large
Load Diff
1813
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_cm23.h
Normal file
1813
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_cm23.h
Normal file
File diff suppressed because it is too large
Load Diff
1880
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_cm3.h
Normal file
1880
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_cm3.h
Normal file
File diff suppressed because it is too large
Load Diff
2821
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_cm33.h
Normal file
2821
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_cm33.h
Normal file
File diff suppressed because it is too large
Load Diff
2061
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_cm4.h
Normal file
2061
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_cm4.h
Normal file
File diff suppressed because it is too large
Load Diff
2592
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_cm7.h
Normal file
2592
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_cm7.h
Normal file
File diff suppressed because it is too large
Load Diff
976
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_sc000.h
Normal file
976
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_sc000.h
Normal file
File diff suppressed because it is too large
Load Diff
1851
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_sc300.h
Normal file
1851
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/core_sc300.h
Normal file
File diff suppressed because it is too large
Load Diff
69
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/tz_context.h
Normal file
69
bsp/mm32f327x/Libraries/CMSIS/KEIL_Core/tz_context.h
Normal file
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright (c) 2015-2016 ARM Limited. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the License); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* ----------------------------------------------------------------------------
|
||||
*
|
||||
* $Date: 21. September 2016
|
||||
* $Revision: V1.0
|
||||
*
|
||||
* Project: TrustZone for ARMv8-M
|
||||
* Title: Context Management for ARMv8-M TrustZone
|
||||
*
|
||||
* Version 1.0
|
||||
* Initial Release
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef TZ_CONTEXT_H
|
||||
#define TZ_CONTEXT_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifndef TZ_MODULEID_T
|
||||
#define TZ_MODULEID_T
|
||||
/// \details Data type that identifies secure software modules called by a process.
|
||||
typedef uint32_t TZ_ModuleId_t;
|
||||
#endif
|
||||
|
||||
/// \details TZ Memory ID identifies an allocated memory slot.
|
||||
typedef uint32_t TZ_MemoryId_t;
|
||||
|
||||
/// Initialize secure context memory system
|
||||
/// \return execution status (1: success, 0: error)
|
||||
uint32_t TZ_InitContextSystem_S (void);
|
||||
|
||||
/// Allocate context memory for calling secure software modules in TrustZone
|
||||
/// \param[in] module identifies software modules called from non-secure mode
|
||||
/// \return value != 0 id TrustZone memory slot identifier
|
||||
/// \return value 0 no memory available or internal error
|
||||
TZ_MemoryId_t TZ_AllocModuleContext_S (TZ_ModuleId_t module);
|
||||
|
||||
/// Free context memory that was previously allocated with \ref TZ_AllocModuleContext_S
|
||||
/// \param[in] id TrustZone memory slot identifier
|
||||
/// \return execution status (1: success, 0: error)
|
||||
uint32_t TZ_FreeModuleContext_S (TZ_MemoryId_t id);
|
||||
|
||||
/// Load secure context (called on RTOS thread context switch)
|
||||
/// \param[in] id TrustZone memory slot identifier
|
||||
/// \return execution status (1: success, 0: error)
|
||||
uint32_t TZ_LoadContext_S (TZ_MemoryId_t id);
|
||||
|
||||
/// Store secure context (called on RTOS thread context switch)
|
||||
/// \param[in] id TrustZone memory slot identifier
|
||||
/// \return execution status (1: success, 0: error)
|
||||
uint32_t TZ_StoreContext_S (TZ_MemoryId_t id);
|
||||
|
||||
#endif // TZ_CONTEXT_H
|
||||
33
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/dtype.h
Normal file
33
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/dtype.h
Normal file
@@ -0,0 +1,33 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @file: dtype.h
|
||||
/// @author AE TEAM
|
||||
/// @brief Define the data types to be used in the project, including the function
|
||||
/// library and application code. Use the data types defined in this file.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#ifndef __DTYPE_H
|
||||
#define __DTYPE_H //This is done to avoid including the header file repeatedly in the same file
|
||||
|
||||
|
||||
//Defines the read and write characteristics of data, which is often used for storage limits of peripheral registers
|
||||
#ifndef __I
|
||||
#define __I volatile const //only read
|
||||
#endif
|
||||
#ifndef __O
|
||||
#define __O volatile //only write
|
||||
#endif
|
||||
#ifndef __IO
|
||||
#define __IO volatile //read write
|
||||
#endif
|
||||
|
||||
//Common data type definitions
|
||||
|
||||
typedef unsigned char int8u; //haven't symbol8 bit integer variable
|
||||
typedef signed char int8s; //have symbol8 bit integer variable
|
||||
typedef unsigned short int16u; //haven't symbol16 bit integer variable
|
||||
typedef signed short int16s; //have symbol16 bit integer variable
|
||||
typedef unsigned int int32u; //haven't symbol32 bit integer variable
|
||||
typedef signed int int32s; //have symbol32 bit integer variable
|
||||
typedef float fp32; //Single-precision floating-point number (32-bit length)
|
||||
typedef double fp64; //Double-precision floating-point number (64-bit length)
|
||||
|
||||
#endif //__DTYPE_H
|
||||
341
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_adc.h
Normal file
341
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_adc.h
Normal file
@@ -0,0 +1,341 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @file hal_adc.h
|
||||
/// @author AE TEAM
|
||||
/// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE ADC
|
||||
/// FIRMWARE LIBRARY.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @attention
|
||||
///
|
||||
/// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
|
||||
/// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
|
||||
/// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
|
||||
/// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
|
||||
/// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
|
||||
/// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
|
||||
///
|
||||
/// <H2><CENTER>© COPYRIGHT MINDMOTION </CENTER></H2>
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Define to prevent recursive inclusion
|
||||
#ifndef __HAL_ADC_H
|
||||
#define __HAL_ADC_H
|
||||
|
||||
// Files includes
|
||||
#include "types.h"
|
||||
#include "reg_adc.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup MM32_Hardware_Abstract_Layer
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup ADC_HAL
|
||||
/// @brief ADC HAL modules
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup ADC_Exported_Types
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief ADC_Channels
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
ADC_Channel_0 = 0x00, ///< ADC Channel 0
|
||||
ADC_Channel_1 = 0x01, ///< ADC Channel 1
|
||||
ADC_Channel_2 = 0x02, ///< ADC Channel 2
|
||||
ADC_Channel_3 = 0x03, ///< ADC Channel 3
|
||||
ADC_Channel_4 = 0x04, ///< ADC Channel 4
|
||||
ADC_Channel_5 = 0x05, ///< ADC Channel 5
|
||||
ADC_Channel_6 = 0x06, ///< ADC Channel 6
|
||||
ADC_Channel_7 = 0x07, ///< ADC Channel 7
|
||||
|
||||
ADC_Channel_8 = 0x08, ///< ADC Channel 8
|
||||
ADC_Channel_9 = 0x09, ///< ADC Channel 9
|
||||
ADC_Channel_10 = 0x0A, ///< ADC Channel 10
|
||||
ADC_Channel_11 = 0x0B, ///< ADC Channel 11
|
||||
ADC_Channel_12 = 0x0C, ///< ADC Channel 12
|
||||
ADC_Channel_13 = 0x0D, ///< ADC Channel 13
|
||||
ADC_Channel_14 = 0x0E, ///< ADC Channel 14
|
||||
ADC_Channel_15 = 0x0F, ///< ADC Channel 15
|
||||
ADC_Channel_TempSensor = 0x0E, ///< Temperature sensor channel(ADC1)
|
||||
ADC_Channel_VoltReference = 0x0F, ///< Internal reference voltage channel(ADC1)
|
||||
ADC_Channel_Vrefint = 0x0F, ///< Internal reference voltage channel(ADC1)
|
||||
|
||||
} ADCCHANNEL_TypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief ADC_Sampling_Times
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
ADC_Samctl_1_5 = ADC_SMPR1_SAMCTL0_2_5, ///< ADC sample time select 1.5t
|
||||
ADC_Samctl_2_5 = ADC_SMPR1_SAMCTL0_2_5, ///< ADC sample time select 2.5t
|
||||
ADC_Samctl_3_5 = ADC_SMPR1_SAMCTL0_3_5, ///< ADC sample time select 3.5t
|
||||
ADC_Samctl_4_5 = ADC_SMPR1_SAMCTL0_4_5, ///< ADC sample time select 4.5t
|
||||
ADC_Samctl_5_5 = ADC_SMPR1_SAMCTL0_5_5, ///< ADC sample time select 5.5t
|
||||
ADC_Samctl_6_5 = ADC_SMPR1_SAMCTL0_6_5, ///< ADC sample time select 6.5t
|
||||
ADC_Samctl_7_5 = ADC_SMPR1_SAMCTL0_7_5, ///< ADC sample time select 7.5t
|
||||
ADC_Samctl_8_5 = ADC_SMPR1_SAMCTL0_8_5, ///< ADC sample time select 7.5t
|
||||
ADC_Samctl_13_5 = ADC_SMPR1_SAMCTL0_14_5, ///< ADC sample time select 13.5t
|
||||
ADC_Samctl_14_5 = ADC_SMPR1_SAMCTL0_14_5, ///< ADC sample time select 14.5t
|
||||
ADC_Samctl_28_5 = ADC_SMPR1_SAMCTL0_29_5, ///< ADC sample time select 28.5t
|
||||
ADC_Samctl_29_5 = ADC_SMPR1_SAMCTL0_29_5, ///< ADC sample time select 29.5t
|
||||
ADC_Samctl_41_5 = ADC_SMPR1_SAMCTL0_42_5, ///< ADC sample time select 41.5t
|
||||
ADC_Samctl_42_5 = ADC_SMPR1_SAMCTL0_42_5, ///< ADC sample time select 42.5t
|
||||
ADC_Samctl_55_5 = ADC_SMPR1_SAMCTL0_56_5, ///< ADC sample time select 55.5t
|
||||
ADC_Samctl_56_5 = ADC_SMPR1_SAMCTL0_56_5, ///< ADC sample time select 56.5t
|
||||
ADC_Samctl_71_5 = ADC_SMPR1_SAMCTL0_72_5, ///< ADC sample time select 71.5t
|
||||
ADC_Samctl_72_5 = ADC_SMPR1_SAMCTL0_72_5, ///< ADC sample time select 72.5t
|
||||
ADC_Samctl_239_5 = ADC_SMPR1_SAMCTL0_240_5, ///< ADC sample time select 239.5t
|
||||
ADC_Samctl_240_5 = ADC_SMPR1_SAMCTL0_240_5 ///< ADC sample time select 240.5t
|
||||
} ADCSAM_TypeDef;
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief ADC_Resolution
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
ADC_Resolution_12b = ADC_CFGR_RSLTCTL_12, ///< ADC resolution select 12bit
|
||||
ADC_Resolution_11b = ADC_CFGR_RSLTCTL_11, ///< ADC resolution select 11bit
|
||||
ADC_Resolution_10b = ADC_CFGR_RSLTCTL_10, ///< ADC resolution select 10bit
|
||||
ADC_Resolution_9b = ADC_CFGR_RSLTCTL_9, ///< ADC resolution select 9bit
|
||||
ADC_Resolution_8b = ADC_CFGR_RSLTCTL_8 ///< ADC resolution select 8bit
|
||||
} ADCRSL_TypeDef;
|
||||
/// @brief ADC_Prescare
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
ADC_PCLK2_PRESCARE_3 = ADC_CFGR_PRE_3, ///< ADC preclk 3
|
||||
ADC_PCLK2_PRESCARE_5 = ADC_CFGR_PRE_5, ///< ADC preclk 5
|
||||
ADC_PCLK2_PRESCARE_7 = ADC_CFGR_PRE_7, ///< ADC preclk 7
|
||||
ADC_PCLK2_PRESCARE_9 = ADC_CFGR_PRE_9, ///< ADC preclk 9
|
||||
ADC_PCLK2_PRESCARE_11 = ADC_CFGR_PRE_11, ///< ADC preclk 11
|
||||
ADC_PCLK2_PRESCARE_13 = ADC_CFGR_PRE_13, ///< ADC preclk 13
|
||||
ADC_PCLK2_PRESCARE_15 = ADC_CFGR_PRE_15, ///< ADC preclk 15
|
||||
ADC_PCLK2_PRESCARE_17 = ADC_CFGR_PRE_17, ///< ADC preclk 17
|
||||
|
||||
ADC_PCLK2_PRESCARE_2 = ADC_CFGR_PRE_2, ///< ADC preclk 2
|
||||
ADC_PCLK2_PRESCARE_4 = ADC_CFGR_PRE_4, ///< ADC preclk 4
|
||||
ADC_PCLK2_PRESCARE_6 = ADC_CFGR_PRE_6, ///< ADC preclk 6
|
||||
ADC_PCLK2_PRESCARE_8 = ADC_CFGR_PRE_8, ///< ADC preclk 8
|
||||
ADC_PCLK2_PRESCARE_10 = ADC_CFGR_PRE_10, ///< ADC preclk 10
|
||||
ADC_PCLK2_PRESCARE_12 = ADC_CFGR_PRE_12, ///< ADC preclk 12
|
||||
ADC_PCLK2_PRESCARE_14 = ADC_CFGR_PRE_14, ///< ADC preclk 14
|
||||
ADC_PCLK2_PRESCARE_16 = ADC_CFGR_PRE_16 ///< ADC preclk 16
|
||||
} ADCPRE_TypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief ADC_Conversion_Mode
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
ADC_Mode_Imm = ADC_CR_IMM, ///< ADC single convert mode
|
||||
ADC_Mode_Scan = ADC_CR_SCAN, ///< ADC single period convert mode
|
||||
ADC_Mode_Continue = ADC_CR_CONTINUE ///< ADC continue scan convert mode
|
||||
} ADCMODE_TypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief ADC_Extrenal_Trigger_Sources_For_Regular_Channels_Conversion
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
ADC1_ExternalTrigConv_T1_CC1 = ADC_CR_T1_CC1,
|
||||
ADC1_ExternalTrigConv_T1_CC2 = ADC_CR_T1_CC2,
|
||||
ADC1_ExternalTrigConv_T1_CC3 = ADC_CR_T1_CC3,
|
||||
ADC1_ExternalTrigConv_T2_CC2 = ADC_CR_T2_CC2,
|
||||
ADC1_ExternalTrigConv_T3_TRIG = ADC_CR_T3_TRIG,
|
||||
ADC1_ExternalTrigConv_T3_CC1 = ADC_CR_T3_CC1,
|
||||
ADC1_ExternalTrigConv_EXTI_11 = ADC_CR_EXTI_11,
|
||||
ADC1_ExternalTrigConv_T1_CC4_CC5 = ADC_CR_T1_CC4_CC5,
|
||||
ADC1_ExternalTrigConv_T1_TRIG = ADC_CR_T1_TRIG,
|
||||
ADC1_ExternalTrigConv_T8_CC4 = ADC_CR_T8_CC4,
|
||||
ADC1_ExternalTrigConv_T8_CC4_CC5 = ADC_CR_T8_CC4_CC5,
|
||||
ADC1_ExternalTrigConv_T2_CC1 = ADC_CR_T2_CC1,
|
||||
ADC1_ExternalTrigConv_T3_CC4 = ADC_CR_T3_CC4,
|
||||
ADC1_ExternalTrigConv_T2_TRIG = ADC_CR_T2_TRIG,
|
||||
ADC1_ExternalTrigConv_T8_CC5 = ADC_CR_T8_CC5,
|
||||
ADC1_ExternalTrigConv_EXTI_15 = ADC_CR_EXTI_15,
|
||||
ADC1_ExternalTrigConv_T1_CC4 = ADC_CR_TIM1_CC4,
|
||||
ADC1_ExternalTrigConv_T1_CC5 = ADC_CR_TIM1_CC5
|
||||
} EXTERTRIG_TypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief ADC_Data_Align
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
ADC_DataAlign_Right = ADC_CR_RIGHT, ///< ADC data left align
|
||||
ADC_DataAlign_Left = ADC_CR_LEFT ///< ADC data right align
|
||||
} ADCDATAALI_TypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief ADC_Flags_Definition
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
ADC_IT_EOC = 1, ///< ADC conversion flag
|
||||
ADC_FLAG_EOC = 1,
|
||||
ADC_IT_AWD = 2, ///< ADC window comparator flag
|
||||
ADC_FLAG_AWD = 2
|
||||
} ADCFLAG_TypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief ADC_Trig_Edge
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
ADC_ADC_Trig_Edge_Dual = ADC_CR_TRG_EDGE_DUAL, ///< ADC trig edge dual mode down and up
|
||||
ADC_ADC_Trig_Edge_Down = ADC_CR_TRG_EDGE_DOWN, ///< ADC trig edge single mode down
|
||||
ADC_ADC_Trig_Edge_Up = ADC_CR_TRG_EDGE_UP, ///< ADC trig edge single mode up
|
||||
ADC_ADC_Trig_Edge_Mask = ADC_CR_TRG_EDGE_MASK ///< ADC trig edge is mask, not allowed
|
||||
} ADCTRIGEDGE_TypeDef;
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief ADC_Scan_Direct
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
ADC_Scan_Direct_Up = ADC_CR_SCANDIR, ///< ADC scan from low channel to high channel
|
||||
ADC_Scan_Direct_Down = 0 ///< ADC scan from High channel to low channel
|
||||
} ADCSCANDIRECT_TypeDef;
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief ADC_Trig_Shift
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
ADC_ADC_Trig_Shift_0 = ADC_CR_TRGSHIFT_0, ///< ADC trig shift bit is 0
|
||||
ADC_ADC_Trig_Shift_4 = ADC_CR_TRGSHIFT_4, ///< ADC trig shift bit is 4
|
||||
ADC_ADC_Trig_Shift_16 = ADC_CR_TRGSHIFT_16, ///< ADC trig shift bit is 16
|
||||
ADC_ADC_Trig_Shift_32 = ADC_CR_TRGSHIFT_32, ///< ADC trig shift bit is 32
|
||||
ADC_ADC_Trig_Shift_64 = ADC_CR_TRGSHIFT_64, ///< ADC trig shift bit is 64
|
||||
ADC_ADC_Trig_Shift_128 = ADC_CR_TRGSHIFT_128, ///< ADC trig shift bit is 128
|
||||
ADC_ADC_Trig_Shift_256 = ADC_CR_TRGSHIFT_256, ///< ADC trig shift bit is 256
|
||||
ADC_ADC_Trig_Shift_512 = ADC_CR_TRGSHIFT_512, ///< ADC trig shift bit is 512
|
||||
} ADCTRIGSHIFT_TypeDef;
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief ADC_Inject_Sequence_Length the sequencer length for injected channels
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
ADC_Inject_Seqen_Len1 = 0, ///< ADC Injected Seqence length is 1
|
||||
ADC_Inject_Seqen_Len2 = 1, ///< ADC Injected Seqence length is 2
|
||||
ADC_Inject_Seqen_Len3 = 2, ///< ADC Injected Seqence length is 3
|
||||
ADC_Inject_Seqen_Len4 = 3, ///< ADC Injected Seqence length is 4
|
||||
} ADC_INJ_SEQ_LEN_TypeDef;
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief ADC_Inject_Sequence_Length the sequencer length for injected channels
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
ADC_InjectedChannel_1 = 0x00,
|
||||
ADC_InjectedChannel_2 = 0x04,
|
||||
ADC_InjectedChannel_3 = 0x08,
|
||||
ADC_InjectedChannel_4 = 0x0c,
|
||||
} ADC_INJ_SEQ_Channel_TypeDef;
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief ADC_Extrenal_Trigger_Sources_For_Regular_Channels_Conversion
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
ADC1_InjectExtTrigSrc_T1_TRGO = ADC_ANY_CR_JTRGSEL_TIM1_TRGO, ///< TIM1 TRGO
|
||||
ADC1_InjectExtTrigSrc_T1_CC4 = ADC_ANY_CR_JTRGSEL_TIM1_CC4, ///< TIM1 CC4
|
||||
ADC1_InjectExtTrigSrc_T1_CC4_CC5 = ADC_ANY_CR_JTRGSEL_TIM1_CC4_CC5, ///< TIM1 CC4 and CC5
|
||||
ADC1_InjectExtTrigSrc_T2_CC1 = ADC_ANY_CR_JTRGSEL_TIM2_TIM4CC1, ///< TIM2 CC1
|
||||
ADC1_InjectExtTrigSrc_T3_CC4 = ADC_ANY_CR_JTRGSEL_TIM3_TIM5CC4, ///< TIM3 CC4
|
||||
ADC1_InjectExtTrigSrc_T8_CC4 = ADC_ANY_CR_JTRGSEL_TIM8_CC4, ///< TIM8 CC4
|
||||
ADC1_InjectExtTrigSrc_T8_CC4_CC5 = ADC_ANY_CR_JTRGSEL_TIM8_CC4_CC5, ///< TIM8 CC4 and CC5
|
||||
ADC1_InjectExtTrigSrc_EXTI_12 = ADC_ANY_CR_JTRGSEL_EXTI12, ///< EXTI12
|
||||
|
||||
ADC2_InjectExtTrigSrc_T1_TRGO = ADC_ANY_CR_JTRGSEL_TIM1_TRGO, ///< TIM1 TRGO
|
||||
ADC2_InjectExtTrigSrc_T1_CC4 = ADC_ANY_CR_JTRGSEL_TIM1_CC4, ///< TIM1 CC4
|
||||
ADC2_InjectExtTrigSrc_T1_CC4_CC5 = ADC_ANY_CR_JTRGSEL_TIM1_CC4_CC5, ///< TIM1 CC4 and CC5
|
||||
ADC2_InjectExtTrigSrc_T2_CC1 = ADC_ANY_CR_JTRGSEL_TIM2_TIM4CC1, ///< TIM2 CC1
|
||||
ADC2_InjectExtTrigSrc_T3_CC4 = ADC_ANY_CR_JTRGSEL_TIM3_TIM5CC4, ///< TIM3 CC4
|
||||
ADC2_InjectExtTrigSrc_T8_CC4 = ADC_ANY_CR_JTRGSEL_TIM8_CC4, ///< TIM8 CC4
|
||||
ADC2_InjectExtTrigSrc_T8_CC4_CC5 = ADC_ANY_CR_JTRGSEL_TIM8_CC4_CC5, ///< TIM8 CC4 and CC5
|
||||
|
||||
ADC2_InjectExtTrigSrc_EXTI_12 = ADC_ANY_CR_JTRGSEL_EXTI12, ///< EXTI12
|
||||
ADC3_InjectExtTrigSrc_T1_TRGO = ADC_ANY_CR_JTRGSEL_TIM1_TRGO, ///< TIM1 TRGO
|
||||
ADC3_InjectExtTrigSrc_T1_CC4 = ADC_ANY_CR_JTRGSEL_TIM1_CC4, ///< TIM1 CC4
|
||||
ADC3_InjectExtTrigSrc_T1_CC4_CC5 = ADC_ANY_CR_JTRGSEL_TIM1_CC4_CC5, ///< TIM1 CC4 and CC5
|
||||
ADC3_InjectExtTrigSrc_T4_CC1 = ADC_ANY_CR_JTRGSEL_TIM2_TIM4CC1, ///< TIM4 CC1
|
||||
ADC3_InjectExtTrigSrc_T5_CC4 = ADC_ANY_CR_JTRGSEL_TIM3_TIM5CC4, ///< TIM5 CC4
|
||||
ADC3_InjectExtTrigSrc_T8_CC4 = ADC_ANY_CR_JTRGSEL_TIM8_CC4, ///< TIM8 CC4
|
||||
ADC3_InjectExtTrigSrc_T8_CC4_CC5 = ADC_ANY_CR_JTRGSEL_TIM8_CC4_CC5, ///< TIM8 CC4 and CC5
|
||||
ADC3_InjectExtTrigSrc_EXTI_12 = ADC_ANY_CR_JTRGSEL_EXTI12, ///< EXTI12
|
||||
} EXTER_INJ_TRIG_TypeDef;
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief ADC Init Structure definition
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef struct {
|
||||
u32 ADC_Resolution; ///< Convert data resolution
|
||||
u32 ADC_PRESCARE; ///< Clock prescaler
|
||||
u32 ADC_Mode; ///< ADC conversion mode
|
||||
FunctionalState ADC_ContinuousConvMode; ///< Useless just for compatibility
|
||||
u32 ADC_ExternalTrigConv; ///< External trigger source selection
|
||||
u32 ADC_DataAlign; ///< Data alignmentn
|
||||
} ADC_InitTypeDef;
|
||||
|
||||
/// @}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup ADC_Exported_Variables
|
||||
/// @{
|
||||
#ifdef _HAL_ADC_C_
|
||||
|
||||
#define GLOBAL
|
||||
#else
|
||||
#define GLOBAL extern
|
||||
#endif
|
||||
|
||||
#undef GLOBAL
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup ADC_Exported_Functions
|
||||
/// @{
|
||||
void ADC_DeInit(ADC_TypeDef* adc);
|
||||
void ADC_Init(ADC_TypeDef* adc, ADC_InitTypeDef* init_struct);
|
||||
void ADC_StructInit(ADC_InitTypeDef* init_struct);
|
||||
void ADC_Cmd(ADC_TypeDef* adc, FunctionalState state);
|
||||
void ADC_DMACmd(ADC_TypeDef* adc, FunctionalState state);
|
||||
void ADC_ITConfig(ADC_TypeDef* adc, ADCFLAG_TypeDef adc_interrupt, FunctionalState state);
|
||||
void ADC_SoftwareStartConvCmd(ADC_TypeDef* adc, FunctionalState state);
|
||||
void ADC_RegularChannelConfig(ADC_TypeDef* adc, u32 channel, u8 rank, u32 sample_time);//ADCSAM_TypeDef
|
||||
void ADC_ExternalTrigConvCmd(ADC_TypeDef* adc, FunctionalState state);
|
||||
void ADC_ExternalTrigConvConfig(ADC_TypeDef* adc, EXTERTRIG_TypeDef adc_external_trig_source);
|
||||
#define ADC_ExternalTrigInjectedConvConfig ADC_ExternalTrigConvConfig
|
||||
void ADC_AnalogWatchdogCmd(ADC_TypeDef* adc, FunctionalState state);
|
||||
void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* adc, u16 high_threshold, u16 low_threshold);
|
||||
void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* adc, ADCCHANNEL_TypeDef channel);
|
||||
void ADC_TempSensorVrefintCmd(FunctionalState state);
|
||||
void ADC_ClearITPendingBit(ADC_TypeDef* adc, ADCFLAG_TypeDef adc_interrupt);
|
||||
void ADC_ClearFlag(ADC_TypeDef* adc, ADCFLAG_TypeDef adc_flag);
|
||||
|
||||
u16 ADC_GetConversionValue(ADC_TypeDef* adc);
|
||||
|
||||
FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* adc);
|
||||
FlagStatus ADC_GetFlagStatus(ADC_TypeDef* adc, ADCFLAG_TypeDef adc_flag);
|
||||
ITStatus ADC_GetITStatus(ADC_TypeDef* adc, ADCFLAG_TypeDef adc_interrupt);
|
||||
void ADC_TempSensorCmd(FunctionalState state);
|
||||
void ADC_VrefintCmd(FunctionalState state);
|
||||
void exADC_TempSensorVrefintCmd(u32 chs, FunctionalState state);
|
||||
void ADC_ANY_CH_Config(ADC_TypeDef* adc, u8 rank, ADCCHANNEL_TypeDef adc_channel);
|
||||
void ADC_ANY_NUM_Config(ADC_TypeDef* adc, u8 num);
|
||||
void ADC_ANY_Cmd(ADC_TypeDef* adc, FunctionalState state);
|
||||
void ADC_AutoInjectedConvCmd(ADC_TypeDef* adc, FunctionalState state);
|
||||
void ADC_ExternalTrigInjectedConvertConfig(ADC_TypeDef* adc, EXTER_INJ_TRIG_TypeDef ADC_ExtInjTrigSource);
|
||||
void ADC_InjectedConvCmd(ADC_TypeDef* adc, FunctionalState state);
|
||||
void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef* adc, FunctionalState state);
|
||||
void ADC_InjectedSequencerConfig(ADC_TypeDef* adc, u32 event, u32 sample_time);
|
||||
void ADC_InjectedSequencerLengthConfig(ADC_TypeDef* adc, ADC_INJ_SEQ_LEN_TypeDef Length);
|
||||
void ADC_InjectedSequencerChannelConfig(ADC_TypeDef* adc, ADC_INJ_SEQ_Channel_TypeDef off_addr, ADCCHANNEL_TypeDef channel);
|
||||
u16 ADC_GetInjectedConversionValue(ADC_TypeDef* adc, ADC_INJ_SEQ_Channel_TypeDef off_addr);
|
||||
u16 ADC_GetInjectedCurrentConvertedValue(ADC_TypeDef* adc);
|
||||
void ADC_SetInjectedOffset(ADC_TypeDef* adc, ADC_INJ_SEQ_Channel_TypeDef off_addr, u16 value);
|
||||
u16 ADC_GetChannelConvertedValue(ADC_TypeDef* adc, ADCCHANNEL_TypeDef channel);
|
||||
/// @}
|
||||
|
||||
/// @}
|
||||
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#endif
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
130
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_bkp.h
Normal file
130
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_bkp.h
Normal file
@@ -0,0 +1,130 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @file hal_bkp.h
|
||||
/// @author AE TEAM
|
||||
/// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE BKP
|
||||
/// FIRMWARE LIBRARY.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @attention
|
||||
///
|
||||
/// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
|
||||
/// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
|
||||
/// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
|
||||
/// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
|
||||
/// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
|
||||
/// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
|
||||
///
|
||||
/// <H2><CENTER>© COPYRIGHT MINDMOTION </CENTER></H2>
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Define to prevent recursive inclusion
|
||||
#ifndef __HAL_BKP_H
|
||||
#define __HAL_BKP_H
|
||||
|
||||
// Files includes
|
||||
#include "types.h"
|
||||
#include "reg_bkp.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup MM32_Hardware_Abstract_Layer
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup BKP_HAL
|
||||
/// @brief BKP HAL modules
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup BKP_Exported_Types
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief Data_Backup_Register
|
||||
/// @anchor Data_Backup_Register
|
||||
|
||||
typedef enum {
|
||||
BKP_DR1 = 0x0010,
|
||||
BKP_DR2 = 0x0014,
|
||||
BKP_DR3 = 0x0018,
|
||||
BKP_DR4 = 0x001C,
|
||||
BKP_DR5 = 0x0020,
|
||||
BKP_DR6 = 0x0024,
|
||||
BKP_DR7 = 0x0028,
|
||||
BKP_DR8 = 0x002C,
|
||||
BKP_DR9 = 0x0030,
|
||||
BKP_DR10 = 0x0034,
|
||||
BKP_DR11 = 0x0038,
|
||||
BKP_DR12 = 0x003C,
|
||||
BKP_DR13 = 0x0040,
|
||||
BKP_DR14 = 0x0044,
|
||||
BKP_DR15 = 0x0048,
|
||||
BKP_DR16 = 0x004C,
|
||||
BKP_DR17 = 0x0050,
|
||||
BKP_DR18 = 0x0054,
|
||||
BKP_DR19 = 0x0058,
|
||||
BKP_DR20 = 0x005C
|
||||
} BKPDR_Typedef;
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief Tamper_Pin_active_level
|
||||
/// @anchor Tamper_Pin_active_level
|
||||
typedef enum {
|
||||
BKP_TamperPinLevel_High, ///< Tamper pin active on high level
|
||||
BKP_TamperPinLevel_Low = BKP_CR_TPAL, ///< Tamper pin active on low level
|
||||
} BKPTPAL_Typedef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief RTC_output_source_to_output_on_the_Tamper_pin
|
||||
/// @anchor RTC_output_source_to_output_on_the_Tamper_pin
|
||||
typedef enum {
|
||||
BKP_RTCOutputSource_None = 0x0000, ///< No RTC output on the Tamper pin
|
||||
BKP_RTCOutputSource_CalibClock = 0x0080, ///< Output the RTC clock with frequency divided by 64 on the Tamper pin
|
||||
BKP_RTCOutputSource_Alarm = 0x0100, ///< Output the RTC Alarm pulse signal on the Tamper pin
|
||||
BKP_RTCOutputSource_Second = 0x0300 ///< Output the RTC Second pulse signal on the Tamper pin
|
||||
} BKPRTCOUTPUTSRC_Typedef;
|
||||
|
||||
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup BKP_Exported_Variables
|
||||
/// @{
|
||||
#ifdef _HAL_BKP_C_
|
||||
#define GLOBAL
|
||||
|
||||
#else
|
||||
#define GLOBAL extern
|
||||
#endif
|
||||
|
||||
#undef GLOBAL
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup BKP_Exported_Functions
|
||||
/// @{
|
||||
|
||||
void BKP_WriteBackupRegister(BKPDR_Typedef bkp_dr, u16 data);
|
||||
u16 BKP_ReadBackupRegister(BKPDR_Typedef bkp_dr);
|
||||
|
||||
void BKP_DeInit(void);
|
||||
void BKP_ClearFlag(void);
|
||||
void BKP_ClearITPendingBit(void);
|
||||
void BKP_TamperPinLevelConfig(BKPTPAL_Typedef tamper_pin_level);
|
||||
void BKP_TamperPinCmd(FunctionalState state);
|
||||
void BKP_ITConfig(FunctionalState state);
|
||||
void BKP_RTCOutputConfig(BKPRTCOUTPUTSRC_Typedef rtc_output_source);
|
||||
void BKP_SetRTCCalibrationValue(u8 calibration_value);
|
||||
|
||||
ITStatus BKP_GetITStatus(void);
|
||||
FlagStatus BKP_GetFlagStatus(void);
|
||||
void exBKP_Init(void);
|
||||
void exBKP_ImmWrite(BKPDR_Typedef bkp_dr, u16 data);
|
||||
u16 exBKP_ImmRead(BKPDR_Typedef bkp_dr);
|
||||
/// @}
|
||||
|
||||
/// @}
|
||||
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#endif // __HAL_BKP_H
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
340
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_can.h
Normal file
340
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_can.h
Normal file
@@ -0,0 +1,340 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @file hal_can.h
|
||||
/// @author AE TEAM
|
||||
/// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE CAN
|
||||
/// FIRMWARE LIBRARY.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @attention
|
||||
///
|
||||
/// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
|
||||
/// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
|
||||
/// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
|
||||
/// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
|
||||
/// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
|
||||
/// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
|
||||
///
|
||||
/// <H2><CENTER>© COPYRIGHT MINDMOTION </CENTER></H2>
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Define to prevent recursive inclusion
|
||||
#ifndef __HAL_CAN_H
|
||||
#define __HAL_CAN_H
|
||||
|
||||
// Files includes
|
||||
#include "types.h"
|
||||
#include "reg_can.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup MM32_Hardware_Abstract_Layer
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup CAN_HAL
|
||||
/// @brief CAN HAL modules
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup CAN_Exported_Types
|
||||
/// @{
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN_Initialization
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
CANINITFAILED = 0x00000000, ///< CAN initialization failed
|
||||
CANINITOK = 0x00000001 ///< CAN initialization ok
|
||||
} emCAN_INIT_Typedef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN_sleep_constants
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
CANSLEEPFAILED = 0x00000000, ///< CAN did not enter the sleep mode
|
||||
CANSLEEPOK = 0x00000001 ///< CAN entered the sleep mode
|
||||
} emCAN_SLEEP_conts_Typedef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN_wake_up_constants
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
CANWAKEUPFAILED = 0x00000000, ///< CAN did not leave the sleep mode
|
||||
CANWAKEUPOK = 0x00000001 ///< CAN leaved the sleep mode
|
||||
} emCAN_WAKE_conts_Typedef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN_Mode
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
CAN_BASICMode = 0x00000000,
|
||||
CAN_PELIMode = 0x00000080,
|
||||
CAN_WorkMode = 0x00000080,
|
||||
CAN_ResetMode = 0x00000001,
|
||||
CAN_ListenOnlyMode = 0x00000002,
|
||||
CAN_SeftTestMode = 0x00000004,
|
||||
CAN_FilterMode_Singal = 0x00000008,
|
||||
CAN_FilterMode_Double = 0x000000f7,
|
||||
CAN_SleepMode = 0x00000010
|
||||
} emCAN_CAN_Mode_Typedef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief BASIC_CAN_interrupt
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
CAN_IT_RIE = CAN_CR_RIE, ///< Overflow interrupt enable
|
||||
CAN_IT_TIE = CAN_CR_TIE, ///< Transmit interrupt enable
|
||||
CAN_IT_EIE = CAN_CR_EIE, ///< Error interrupt enable
|
||||
CAN_IT_OIE = CAN_CR_OIE ///< Receive interrupt enable
|
||||
} emCAN_BASIC_IntEn_Typedef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief PELI_CAN_interrupt
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
CAN_IT_RI = CAN_IR_RI, ///< Overflow interrupt enable
|
||||
CAN_IT_TI = CAN_IR_TI, ///< Transmit interrupt enable
|
||||
CAN_IT_EI = CAN_IR_EI, ///< Error interrupt enable
|
||||
CAN_IT_DOI = CAN_IR_DOI, ///< Receive interrupt enable
|
||||
CAN_IT_WUI = 0x00001010, ///< Receive interrupt enable
|
||||
CAN_IT_EPI = CAN_IR_EPI, ///< Receive interrupt enable
|
||||
CAN_IT_ALI = CAN_IR_ALI, ///< Receive interrupt enable
|
||||
CAN_IT_BEI = CAN_IR_BEI, ///< Receive interrupt enable
|
||||
CAN_IT_ALL = 0xFFFF ///< Receive interrupt enable
|
||||
|
||||
} emCAN_PELI_IntEn_Typedef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN_Status
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
CAN_STATUS_RBS = CAN_SR_RBS,
|
||||
CAN_STATUS_DOS = CAN_SR_DOS,
|
||||
CAN_STATUS_TBS = CAN_SR_TBS,
|
||||
CAN_STATUS_TCS = CAN_SR_TCS,
|
||||
CAN_STATUS_RS = CAN_SR_RS,
|
||||
CAN_STATUS_TS = CAN_SR_TS,
|
||||
CAN_STATUS_ES = CAN_SR_ES,
|
||||
CAN_STATUS_BS = CAN_SR_BS
|
||||
} emCAN_Status_Typedef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN_Command_register
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
CAN_TR = CAN_CMR_TR, ///< Transmission request
|
||||
CAN_AT = CAN_CMR_AT,
|
||||
CAN_RRB = CAN_CMR_RRB,
|
||||
CAN_CDO = CAN_CMR_CDO
|
||||
} emCAN_Command_Typedef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN_Peli transmit frame definition
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
DataFrame = 0, ///< Data Frame
|
||||
RemoteFrame = !DataFrame
|
||||
} TransFrame;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN_Basic init structure definition
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef struct {
|
||||
u8 SJW;
|
||||
u8 BRP;
|
||||
FlagStatus SAM;
|
||||
u8 TESG2;
|
||||
u8 TESG1;
|
||||
FunctionalState GTS;
|
||||
u8 CDCLK;
|
||||
u8 CLOSE_OPEN_CLK;
|
||||
u8 RXINTEN;
|
||||
u8 CBP;
|
||||
} CAN_Basic_InitTypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN_Peli init structure definition
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef struct {
|
||||
u8 SJW;
|
||||
u8 BRP;
|
||||
FlagStatus SAM;
|
||||
u8 TESG2;
|
||||
u8 TESG1;
|
||||
FunctionalState LOM;
|
||||
FunctionalState STM;
|
||||
FunctionalState SM;
|
||||
FunctionalState SRR;
|
||||
u32 EWLR;
|
||||
} CAN_Peli_InitTypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN_Basic filter init structure definition
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
typedef struct {
|
||||
u8 CAN_FilterId; ///< Specifies the filter identification number. This parameter can be a value between 0x00 and 0xFF.
|
||||
u8 CAN_FilterMaskId; ///< Specifies the filter mask number or identification number, This parameter can be a value between
|
||||
///< 0x00 and 0xFF.
|
||||
} CAN_Basic_FilterInitTypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN_Peli filter init structure definition
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
typedef struct {
|
||||
u8 AFM;
|
||||
u8 CAN_FilterId0; ///< Specifies the filter identification number, This parameter can be a value between 0x00 and 0xFF
|
||||
u8 CAN_FilterId1;
|
||||
u8 CAN_FilterId2;
|
||||
u8 CAN_FilterId3;
|
||||
u8 CAN_FilterMaskId0; ///< Specifies the filter mask number or identification number, This parameter can be a value between
|
||||
///< 0x00 and 0xFF
|
||||
u8 CAN_FilterMaskId1;
|
||||
u8 CAN_FilterMaskId2;
|
||||
u8 CAN_FilterMaskId3;
|
||||
} CAN_Peli_FilterInitTypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN_Basic Tx message structure definition
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
typedef struct {
|
||||
u8 IDH; ///< Specifies the standard high identifier. This parameter can be a value between 0 to 0xFF.
|
||||
u8 IDL; ///< Specifies the standard low identifier. This parameter can be a value between 0 to 0x7.
|
||||
u8 RTR; ///< Specifies the type of frame for the message that will be transmitted. This parameter can be @TransFrame.
|
||||
u8 DLC; ///< Specifies the length of the frame that will be transmitted. This parameter can be a value between 0 to 8.
|
||||
u8 Data[8]; ///< Contains the data to be transmitted. It ranges from 0 to 0xFF.
|
||||
} CanBasicTxMsg;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN_Basic Rx message structure definition
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
typedef struct {
|
||||
u16 ID; ///< Specifies the standard identifier. This parameter can be a value between 0 to 0x7FF.
|
||||
u8 RTR; ///< Specifies the type of frame for the received message. This parameter can be a value of @ref TransFrame
|
||||
u8 DLC; ///< Specifies the length of the frame that will be received. This parameter can be a value between 0 to 8
|
||||
u8 Data[8]; ///< Contains the data to be received. It ranges from 0 to 0xFF.
|
||||
} CanBasicRxMsg;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN_Peli_Tx message structure definition
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
typedef struct {
|
||||
u8 IDLL; ///< Specifies the extended identifier.
|
||||
///< This parameter can be a value between 0 to 0xFF.
|
||||
u8 IDLH;
|
||||
u8 IDHL;
|
||||
u8 IDHH;
|
||||
u8 FF; ///< Specifies the type of identifier for the message that will be transmitted. This parameter can be a value of @ref
|
||||
///< CAN_identifier_type
|
||||
u8 RTR; ///< Specifies the type of frame for the message that will be transmitted. This parameter can be a value of @ref
|
||||
///< TransFrame.
|
||||
u8 DLC; ///< Specifies the length of the frame that will be transmitted. This parameter can be a value between 0 to 8.
|
||||
u8 Data[8]; ///< Contains the data to be transmitted. It ranges from 0 to 0xFF.
|
||||
} CanPeliTxMsg;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief CAN Rx message structure definition
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef struct {
|
||||
u32 ID; ///< Specifies the extended identifier. This parameter can be a value between 0 to 0x1FFFFFFF.
|
||||
u8 FF; ///< Specifies the type of identifier for the message that will be received. This parameter can be a value of @ref
|
||||
///< CAN_identifier_type.
|
||||
u8 RTR; ///< Specifies the type of frame for the received message. This parameter can be a value of @ref TransFrame.
|
||||
u8 DLC; ///< Specifies the length of the frame that will be received. This parameter can be a value between 0 to 8.
|
||||
u8 Data[8]; ///< Contains the data to be received. It ranges from 0 to0xFF.
|
||||
} CanPeliRxMsg;
|
||||
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup CAN_Exported_Constants
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup parasmeter_of_CAN_transmission_register
|
||||
/// @{
|
||||
#define CANTXFAILED (0x00U) ///< CAN transmission failed
|
||||
#define CANTXOK (0x01U) ///< CAN transmission succeeded
|
||||
#define CANTXPENDING (0x02U) ///< CAN transmission pending
|
||||
#define CAN_NO_MB (0x04U) ///< CAN cell did not provide an empty mailbox
|
||||
/// @}
|
||||
|
||||
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup CAN_Exported_Variables
|
||||
/// @{
|
||||
#ifdef _HAL_CAN_C_
|
||||
|
||||
#define GLOBAL
|
||||
#else
|
||||
#define GLOBAL extern
|
||||
#endif
|
||||
|
||||
#undef GLOBAL
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup CAN_Exported_Functions
|
||||
/// @{
|
||||
|
||||
// Basic and Peli Work all need function ---------------------------------------
|
||||
|
||||
void CAN_Mode_Cmd(CAN_TypeDef* can, u32 mode);
|
||||
void CAN_ResetMode_Cmd(CAN_TypeDef* can, FunctionalState state);
|
||||
void CAN_ClearDataOverflow(CAN_TypeDef* can);
|
||||
void CAN_ClearITPendingBit(CAN_TypeDef* can);
|
||||
|
||||
// Basic Work function ---------------------------------------------------------
|
||||
void CAN_DeInit(CAN_TypeDef* can);
|
||||
void CAN_FilterInit(CAN_Basic_FilterInitTypeDef* basic_filter_init_struct);
|
||||
void CAN_StructInit(CAN_Basic_InitTypeDef* basic_init_struct);
|
||||
void CAN_ITConfig(CAN_TypeDef* can, u32 it, FunctionalState state);
|
||||
void CAN_CancelTransmit(CAN_TypeDef* can);
|
||||
void CAN_FIFORelease(CAN_TypeDef* can);
|
||||
void CAN_Receive(CAN_TypeDef* can, CanBasicRxMsg* basic_receive_message);
|
||||
|
||||
u8 CAN_Transmit(CAN_TypeDef* can, CanBasicTxMsg* basic_transmit_message);
|
||||
u8 CAN_Init(CAN_TypeDef* can, CAN_Basic_InitTypeDef* basic_init_struct);
|
||||
u8 CAN_Sleep(CAN_TypeDef* can);
|
||||
u8 CAN_WakeUp(CAN_TypeDef* can);
|
||||
|
||||
FlagStatus CAN_GetFlagStatus(CAN_TypeDef* can, u32 flag);
|
||||
ITStatus CAN_GetITStatus(CAN_TypeDef* can, u32 it);
|
||||
|
||||
// Peli Work function ----------------------------------------------------------
|
||||
void CAN_Peli_SleepMode_Cmd(FunctionalState state);
|
||||
void CAN_Peli_Init(CAN_Peli_InitTypeDef* init_struct);
|
||||
void CAN_Peli_StructInit(CAN_Peli_InitTypeDef* peli_init_struct);
|
||||
void CAN_Peli_FilterInit(CAN_Peli_FilterInitTypeDef* peli_filter_init_struct);
|
||||
void CAN_Peli_FilterStructInit(CAN_Peli_FilterInitTypeDef* peli_filter_init_struct);
|
||||
void CAN_Peli_Transmit(CanPeliTxMsg* peli_transmit_message);
|
||||
void CAN_Peli_TransmitRepeat(CanPeliTxMsg* peli_transmit_message);
|
||||
void CAN_Peli_Receive(CanPeliRxMsg* peli_receive_message);
|
||||
void CAN_Peli_ITConfig(u32 it, FunctionalState state);
|
||||
void CAN_AutoCfg_BaudParam(CAN_Peli_InitTypeDef* init_struct, u32 src_clk, u32 baud);
|
||||
|
||||
u32 CAN_Peli_GetRxFIFOInfo(void);
|
||||
u8 CAN_Peli_GetLastErrorCode(void);
|
||||
u8 CAN_Peli_GetReceiveErrorCounter(void);
|
||||
u8 CAN_Peli_GetLSBTransmitErrorCounter(void);
|
||||
|
||||
ITStatus CAN_Peli_GetITStatus(u32 it);
|
||||
|
||||
|
||||
|
||||
/// @}
|
||||
|
||||
/// @}
|
||||
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#endif
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
228
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_comp.h
Normal file
228
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_comp.h
Normal file
@@ -0,0 +1,228 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @file hal_comp.h
|
||||
/// @author AE TEAM
|
||||
/// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE COMP
|
||||
/// FIRMWARE LIBRARY.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @attention
|
||||
///
|
||||
/// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
|
||||
/// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
|
||||
/// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
|
||||
/// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
|
||||
/// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
|
||||
/// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
|
||||
///
|
||||
/// <H2><CENTER>© COPYRIGHT MINDMOTION </CENTER></H2>
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Define to prevent recursive inclusion
|
||||
#ifndef __HAL_COMP_H
|
||||
#define __HAL_COMP_H
|
||||
|
||||
|
||||
// Files includes
|
||||
#include "reg_common.h"
|
||||
#include "reg_comp.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup MM32_Hardware_Abstract_Layer
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup COMP_HAL
|
||||
/// @brief COMP HAL modules
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup COMP_Exported_Types
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief COMP_InvertingInput
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
COMP_InvertingInput_IO0 = COMP_CSR_INM_0, ///< INM0 as COMP inverting input
|
||||
COMP_InvertingInput_IO1 = COMP_CSR_INM_1, ///< INM1 as COMP inverting input
|
||||
COMP_InvertingInput_IO2 = COMP_CSR_INM_2, ///< INM2 as COMP inverting input
|
||||
COMP_InvertingInput_CRV = COMP_CSR_INM_3, ///< INM3 as COMP inverting input
|
||||
COMP_InvertingInput_IO3 = COMP_CSR_INM_3, ///< INM3 as COMP inverting input
|
||||
} EM_COMP_InvertingInput;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief COMP_NonInvertingInput
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
COMP_NonInvertingInput_IO0 = COMP_CSR_INP_INP0, ///< INP0 as COMP non-inverting input
|
||||
COMP_NonInvertingInput_IO1 = COMP_CSR_INP_INP1, ///< INP1 as COMP non-inverting input
|
||||
COMP_NonInvertingInput_IO2 = COMP_CSR_INP_INP2, ///< INP2 as COMP non-inverting input
|
||||
COMP_NonInvertingInput_IO3 = COMP_CSR_INP_INP3, ///< INP3 as COMP non-inverting input
|
||||
} EM_COMP_NonInvertingInput;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief COMP_Output
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
COMP_Output_None = 0x00000000, ///< No output
|
||||
COMP_Output_TIM1BKIN = COMP_CSR_OUT_TIM1_BRAKE, ///< Timer1 brake input
|
||||
COMP_Output_TIM1OCREFCLR = COMP_CSR_OUT_TIM1_OCREFCLR, ///< Timer1 ocrefclear input
|
||||
COMP_Output_TIM1IC1 = COMP_CSR_OUT_TIM1_CAPTURE1, ///< Timer1 input capture 1
|
||||
COMP_Output_TIM2IC4 = COMP_CSR_OUT_TIM2_CAPTURE4, ///< Timer2 input capture 4
|
||||
COMP_Output_TIM2OCREFCLR = COMP_CSR_OUT_TIM2_OCREFCLR, ///< Timer2 ocrefclear input
|
||||
COMP_Output_TIM3IC1 = COMP_CSR_OUT_TIM3_CAPTURE1, ///< Timer3 input capture 1
|
||||
COMP_Output_TIM3OCREFCLR = COMP_CSR_OUT_TIM3_OCREFCLR ///< Timer3 ocrefclear input
|
||||
} EM_COMP_Output;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief COMP_OutputPoloarity
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
COMP_NonInverted = 0x00000000, ///< COMP non-inverting output
|
||||
COMP_OutputPol_NonInverted = 0x00000000,
|
||||
COMP_Inverted = 0x00008000, ///< COMP inverting output
|
||||
COMP_OutputPol_Inverted = 0x00008000
|
||||
} EM_COMP_OutputPol;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief COMP_Hysteresis
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
COMP_Hysteresis_No = COMP_CSR_HYST_0, ///< Hysteresis Voltage: 0mV
|
||||
COMP_Hysteresis_Low = COMP_CSR_HYST_15, ///< Hysteresis Voltage: 15mV
|
||||
COMP_Hysteresis_Medium = COMP_CSR_HYST_30, ///< Hysteresis Voltage: 30mV
|
||||
COMP_Hysteresis_High = COMP_CSR_HYST_90 ///< Hysteresis Voltage: 90mV
|
||||
} EM_COMP_Hysteresis;
|
||||
typedef enum {
|
||||
COMP_Filter_0_Period = COMP_CSR_OFLT_0, ///< filter is ((u32)0x00000000)
|
||||
COMP_Filter_2_Period = COMP_CSR_OFLT_1, ///< filter is ((u32)0x00040000)
|
||||
COMP_Filter_4_Period = COMP_CSR_OFLT_2, ///< filter is ((u32)0x00080000)
|
||||
COMP_Filter_8_Period = COMP_CSR_OFLT_3, ///< filter is ((u32)0x000C0000)
|
||||
COMP_Filter_16_Period = COMP_CSR_OFLT_4, ///< filter is ((u32)0x00100000)
|
||||
COMP_Filter_32_Period = COMP_CSR_OFLT_5, ///< filter is ((u32)0x00140000)
|
||||
COMP_Filter_64_Period = COMP_CSR_OFLT_6, ///< filter is ((u32)0x00180000)
|
||||
COMP_Filter_128_Period = COMP_CSR_OFLT_7, ///< filter is ((u32)0x001C0000)
|
||||
} EM_COMP_FILT;
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief COMP_Mode
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
COMP_Mode_HighSpeed = COMP_CSR_MODE_HIGHRATE, ///< Comparator high rate mode
|
||||
COMP_Mode_MediumSpeed = COMP_CSR_MODE_MEDIUMRATE, ///< Comparator medium rate mode
|
||||
COMP_Mode_LowPower = COMP_CSR_MODE_LOWPOWER, ///< Comparator low power mode
|
||||
COMP_Mode_UltraLowPower = COMP_CSR_MODE_LOWESTPOWER ///< Comparator lowest power mode
|
||||
} EM_COMP_Mode;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief COMP_OutputLevel
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
COMP_OutputLevel_High = COMP_CSR_OUT, ///< High output
|
||||
COMP_OutputLevel_Low = 0x00000000 ///< Low output
|
||||
} EM_COMP_OutputLevel;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief COMP Init structure definition
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef struct {
|
||||
union {
|
||||
u32 COMP_InvertingInput;
|
||||
u32 Invert; ///< Selects the inverting input of the comparator.
|
||||
};
|
||||
union {
|
||||
u32 COMP_NonInvertingInput;
|
||||
u32 NonInvert; ///< Selects the non inverting input of the comparator.
|
||||
};
|
||||
union {
|
||||
u32 COMP_Output;
|
||||
u32 Output; ///< Selects the output redirection of the comparator.
|
||||
u32 BlankingSrce; ///< Selects the output blanking source of the comparator.
|
||||
};
|
||||
union {
|
||||
u32 COMP_OutputPol;
|
||||
u32 OutputPol; ///< Selects the output polarity of the comparator.
|
||||
};
|
||||
union {
|
||||
u32 COMP_Hysteresis;
|
||||
u32 Hysteresis; ///< Selects the hysteresis voltage of the comparator.
|
||||
};
|
||||
union {
|
||||
u32 COMP_Mode;
|
||||
u32 Mode; ///< Selects the operating mode of the comparator and allows
|
||||
};
|
||||
union {
|
||||
u32 COMP_Filter;
|
||||
u32 OFLT; ///< to adjust the speed/consumption.
|
||||
};
|
||||
} COMP_InitTypeDef;
|
||||
|
||||
|
||||
|
||||
typedef struct {
|
||||
|
||||
FunctionalState COMP_Poll_En; ///< Selects the inverting input of the comparator.
|
||||
|
||||
u32 COMP_Poll_Ch; ///< Selects the non inverting input of the comparator.
|
||||
u32 COMP_Poll_Fixn; ///< Selects the output redirection of the comparator.
|
||||
u32 COMP_Poll_Period; ///< Selects the output polarity of the comparator.
|
||||
u32 COMP_Poll_Pout; ///< Selects the hysteresis voltage of the comparator.
|
||||
|
||||
} COMP_POLL_InitTypeDef;
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup COMP_Exported_Constants
|
||||
/// @{
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief COMP Init structure definition
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
COMP1 = (0x00000C), ///< Select comparator 1
|
||||
COMP2 = (0x000010), ///< Select comparator 2
|
||||
} COMP_Selection_TypeDef;
|
||||
|
||||
#define COMP_BlankingSrce_None ((u32)0x00000000)
|
||||
#define COMP_CSR_CLEAR_MASK ((u32)0x00000003)
|
||||
|
||||
#define COMP_CSR_COMPSW1 ((u32)0x00000002)
|
||||
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///@defgroup COMP_Exported_Variables
|
||||
/// @{
|
||||
#ifdef _HAL_COMP_C_
|
||||
|
||||
#define GLOBAL
|
||||
#else
|
||||
#define GLOBAL extern
|
||||
#endif
|
||||
|
||||
#undef GLOBAL
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup COMP_Exported_Functions
|
||||
/// @{
|
||||
|
||||
|
||||
void COMP_DeInit(COMP_Selection_TypeDef selection);
|
||||
void COMP_Init(COMP_Selection_TypeDef selection, COMP_InitTypeDef* init_struct);
|
||||
void COMP_StructInit(COMP_InitTypeDef* init_struct);
|
||||
void COMP_Cmd(COMP_Selection_TypeDef selection, FunctionalState state);
|
||||
void COMP_SwitchCmd(COMP_Selection_TypeDef selection, FunctionalState state);
|
||||
void COMP_LockConfig(COMP_Selection_TypeDef selection);
|
||||
|
||||
u32 COMP_GetOutputLevel(COMP_Selection_TypeDef selection);
|
||||
|
||||
void COMP_SetCrv(u8 crv_select, u8 crv_level);
|
||||
#define SET_COMP_CRV COMP_SetCrv
|
||||
|
||||
|
||||
/// @}
|
||||
|
||||
/// @}
|
||||
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#endif //__HAL_COMP_H
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
62
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_conf.h
Normal file
62
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_conf.h
Normal file
@@ -0,0 +1,62 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @file hal_conf.h
|
||||
/// @author AE TEAM
|
||||
/// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE GENERIC MICROCONTROLLER
|
||||
/// FIRMWARE LIBRARY.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @attention
|
||||
///
|
||||
/// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
|
||||
/// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
|
||||
/// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
|
||||
/// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
|
||||
/// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
|
||||
/// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
|
||||
///
|
||||
/// <H2><CENTER>© COPYRIGHT MINDMOTION </CENTER></H2>
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Define to prevent recursive inclusion
|
||||
#ifndef __HAL_CONF_H
|
||||
#define __HAL_CONF_H
|
||||
// Files includes
|
||||
#include "mm32_device.h"
|
||||
|
||||
#include "hal_adc.h"
|
||||
#include "hal_bkp.h"
|
||||
#include "hal_can.h"
|
||||
#include "hal_comp.h"
|
||||
#include "hal_crc.h"
|
||||
#include "hal_crs.h"
|
||||
#include "hal_dac.h"
|
||||
#include "hal_dbg.h"
|
||||
#include "hal_dma.h"
|
||||
#include "hal_exti.h"
|
||||
#include "hal_flash.h"
|
||||
#include "hal_gpio.h"
|
||||
#include "hal_i2c.h"
|
||||
#include "hal_iwdg.h"
|
||||
#include "hal_misc.h"
|
||||
#include "hal_pwr.h"
|
||||
#include "hal_rcc.h"
|
||||
#include "hal_rtc.h"
|
||||
#include "hal_spi.h"
|
||||
#include "hal_syscfg.h"
|
||||
#include "hal_tim.h"
|
||||
#include "hal_uart.h"
|
||||
#include "hal_uid.h"
|
||||
#include "hal_wwdg.h"
|
||||
#include "hal_redefine.h"
|
||||
#include "hal_eth.h"
|
||||
#include "hal_eth_conf.h"
|
||||
#include "hal_fsmc.h"
|
||||
|
||||
/// @}
|
||||
|
||||
/// @}
|
||||
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#endif //__HAL_CONF_H
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
84
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_crc.h
Normal file
84
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_crc.h
Normal file
@@ -0,0 +1,84 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @file hal_crc.h
|
||||
/// @author AE TEAM
|
||||
/// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE CRC
|
||||
/// FIRMWARE LIBRARY.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @attention
|
||||
///
|
||||
/// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
|
||||
/// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
|
||||
/// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
|
||||
/// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
|
||||
/// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
|
||||
/// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
|
||||
///
|
||||
/// <H2><CENTER>© COPYRIGHT MINDMOTION </CENTER></H2>
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Define to prevent recursive inclusion
|
||||
#ifndef __HAL_CRC_H
|
||||
#define __HAL_CRC_H
|
||||
|
||||
// Files includes
|
||||
#include "types.h"
|
||||
#include "reg_common.h"
|
||||
#include "reg_crc.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup MM32_Hardware_Abstract_Layer
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup CRC_HAL
|
||||
/// @brief CRC HAL modules
|
||||
/// @{
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup CRC_Exported_Types
|
||||
/// @{
|
||||
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup CRC_Exported_Constants
|
||||
/// @{
|
||||
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup CRC_Exported_Variables
|
||||
/// @{
|
||||
#ifdef _HAL_CRC_C_
|
||||
#define GLOBAL
|
||||
|
||||
#else
|
||||
#define GLOBAL extern
|
||||
#endif
|
||||
|
||||
#undef GLOBAL
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup CRC_Exported_Functions
|
||||
/// @{
|
||||
void CRC_ResetDR(void);
|
||||
void CRC_SetIDRegister(u8 id_value);
|
||||
|
||||
u32 CRC_CalcCRC(u32 data);
|
||||
u32 CRC_CalcBlockCRC(u32* buffer, u32 length);
|
||||
u32 CRC_GetCRC(void);
|
||||
|
||||
u8 CRC_GetIDRegister(void);
|
||||
|
||||
/// @}
|
||||
|
||||
/// @}
|
||||
|
||||
/// @}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#endif // __HAL_CRC_H
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
46
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_crs.h
Normal file
46
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_crs.h
Normal file
@@ -0,0 +1,46 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @file hal_crs.h
|
||||
/// @author AE TEAM
|
||||
/// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE CRS
|
||||
/// FIRMWARE LIBRARY.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @attention
|
||||
///
|
||||
/// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
|
||||
/// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
|
||||
/// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
|
||||
/// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
|
||||
/// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
|
||||
/// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
|
||||
///
|
||||
/// <H2><CENTER>© COPYRIGHT MINDMOTION </CENTER></H2>
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Define to prevent recursive inclusion
|
||||
#ifndef __HAL_CRS_H
|
||||
#define __HAL_CRS_H
|
||||
|
||||
|
||||
// Files includes
|
||||
#include "types.h"
|
||||
#include "reg_crs.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup MM32_Hardware_Abstract_Layer
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup CRS_HAL
|
||||
/// @brief CRS HAL modules
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup GPIO_Exported_Types
|
||||
/// @{
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#endif
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
166
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_dac.h
Normal file
166
bsp/mm32f327x/Libraries/MM32F327x/HAL_Lib/Inc/hal_dac.h
Normal file
@@ -0,0 +1,166 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @file hal_dac.h
|
||||
/// @author AE TEAM
|
||||
/// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE DAC
|
||||
/// FIRMWARE LIBRARY.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @attention
|
||||
///
|
||||
/// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
|
||||
/// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
|
||||
/// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
|
||||
/// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
|
||||
/// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
|
||||
/// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
|
||||
///
|
||||
/// <H2><CENTER>© COPYRIGHT MINDMOTION </CENTER></H2>
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Define to prevent recursive inclusion
|
||||
#ifndef __HAL_DAC_H
|
||||
#define __HAL_DAC_H
|
||||
|
||||
// Files includes
|
||||
#include "types.h"
|
||||
#include "reg_dac.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @addtogroup MM32_Hardware_Abstract_Layer
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup DAC_HAL
|
||||
/// @brief DAC HAL modules
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup DAC_Exported_Types
|
||||
/// @{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief DAC_Trigger_Selection
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
DAC_Trigger_None = 0x00000000,
|
||||
DAC_Trigger_T1_TRIG = (DAC_CR_TSEL1_TIM1_TRIG | DAC_CR_TEN1),
|
||||
DAC_Trigger_T3_TRIG = (DAC_CR_TSEL1_TIM3_TRIG | DAC_CR_TEN1),
|
||||
DAC_Trigger_T2_TRIG = (DAC_CR_TSEL1_TIM2_TRIG | DAC_CR_TEN1),
|
||||
DAC_Trigger_T4_TRIG = (DAC_CR_TSEL1_TIM4_TRIG | DAC_CR_TEN1),
|
||||
DAC_Trigger_Ext_IT9 = (DAC_CR_TSEL1_EXTI9 | DAC_CR_TEN1),
|
||||
DAC_Trigger_Software = (DAC_CR_TSEL1_SOFTWARE)
|
||||
} emDACTRIG_TypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief DAC_Wave_Generation
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
DAC_WaveGeneration_None = DAC_CR_WAVE1_NONE,
|
||||
DAC_WaveGeneration_Noise = DAC_CR_WAVE1_NOISE,
|
||||
DAC_WaveGeneration_Triangle = DAC_CR_WAVE1_TRIANGLE
|
||||
} emDACWAVE_TypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief DAC_Mask_Amplitude
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
DAC_TriangleAmplitude_1 = DAC_CR_MAMP1_1,
|
||||
DAC_TriangleAmplitude_3 = DAC_CR_MAMP1_3,
|
||||
DAC_TriangleAmplitude_7 = DAC_CR_MAMP1_7,
|
||||
DAC_TriangleAmplitude_15 = DAC_CR_MAMP1_15,
|
||||
DAC_TriangleAmplitude_31 = DAC_CR_MAMP1_31,
|
||||
DAC_TriangleAmplitude_63 = DAC_CR_MAMP1_63,
|
||||
DAC_TriangleAmplitude_127 = DAC_CR_MAMP1_127,
|
||||
DAC_TriangleAmplitude_255 = DAC_CR_MAMP1_255,
|
||||
DAC_TriangleAmplitude_511 = DAC_CR_MAMP1_511,
|
||||
DAC_TriangleAmplitude_1023 = DAC_CR_MAMP1_1023,
|
||||
DAC_TriangleAmplitude_2047 = DAC_CR_MAMP1_2047,
|
||||
DAC_TriangleAmplitude_4095 = DAC_CR_MAMP1_4095
|
||||
} emDACAMP_TypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief channel
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
DAC_Channel_1, ///< DAC channel 1
|
||||
DAC_Channel_2 = (u32)0x00000010 ///< DAC Channel 2
|
||||
} emDACCH_TypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief DAC_Data_Alignement
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
DAC_Align_12b_R = ((u32)0x00000000),
|
||||
DAC_Align_12b_L = ((u32)0x00000004),
|
||||
DAC_Align_8b_R = ((u32)0x00000008)
|
||||
} emDACALIGN_TypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief DAC_Output_Buffer
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef enum {
|
||||
DAC_OutputBuffer_Enable = 0x00000000, ///< DAC output buffer enable
|
||||
DAC_OutputBuffer_Disable = DAC_CR_BOFF1 ///< DAC output buffer disable
|
||||
} emDACBOFF_TypeDef;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief DAC Init structure definition
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef struct {
|
||||
emDACTRIG_TypeDef DAC_Trigger;
|
||||
emDACWAVE_TypeDef DAC_WaveGeneration;
|
||||
emDACAMP_TypeDef DAC_LFSRUnmask_TriangleAmplitude;
|
||||
emDACBOFF_TypeDef DAC_OutputBuffer;
|
||||
} DAC_InitTypeDef;
|
||||
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup DAC_Exported_Constants
|
||||
/// @{
|
||||
#define DHR12R1_Offset ((u32)0x00000008)
|
||||
#define DHR12R2_Offset ((u32)0x00000014)
|
||||
#define DHR12RD_Offset ((u32)0x00000020)
|
||||
#define DOR_Offset ((u32)0x0000002C)
|
||||
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup DAC_Exported_Variables
|
||||
/// @{
|
||||
#ifdef _HAL_DAC_C_
|
||||
#define GLOBAL
|
||||
|
||||
#else
|
||||
#define GLOBAL extern
|
||||
#endif
|
||||
|
||||
#undef GLOBAL
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @defgroup DAC_Exported_Functions
|
||||
/// @{
|
||||
void DAC_DeInit(void);
|
||||
void DAC_Init(emDACCH_TypeDef channel, DAC_InitTypeDef* init_struct);
|
||||
void DAC_StructInit(DAC_InitTypeDef* init_struct);
|
||||
void DAC_Cmd(emDACCH_TypeDef channel, FunctionalState state);
|
||||
void DAC_DMACmd(emDACCH_TypeDef channel, FunctionalState state);
|
||||
void DAC_SoftwareTriggerCmd(emDACCH_TypeDef channel, FunctionalState state);
|
||||
void DAC_DualSoftwareTriggerCmd(FunctionalState state);
|
||||
void DAC_WaveGenerationCmd(emDACCH_TypeDef channel, emDACWAVE_TypeDef wave, FunctionalState state);
|
||||
void DAC_SetChannel1Data(emDACALIGN_TypeDef alignement, u16 data);
|
||||
void DAC_SetChannel2Data(emDACALIGN_TypeDef alignement, u16 data);
|
||||
void DAC_SetDualChannelData(emDACALIGN_TypeDef alignement, u16 data2, u16 data1);
|
||||
|
||||
u16 DAC_GetDataOutputValue(emDACCH_TypeDef channel);
|
||||
|
||||
/// @}
|
||||
|
||||
/// @}
|
||||
|
||||
/// @}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#endif // __HAL_DAC_H
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user